Overrun - Multiplayer Horde Shooter
What is Overrun?
Overrun is a 3D cooperative first-person shooter where a group of farmers must defend their farm and family from invading alien forces, they call Bugs.
Overrun was made in Unreal Engine 4 in my senior year at DigiPen Institute of Technology with a team size of 7 people. Our team’s lineup consisted of 2 designers, and 5 programmers. Over the course of about 3-4 months, we worked on creating a multiplayer mech shooter with a space farmer theme.
What Did I Work On For Overrun?
For this class we were told specifically not to assign any leadership positions to any members of the team and to keep our teams between 3-5 members, however we pushed the limit of the team due to the multiplayer aspect of the gaming needing more people behind it. I focused primarily on Level Design, however due to the team only having two designers I very frequently had to do UI/UX.
Overrun was originally planned as a yearlong project spanning two semesters, however was cut short at the start of the second semester due to concerns about being unable to complete the project. I had created a plan to get the project back on track and integrating with the steam multiplayer interface, so that we could release a beta of the game, however then we lost our networking programmer. Subsequently I decided that we couldn’t continue the project and assisted the team in finding new places for them to go during our final semester.
For the level that I was able to create in Overrun, I focused on trying to create a relatively small map that provided multiple locations the player would have to watch, so they didn’t get overrun by enemies. Overrun relies on wave-based combat and teamplay, so I had to make sure I supported those aspects of the gameplay, while stilling giving freedom of approach to the players. I wanted to create a level that has a few different “optimal plans” instead of creating a level that only has one plan that very clearly works best. Unfortunately, I was unable to fully complete the level and the subsequent secondary level that I wanted to create due to my split priority between Level and UI/UX.
Overrun needed a lot of UI in order to support its gameplay and features. Since we had no artists, I had to create, design, and setup much of the UI myself with our UI programmer Megan going in after to create the functionality around it. The sheer amount of UI around the games mechanics generated a variety of problems for the game that unfortuantely we were never able to resolve due to the project being cut short.
What Did I Learn From Overrun?
- DO NOT SILO! – All of my previous projects had leadership. Due to the fact that we were forced to keep our teams small for this project and we weren’t allowed to have any student focus on being a producer or lead many people started siloing, going off on their own and working on their stuff with not much thought about how it will be integrated into the game itself. This was only further exacerbated by the fact that this was the first project we were working on that was 100% remote. On my previous project much of the game was done by the time we were forced to go remote due to Covid-19, however this one lockdown was already in full swing. This project fully and truly showed me that siloing is one of the most deadly thing on a project of any size. It doesn’t matter if you have all pieces of the jigsaw puzzle if nobody is really working on put the puzzle together.
- WORKING REMOTELY – This was our first team project working 100% remotely and it was very difficult to acclimate too at first. Though we never fully solved the siloing issue and hadn’t fully acclimated to working solely from home, we did learn a lot about how to do it. My experience working on this team helped me understand how to work on a remote team which helped me in my following project Silent;Void and I am sure will continue to help me down the line.
- PROJECT CANCELLING – Nearing the start of the second semester of the project we unfortunately lost our networking programmer and with the game being entirely reliant on cooperative play and with no easy way to refactor the game for single-player only, I made the decision to cancel the project. There were too many mitigating factors for us to deal with and due to the issues I mentioned in the section about siloing we still had a lot of the project to go and a lot to do in order to get the project back on track, because of this I couldn’t rightly keep everyone on the sinking ship and decided to make sure everyone got off safely and find a new crew to join.
- UNREAL 4 & TEACHING AN ENGINE – Though I had some experience with Unreal 4 and Unreal 3 prior to this project this one helped me a lot with learning the functionality of the system, how the UI system works, how blueprints work, how importing assets work, and so on. Due to the fact that we didn’t have any artists and only one other designer I had to touch a lot of Unreal’s systems in order to get things to work properly. Many of the programmers were working solely in C++, so i had to learn how to interface with their code using blueprints and I imported and setup many of the assets. Additionally, the other designer had never worked in Unreal 4 before and needed to be helped with learning the engine more often than not, which fell between me and our AI programmer Abishek.
One of the largest tasks in Overrun was the UI experience. Our progression system was entirely linked to the warhouse/shop system. Customization, upgrades, and weapons were all located in the warehouse and were the core interaction for the players outside of the simple team-based horde shooter gameplay. We needed a UI that meshed well with our theme, which was a bunch of farmers defending their farms from invading aliens with modified farming mechs. We needed a user interface that really felt, for lack of a better term, “mech.” However it also still needed to use warmer colors because the cooler color scheme of many mech games was too cold for the theme of farming and didn’t mesh well with the rest of the games art assets. I tried to craft a UI that would be familiar to players who enjoy mech games.
I worked alongside our UI programmer Megan Davis to implement the HUD and Warehouse menus. I setup the infrastructure and layout of the warehouse menus in-engine, so Megan could go in after and implement the functionality for the menus. There was quite a lot of UI to implement for the game, however so in the end on top of setting up the infrastructure and layout of the HUD I also worked on a bit of its functionality using blueprints and getting help from our Networking Programmer Tom Brownlee to make sure the information was being duplicated correctly and accurately being displayed for each player on the server.
In addition to that a lot of the audio feedback and audio UX for the game was done by me as well. Using sound libraries I sourced sounds for the menus, weapons, mech, and aliens. Implementing much of it myself with the exception of the complex functionality of the warehouse menus which was Megan’s main focus.
The level design of Overrun was meant to be relatively simple and basic while giving players the oppurtunity to use the environment to get the advantage on the wave-based hordes of aliens that you are defending against. The level itself was created to become more difficult to defend as the waves progressed, while stressing the use of teamwork to cover all angles of approach. I purposely avoided massive sightlines, so one sniper couldn’t defend the cattle all by themselves. The level promotes the use of team communication and strategies, so you can properly defend and recover lost assets. A decent amount of time went into also making the planet look both familiar and alien. Sci-Fi elements were added to many of the farm staples in order to properly setup the theme and create this minor feeling of fish out of water.
- Brendon Banville - Level Designer, UI/UX Designer
- Harrison Green - Systems Designer
- Tom Brownlee - Networking Programmer
- Mubarak Al-Sabah - Gameplay Programmer
- Abhishek Mohan - AI Programmer
- Megan Davis - UI Programmer
- Cameron Monks - Combat Programmer