During this block, I had 8 weeks to make a game together with 9 other people. The team consisted of 3 designers, 5 artists, and 3 programmers, all from Breda University of Applied Sciences. The focus of this block was on teamwork and collaboration.
The game was made in Unreal Engine and we used the agile scrum method to manage the project. This block was focussed on learning and applying agile methodologies via scrum processes while communicating and collaborating with a team.
My main focus of this block as a programmer was helping the team to create the game. Making their experience as smooth and easy as possible. Some of the things I did were:
This project sparked my interest in tools programming. Being able to help the other disciplines to make their work easier and more efficient was very rewarding.
Below are some of the systems I worked on.
The resource system was a big part of the game. In the world there are ships and trucks that transfer resources between each other. The resources are then transported to the factories that the player needs to destroy. The factories can use the resources to build reinforcements like turrets, radars, and even heal themselves. This system makes it so the first factories are easier to destroy than the later ones, creating a nice difficulty curve. I had to make this system as robust and scalable as possible to easily modify it based on player feedback.
Enemies transferring resources between each other.
Boat to truck, truck to factory. Factory can use resources to build reinforcements.
For the menus, we wanted to be able to control them using a controller, keyboard, and mouse. I created a system that detects the input the player is using and adjusts the UI accordingly.
UI can be controlled using a controller, keyboard, and mouse.
During this block, alongside programming, I also had to pick a research topic. This project taught me how to write a research report and conduct research. I chose to research continuous integration (aka CI), which allowed my team to avoid worrying about building and publishing the game, as it was all done automatically.
My research consisted of three parts: understanding what CI is and how it works, developing a prototype, and implementing the prototype in the game.
My research paper can be found Here. A brief summary of the paper is provided below.
To make it accessible for the whole team, I developed and hosted a server to host the Discord bot and build the game.
Instead of creating a website to display the build status, I built a Discord bot. Team members could start a build from within the team Discord server and receive a notification when it was completed.
Since our team used Perforce, obtaining the latest version of the game was straightforward. I wrote a Python script that retrieved the latest files from Perforce and built the game, leveraging Unreal Engine's command line tools.
Discord bot starts the build and updates live.
After gathering all the files, I used a Python script to check them for naming conventions, ensuring the project remained clean and organized.
Naming convention checker.
Once the game was built, I zipped the game and uploaded it to Itch.io automatically using the server. It then provides a download link to the team, ready to be shared.
This research taught me how to write a research paper and conduct thorough research.
"You are after another straight 10 and it looks like you fully deserved it. Your build tool seems rather useful, and is based on solid research, including a reflection and room for future work. You have been an excellent team member, and even became a SCRUM master. I am not sure if a restaurant meal is worth all this but you must be learning a ton this way. Looking forward to more 10's from you!"
What do they mean by a restaurant meal? Whenever I receive a 10, I get to decide where we go out to eat. I told the teachers this, and they remembered it.