Genre: Multiplayer Party Game
Project Role: Gameplay/UI/Networking Programmer
Team size: 2
Engine: Unreal Engine 4.25
What is it?
“WExpolsion” is a multiplayer party game whose map is constructed by layers of cubes.
The player’s goal is to make others fall and destroy as many cubes as they can while not falling to the underneath black hole.
The players will be able to use different weapons to destroy cubes or interfere with other players.
If you’re interested in playing the game, the installer can be found here.
What did I do in this project?
For this project, my major job was to implement the UI and related functionality to make it can work with the networking system we used, which was similar to what I did for the previous project, "Robo Games". Before implementing the UI and the supporting replicated function, I spent some time reorganizing the old function calls to make it easier for debugging and eliminate the risk of invalid accessing.
Besides UI, I also developed the hierarchical structure for it. Since we used different game modes for the main menu, lobby, and game levels, having a based class for the game objects (player character, UI...etc) could help us eliminate the number of functions and variables by defining them in the based class.
Other than the above tasks, I serialized and deserialized the user graphic (resolution and fullscreen) and audio (volumes) settings. Once they save the settings, they will be the same ones next time the user launches the game. I also implemented all the audio for this project including making the attenuation setting and replicating the playing functions if the audio needed be heard by other players.
What went wrong?
In the mid of the semester, we decided to reorganize the structure of the whole project to have the advantages of easier debugging and eliminate duplicate functions. However, it took more time than we expected. To make the game can be completed in time but not lost the fun, we shrunk the scope and cut some designs like custom character color, cutscenes, multiple levels...etc. In the end, we completed the game earlier with this plan.
What went right?
Since another teammate was my roommate, we had no problem with communication. Moreover, because we knew the abilities of each other, we had a good plan to allocate the tasks and was be able to finish them efficiently.
In addition, since it was the second time we handled networking in Unreal Engine, we spent fewer time to build the networking system for this project.