About Pogi Pong:

Pogi Pong was one of the final games I got to work on at EQUIS Labs. Pogi Pong supports up to 6 players on two teams. Players push around the star puck into apposing goal posts to earn points and coins for their team. At the end of the round the team with the highest score is declared the winner, or in the event of a draw then a tie breaker round is initiated and first to score wins.

Players control their in game speed by pedaling an exercise bicycle. Additionally, if wearing a compatible heart rate monitor the game can evaluate the quality of exercise and reward the player with a faster reloading of the Action Bar. When the Action Bar is filled, the player can choose Dash forward at an impressive pace to either catch up to a puck that is escaping them or to provide some extra push to their trajectory when trying to control the puck.

Development Notes:

As mentioned, Pogi Pong had been the final game I got to do development for in the Liberi set of games. Pogi Pong was still incomplete at the time of my contract ending, but the work I did was able to improve many core aspects of the game engine and libraries we developed at EQUIS lab.

Team queueing prior to Pogi Pong was done by first available spawn position, this would mean the first player to join would always spawn in the same position, second had their avatar spawn predetermined, if first left then the next player would take the first player spawn position. This worked fine in free-for-all games, but not for Pogi Pong were 6 players were possible but teams of 3 might want to fill in different orders. I made it so simple config files could be used to assign players in a round-robin format if 2 or more players wanted to ensure they played against each other, fill-each-team-in-order format if 3 players wanted to all join the same team against the AI and a retaining of the original format to be used in non-team games. This could be applied broadly and make games like Biri Brawl, Bobo Ranch and Dino Dash into team based games for future studies.

Additionally, this game lead to an entire rewrite of our Network Request framework to upgrade its capabilities. In most games Liberi functioned by extrapolating and interpolating player positions locally during play to minimize the number of packets needed to be sent to each client in a game session. When the predicted positions and actual positions deviated too much, most games would be fine to just snap the avatars into a corrected position. For Pogi Pong it’d be possible that this could cause a player to launch through the puck with enough lag. The Network code was rewritten to smoothly apply corrections throughout a session, as well as further optimize our interpolation/extrapolation algorithms, and to extend the framework to handle more datatypes unique to Unity beyond just the Vector3 position data and basic C# variable set.

 
Previous
Previous

Dino Dash