Clone System
Inspired by “the Badeline chase sequence” from the videogame Celeste, Beanz Battle re-imagines a 2-player chase competition. Players are put in their own arenas and will verse each other by aiming to be the last one standing as they’re followed by their previous movements in the form of clones.
The clone system is the most significant feature in this game making things fun, fast paced, and even strategic. Clones were implemented using arrays that store the player’s position every frame. Once a certain amount of positions were recorded, the clone would move to the next recorded position from the array then delete it creating the delayed effect. Each clone were programmed with different offsets and times to account for the different delays. Signals were used to switch a clone’s animation to match the player. This helped give off the effect of the clones matching player movement. If they were to directly receive input from the player at a delay, the timing would be less efficient and start to lag. As for adding and subtracting clones, keeping a limited number of extra clones hidden away until called upon proved most effective.







Attention to detail
There were many little details that went into the design of the game making it more appealing such as flashy visuals and the addition of little bean characters moving around for more depth.
One challenge that came up was detecting a tie. Both players have timers and can collect items to affect their opponent’s or their own timer. A tie is a rare case when both players still have lives remaining and both timers run out at the same time. My solution for this was to create a global timer which was the game time – 1s and a count for each player. A players count would increase if their timer was increased by 5s or decrease if their timer was decreased by 5s. If both counts ever equaled the same, the global timer would increase or decrease by the count * 5(s) and the count would set to 0. This helped keep the global timer the same as the players’ personal timers if they matched. Then, if the global timer ran out of time first it would indicate a tie.