This game was made in collaboration with a group of 20-25 people, for a university project. The game won the reward for the best technical implementation out of the collab games submitted for the collab module for Staffordshire University. For the game I worked on the tech side to help create and implement different mechanics. The main area I worked in on the technical side was creating and implementing the different enemy AI's. As well as this I worked on creating some of the mechanics for the game, fixing many of the bugs that came up during development and designed and made the loading screen animations.
The game my group decided to work on, was to create a 4 player local co-op experience. This game was the second time I have worked with such a large group of people. This was also my first time developing a game with local co-op which came with its own challenges. The main role I had working on this game was working and implementing the AI. This role ended up being more challenging than I originally expected due to the nature of the game we were making and also due to the version of Unreal that was being used.
For the AI I used the built in behaviour tree's to create the different enemy types. The main challenge when creating these enemies, was making them handle multiple players correctly. This ended up being a challenge, as they needed to be able to prioritise the right players, while keeping the behaviour balanced. Most enemy AI's are designed for a single player experience, so creating one that can have proper decision handling for multiple players is a little difficult, especially since depending on the approach the AI could be easily exploited if done incorrectly. The version of Unreal also has some problems related to the AI, the main one being the Navigation mesh available does not work properly, and generates the Nav mesh in the floor which made it difficult to create and test different behaviours.
Outside of the AI, I created the enemy wave based spawning system. I applied a weight based spawning algorithm to the enemy spawner, so each enemy can have its own unique cost, and have the waves be generated from a pool of enemies to add up to a certain cost threshold. The waves are generated at the start of each map. and the cost scales based off of the active modifiers, number of players and the current level they are on.
I also worked in other areas such as:
I created and modified some of the game room modifiers, the main one being the Tunnel vision modifier where the enemies will only target one player, and the target player can be swapped by hitting the player. I also modified some existing modifiers to work with the new enemy cost based system
I created the enemy blueprint itself, as well as the behaviour trees, and added the logic for them to communicate and work alongside one another
I implemented the different modifiers and stats into the enemies with a data based system to make them easy to balance
I created the game transitions and the loading screen, as well as handled creating and animating the 2D loading icons seen inside the loading screen
I coded a data approach for the credit sequence so they can be generated at the start of the game, reading from a data table to make them easily editable.
I implemented the enemy Audio onto the enemies
I created the weapons used by the enemies
I created the shaders attached to the eye and the eyeball to add some realism
As well as this I handled fixing a lot of general bugs found within the games from the enemies to the different game mechanics