Physics-based sports game with large-scale multiplayer built on top of a variety of different animation systems. This was my 3rd year group project at The University of Bristol
Gameplay
Full Metal Runners is a physics-based sports game with large-scale multiplayer built on top of a variety of different animation systems. The player’s main task involves playing a modified version of American Football, where instead of the pitch being a flat plane there are a series of platforms for the player to navigate. A ball is placed at the highest, most central point of the map, and the player has to find and bring it to the opposing team’s goal without being tackled by enemy players.
Code
The game was developed by a team of 6 as part of the 3rd year computer science program at Bristol University. I was lead programmer so took on a lot of the management tasks for the code base such as ensuring we had good build processes, that the repository was up to date and overseeing the project task backlog and bug database. This was a very large project so I wont go into detail about all aspects of it’s code here, instead I will just highlight the key features we implemented that I was involved in. The full source code for the game is available on GitHub in the links section at the end of this article.
As I was the only member of the team who had worked with unreal engine before I worked to build the core systems of our gameplay at the start of the project. Many of these were later handed off to other team members to continue working on and developing content, such as our minigame system. This was designed so that we could prototype different minigames for the players to take part in very quickly and determine which of these were fun and which weren’t.
I worked in this fashion on many other gameplay elements such as our custom physics systems, our game code for making API requests to our leaderboard server and our music and sound effect systems. These all worked very closely with other team members to set up these systems within Unreal Engine. Towards the end of the project once all team members were experienced I worked independently on our polish features such as our spectator system which was designed to mimic TV sports broadcasts. For this we wanted to implement an action replay system to catch any key moments and see them in slow motion. After evaluating the provided code for this in unreal I realised that we would need a bespoke system for this which can be found in our Github repository. This implementation is lightweight as it doesn’t require reloading of the game world and only tracked very specific objects. This was ideal for our use case as our target machines did not have large amounts of memory or high performance processors.
Games Day
At the end of the project for our final assessment the department hosts ‘Games Day’ where any student or member of the public is welcome to come and play the games developed over the course of the year. Over the 3 hour period from 2pm - 5pm we recorded just over 300 players logging in to play our game, in fact we did not have enough space in the room to give everyone who wanted to play a space. This final demo of our systems really proved that the networking systems we had developed worked well and were scalable. We regularly had 20+ players on each of our two servers with only minor issues reported by some clients. Our project received a first class mark and I am very proud of what we had achieved on Games Day.
Links
- Source Code (Github): Please note that currently the windows builds available in the releases section of this repository will not work as they were designed for the dedicated server setup we had for Games Day