Genre: Multiplayer Party Game
Project Role: Gameplay/UI/Networking Programmer
Team size: 5
Engine: Unreal Engine 4.24
What is it?
“Robo Games” is a multiplayer party game that contains two game modes, "prop hunt" and competitive racing.
In "prop hunt", players will be separated into two teams. They will take turns to play as "prop" or "hunter" during the game. The goal for the "prop" team is to survive until the run ends while the "hunter" needs to find the "prop" and eliminate them in time.
In the second mode, the players need to dodge the traps in the level while competing with other players. Their goal is to reach the destination as soon as possible. The concept of this mode came from "floor is lava". There are many spaces where the players need to avoid falling to the ground.
If you’re interested in playing the game, the installer can be found here.
What did I do in this project?
For this project, I implemented all the UI for both game modes. Besides implementing the functionality of the UI widget, I also engineered the replicated function to make the UI be able to send and receive data between the server and clients.
I also created the lobby where the player can customize their display name and see the score after each round. Once a player changes his/her name, it will immediately be reflected on other players' UI. The lobby UI will also show how many players are currently in the game.
For gameplay, I developed the round system which will determine the game time and resolve the round. It will start the game with a countdown and end the game when the winning condition is satisfied or the game timer reaches the end. At the same time, the system will also record player's performance and show the immediate information on each player's UI. After the round ends, the round system will switch each team's role and start the next round.
What went wrong?
Because of the quarantine and it was the first time we touched networking in Unreal Engine, we had a hard time learning how to use it at the beginning and sometimes encountered the problem that team members implemented the replication differently. To solve that, we hold several meetings to discuss which was the formal way and set a general rule for the programmers.
What went right?
Even though we were a small team, we still got everyone to finish their jobs on time. With weekly virtual meetings, we were able to find the problem and came out with some solutions for it immediately. Other than that, we used only a few art assets to make our game look nice when there was no artist in our team.