Player Serializer and Minigame Team Score Updater

Map Description

  1. Captain Punch
    17 Objects
    Serializer Controller - 5 Scripts
    Player Serializer & Tracker Module x16 - 4 Scripts ea
    69 Scripts Total

    Sets Zulu to ON at Round Start
    Fires Golf every 0.05s
    If Z=ON, Golf message makes the Controller check if there are unused trackers, which then causes it to grab one and assign/activate it. The tracker will then grab the first unserialized player, claim them by setting that player's Alpha channel to it's Spawn Order, and then remove the uniform label on the tracker that marked it as inactive so the Controller will ignore it.

    Assigns each player a unique value 1-16 in their Alpha channel, then uses various other player number channels to run a loop that tracks player score and pushes and changes to the overall team score.

    This serialization would mean that any player that does something can have their ID saved and accessed at any time. This would allow for things like class assignments for class based modes, as you would be able to easily track who has chosen what class for targeting of trait application, fx follow objects to make them stand out, etc.

    Easily expandable to create an inventory system with 5 separate slots for integer variables that could represent whatever you want, like equipment, or keys, or currency. Also has a module for tracking player health and shields.

    This will service up to the max 16 players.


    The player to team score update works like this:
    - Save player score to pScore variable (will start at 0, of course)
    - Decrement Team score by pScore (0 the first time)
    - Update pScore to player score Increment Team score by new pScore

    The reason it is crucial to decrement first is that incrementing can cause the team score to jump past the win condition and end your game at the wrong time, this allows for going waaaaay negative and then immediately resolving if a bunch of players score at once instead of breaking in the opposite direction. That kind of design is crucial to guarantee edge cases can't wreck your systems. The issue is getting player score, which can be done via game values, but then you've got 16 players to track, and what if someone's score updates before someone else who got their kill first and the wrong team gets the win? With the Serializer, a tracker is assigned to each player, kept assigned to all players even if new ones join, and it fires every tick, updating all team scores at least 3 times a second.

Discussion

Share This Page