• 0

    posted a message on Photon Cycles, a luminous lightbikes map

    Minor update: Endurance and Slayer victory modes added.

    Posted in: Project Workplace
  • 0

    posted a message on Photon Cycles, a luminous lightbikes map

    The light trail coming out of the back of the model is a ribbon, and it is part of the model. The barriers that come out of the back are the ShapeCube model. The ambiguity of language can only be overcome with a certain precision of one's use of words.

    Posted in: Project Workplace
  • 0

    posted a message on Photon Cycles, a luminous lightbikes map

    The trail is part of the model, a ribbon from the look of it.

    Posted in: Project Workplace
  • 0

    posted a message on Photon Cycles, a luminous lightbikes map

    Good idea. I've got a major update coming in a few days, and I hope it includes music. I'll check it out.

    Posted in: Project Workplace
  • 0

    posted a message on Photon Cycles, a luminous lightbikes map

    I love the Homestuck music tracks, but since it isn't mine to use, it would be wrong for me to include it in the map. People are welcome to donate music for use in the map, though, provided the license permits it.

    I've heard of the lag or whatever it is, but there is nothing that indicates it is anything other than latency problems on Battlenet's side of things. If anyone has a replay of this phenomenon, I'd be happy to take a look and see if I can pinpoint the issue if it is in fact caused by the map.

    I believe Press Any Key is bad for anything other than single player maps, where others do not depend upon your response. The volume of text in the loading screen is one of my running gags; it's not all meant to be read. The Controls section is the only important part, and if its not easily readable, I can improve that with the next major update.

    Posted in: Project Workplace
  • 0

    posted a message on Photon Cycles, a luminous lightbikes map

    With the next major update, I'll try increasing the spawn period by 0.1 or 0.2 game seconds, see if that helps some people.

    Posted in: Project Workplace
  • 0

    posted a message on Photon Cycles, a luminous lightbikes map

    Photon Cycles, a luminous lightbikes game, is all about driving around your ridiculous looking vehicle, while excreting lethal hazards from your rear, with the intention to cause your enemies to wreck into stuff. That is pretty much all there is to it.

    I decided to make the map because I am a fan of this micro-genre or whatever it is; it is fun and competitive, has simple mechanics, and is intellectually stimulating in the nuanced and clever tactics and strategy players can employ. The entelechy of the game is what makes it interesting, in the same way lego blocks and cellular automata and DNA are interesting. I figured I could make something small and neat, like TronCraft Rebirth, only this version won't give people hand cramps from right clicking so damn much.

    Special thanks to Sixen and Motive for their feedback, Mexa for publishing in the EU region for me and those brave few who helped test it on Battlenet.

    This map is available in NA and EU regions.

    Features

    • Mouse-controlled camera and turning
    • Victory types available in 5 tangy flavors
    • Supports up to 12 players
    • Custom Layout for a minimal UI
    • Leavers are removed, start points adjusted
    • More than 100 entirely pointless death messages
    • Dead players spectate the remainder of the round
    • Turbo boost; smash into walls faster than ever

    Controls

    • Move mouse to turn
    • Left-click to boost
    Embed Removed: https://www.youtube.com/v/zNO0lQaBGhw?fs=1
    Posted in: Project Workplace
  • 0

    posted a message on Hybrid FPS Movement System

    You mean like this?

    Posted in: Galaxy Scripting
  • 0

    posted a message on Galaxy preprocessor in development
    Quote from grim001: Go

    As far as popularity, it seems like almost no one actually uses Galaxy anyway, so I wouldn't be doing this if I cared for popularity. I plan to use it myself and if a few other people enjoy it, so much the better. :)

    This preprocessor will be very useful, certainly more useful than the various language extensions that are not yet or will never be finished. =D

    Posted in: Galaxy Scripting
  • 0

    posted a message on Interesting Galaxy Bug

    I don't know, but it was a bug that stumped me for half a day precisely because it doesn't raise a compile error. =\

    Posted in: Galaxy Scripting
  • 0

    posted a message on Input, a script to capture key and mouse input

    My script almost certainly generates less network traffic, a total of 5 input catching triggers versus 14n where n is the number of active players, but it would be positively unscientific for one to be averse to testing such things. Be certain to implement each system in separate maps when conducting the tests, since toggling between the two in the same map via the disabling of triggers is not effective at throttling the network traffic generated by the input detection triggers, in my experience.

    Also, your demonstrable wealth of platitudes has awed and humbled me.

    Posted in: Galaxy Scripting
  • 0

    posted a message on Input, a script to capture key and mouse input

    Yes. =)

    Posted in: Galaxy Scripting
  • 0

    posted a message on Input, a script to capture key and mouse input

    My attempts at using constants to define array sizes have been met with syntax errors in the past. Also, they are not magic, so much as they should correspond to the highest constant ints for the relevant input types; keys go up to c_keyF12 = 98, for example. I have no other option there. It becomes the user's responsibility to modify them according to its needs.

    EDIT: I tried using constants again and was pleasantly surprised. Script updated. Thanks Motive. =D

    Posted in: Galaxy Scripting
  • 0

    posted a message on Input, a script to capture key and mouse input

    In my experience, even disabled triggers to detect player key, button, and movement input generate network traffic. This is why using as few triggers as possible is preferable, as it is the only thing approximating a throttle we have on this issue.

    Since the engine cannot perform simultaneous parallel processing of its threads, using multiple triggers when they will just fire in sequence anyway is needless overhead.

    My script is intended to capture all player input from keys, mouse buttons, and mouse movement, without any specific implementation. Call me a romantic, but I have a soft spot for modularity. I'd like people to be able to do whatever they want with it, stopping just long enough to configure the constants that regulate the creation triggers, in case they don't need to detect key up or mouse movement.

    So it's not an improvement, per se, but rather a script with some similar features but a different and more general purpose, which may also happen to be more conservative toward net traffic.

    The only (minor) issue one may have with my script is the overhead cost of the variable memory which, assuming a 32-bit bool implementation, roughly exceeds 6 kb.

    Posted in: Galaxy Scripting
  • 0

    posted a message on Input, a script to capture key and mouse input
    //=====================================================
    // Input, a script to capture key and mouse input
    //
    // This script will catch and store player input
    // from the keyboard and mouse in a struct array.
    // Keys and buttons are records as bool states,
    // while mouse clicks and movement are kept as
    // int and fixed values for the UI and World
    // respectively.
    //
    // To get the state of the X key, you would use:
    // playerInput[p].key.state[c_keyX]
    // To get the point of the cursor, you could:
    // Point(playerInput[p].mouse.x,playerInput[p].mouse.y)
    //
    // The user may configure the DETECT bool
    // constants to set which triggers will be
    // created on initialization of the script.
    //=====================================================
    // CONFIGURABLE CONSTANTS
    const bool DETECT_KEYDOWN = true;
    const bool DETECT_KEYUP = true;
    const bool DETECT_BUTTONDOWN = true;
    const bool DETECT_BUTTONUP = true;
    const bool DETECT_MOVEMENT = true;
    const int INPUT_BUTTONS = 6;
    const int INPUT_KEYS = 99;
    const int INPUT_MAX_PLAYERS = c_maxPlayers;
    // STRUCTS
    struct Button { bool[INPUT_BUTTONS] state; };
    struct Key { bool[INPUT_KEYS] state; };
    struct Mouse {
        int uix;
        int uiy;
        fixed x;
        fixed y;
        fixed z;
    };
    struct Input {
        Key key;
        Button button;
        Mouse mouse;
    };
    // GLOBALS
    Input[INPUT_MAX_PLAYERS] playerInput;
    // FUNCTIONS
    bool Input_KeyOn (bool testConds, bool runActions) {
        playerInput[EventPlayer()].key.state[EventKeyPressed()] = true;
        return true;
    }
    bool Input_KeyOff (bool testConds, bool runActions) {
        playerInput[EventPlayer()].key.state[EventKeyPressed()] = false;
        return true;
    }
    bool Input_ButtonOn (bool testConds, bool runActions) {
        int p = EventPlayer();
        playerInput[p].button.state[EventMouseClickedButton()] = true;
        playerInput[p].mouse.uix = EventMouseClickedPosXUI();
        playerInput[p].mouse.uiy = EventMouseClickedPosYUI();
        playerInput[p].mouse.x = EventMouseClickedPosXWorld();
        playerInput[p].mouse.y = EventMouseClickedPosYWorld();
        playerInput[p].mouse.z = EventMouseClickedPosZWorld();
        return true;
    }
    bool Input_ButtonOff (bool testConds, bool runActions) {
        int p = EventPlayer();
        playerInput[p].button.state[EventMouseClickedButton()] = false;
        playerInput[p].mouse.uix = EventMouseClickedPosXUI();
        playerInput[p].mouse.uiy = EventMouseClickedPosYUI();
        playerInput[p].mouse.x = EventMouseClickedPosXWorld();
        playerInput[p].mouse.y = EventMouseClickedPosYWorld();
        playerInput[p].mouse.z = EventMouseClickedPosZWorld();
        return true;
    }
    bool Input_Movement (bool testConds, bool runActions) {
        int p = EventPlayer();
        playerInput[p].mouse.uix = EventMouseMovedPosXUI();
        playerInput[p].mouse.uiy = EventMouseMovedPosYUI();
        playerInput[p].mouse.x = EventMouseMovedPosXWorld();
        playerInput[p].mouse.y = EventMouseMovedPosYWorld();
        playerInput[p].mouse.z = EventMouseMovedPosZWorld();
        return true;
    }
    void Input_Init () {
        if (DETECT_KEYDOWN) {
            TriggerAddEventKeyPressed(TriggerCreate("Input_KeyOn"),c_playerAny,c_keyNone,true,0,0,0);
        }
        if (DETECT_KEYUP) {
            TriggerAddEventKeyPressed(TriggerCreate("Input_KeyOff"),c_playerAny,c_keyNone,false,0,0,0);
        }
        if (DETECT_BUTTONDOWN) {
            TriggerAddEventMouseClicked(TriggerCreate("Input_ButtonOn"),c_playerAny,c_mouseButtonNone,true);
        }
        if (DETECT_BUTTONUP) {
            TriggerAddEventMouseClicked(TriggerCreate("Input_ButtonOff"),c_playerAny,c_mouseButtonNone,false);
        }
        if (DETECT_MOVEMENT) {
            TriggerAddEventMouseMoved(TriggerCreate("Input_Movement"), c_playerAny);
        }
    }
    
    Posted in: Galaxy Scripting
  • To post a comment, please or register a new account.