It’s a course project at UCSD done by a group of 6 people. 2 for graphic, 2 for gameplay, and 2 for network. We were not allowed to use any game engine, and we used C++ to implement the game in 3 months.
Gaia is a 3d, 2v2 cooperation game. For each group, there is a player controls the ball trying to get the points, another player would edit the terrain by lifting it up and flattening the floor to help the teammate or block the opponent’s ball.
As a gameplay programmer, I dealt with the I/O signal process between client and server. I also did the audio loading and playing during the gameplay using SFML library. I also helped my teammates on using ImGui for the UI.
Challenge: Optimizing the network. The delay was a serious problem even in the local network.
Solution: We talked with each other about this problem. We decided to redesign our way of data transmission. Originally we designed to transfer heightmap information every server tick, later on, we decided to only transfer changed points whenever the player has an interaction with the game map. I helped on the client-side to make the change and test out the result with the network group working on the server-side.