This week is a week of heavy development. Since the whole team will be out of town for the Game Developer Conference next week, we wish to have the singles mode and tutorial level as much done as possible. We will leave week 10 as a buffer week to polish our game and optimize player’s experience for the coming playtest day.

Singles Rules

By halves, we had a demo that allows two players to play against each other with a satisfying hit and bounce physics. But that’s pretty much all we got by that time. We are still missing basically everything about rules to actually make the game runnable and competitive.

Sion spent the whole week dedicated on implementing the rules and made sure that it went as the document specified. Easy as it may sound, this is actually maybe one of the most difficult programming challenges that we’ve faced in this project. We have to make sure that the key game states (such as the current score and the bounce count of the ball) are properly and correctly updated and synchronized across the network in a timely manner.

For example, we had this bug that sometimes the system is calling the score at a totally wrong timing. We spent days printing debug logs and adding break point, only to find out that sometimes the collide function between the ball and the ground is sometimes simply not called (on the master client’s end). This is because the owner of the ball is whichever client being closest to the ball. And when the ball collides with the ground on his (player A) half of the field, it’s possible that the ball instance on the other player’s (Player B) end is actually not touching the ground. If, at this moment, the Player B is the master client of the game, the bounce event will never be raised and received by the game manager (only the master client is reporting this event because we don’t want the bounce event to be recorded twice).

Once we know the cause of this problem, the solution seems quite obvious. We simply broadcast the collide function to all the clients in the network so that the bounce would be recognized by the manager. But still, this only one example of all the bugs we solved, and this kind of networking problem is really hard to debug, as they are not happening every time, so we always need two programmers/designers available to test whenever we make a change to the code.

Tutorial

On the other hand, Aiden was focused on implementing the tutorial level with the help from Valerie.

Through the tutorial level, we want to equip the users with the knowledge of how the rules of pickleball works by asking them to complete a series of tasks. We will guide the players with step by step text instructions on a floating UI panel, and also use the visuals as indirect control to help them better understand the rules. Also, the tutorial will give users plenty of chances to practice serving/returning, so that they can have better sense of how the hits feels like and accommodate their body position to make better returns.

Art

Art-wise, Pulei finished the models and textures for all the 4 characters. For the final product, we want the players to be able to select and name their own avatar from the 4 options.

Categories: Blogs