Codfather

Codfather is an online arena shooter made in Unreal Engine 5, inspired by Quake and Unreal Tournament. Players fight as part of two factions, the Shark Mafia and the Italian Divers, for control over the sunken Venetian city utilizing wacky fish-based weapons.

Codfather was developed for a 15 week long production cycle as a student project under the Academy of Interactive Entertainment (AIE). During this project I took on the roles of level design and tech design, constructing the initial level greybox and building the functionality for many core gameplay features and weapons, leaving the game’s framework and networking to our team’s programmer.

This was my first serious Unreal Engine project, so throughout the first couple weeks I learned how to navigate the engine, utilize blueprints and handle networking through the engine’s replication system.

- Level Design - Prototyping - Technical Design -

This project is available on HueShift’s itch.io Page!

Read the GDD [Here]!

Level Design

- Building an Arena -

Every shooter needs an arena to play in. During the level design process, I created a 5 layer Photoshop document. Using the layers, I drew out a rough map defining specific regions which players would fight in. Each region was given a theme which the level design in that area was based around: Alleyways 1 and 2, Markets, Sewers, Rooftops, Town Square, Casino and Housing. During the Proof of Concept phase of the game, I built out only half of the map for testing purposes, drawing Alleyways 1, Markets, Sewers and Rooftops, however during the first gameplay test, this map proved to be sufficient for 2v2 and 3v3 engagements, so the other half of the map was scrapped from production to save time and maintain balance.

Early greybox for (left -> right, top -> bottom) Alleyways, Markets, Rooftops and Sewers.

Prop placeholders were set up with red boxes, whereas pickup placeholders were cylinders. The majority of this map stayed the same throughout production, only receiving minor tweaks following feedback or to improve gameplay flow and maneuverability.

Many of these areas needed to be iterated upon before the project’s final map was ready. The biggest point of these was sewers, which was a heavily contested area initially as it held the Barrazooka, our game’s rocket launcher, which provided the player with a significant movement bonus due to our implementation of rocket jumping.

The area was initially rather difficult to fight in once we’d textured the map as it was dark and gloomy with limited exits and it broke one of our important level design rules - “No Stopping”. The lower region forced players to either stop moving or leave via the jump pad to the Markets, causing a forced disengagement of the fight which felt bad.
Initially, I placed boxes down there which players could climb to jump out, but this was mostly cumbersome during fights and many players missed them entirely.

The solution I ended up going with was a ramp in their place which allowed players to swiftly navigate out while maintaining a fight, but still punished players adequately for falling rather than platforming to avoid the drop.

Alongside the drop, there was also a corner players would often hide in at the back. This slowed gameplay and didn’t feel satisfying to use for a kill, so I ended up bringing the bridge forward and closing out the far corner with a shelving unit.

Finally, there was a part of the wall sticking out where players would often hit their heads. This wall segment was tricky, as it was initially placed to prevent players from sitting at the top entrance of the sewers and shooting players entering through the long corridor to the left of the screenshots, however, in practice it proved to be more of a nuisance for the players pushing out of that corridor, as it prevented smooth movement around the corner, so in the final iteration of this area it was transformed into a smooth ramp to the roof.

Throughout development, various weapons were traded out for the Barrazooka, as seen in the screenshots above - for a stage the Pufferfish Launcher was in the sewers, as I had placed the item pickups in locations where they would not prove as effective, forcing players to move around the map to use the weapons they had claimed effectively. However, this backfired as the Pufferfish Launcher actually ended up being profoundly effective in the tight spaces of the Sewers. In the final iteration of the map, the Eel Railgun was placed in the Sewers as it benefits most from long sightlines which are present in most other areas of the map. During this iteration, the Barrazooka also became part of the player’s base kit.

Designing for Fun

Weapons and their Strengths

Each weapon was designed to have its’ own use case. The SquidMG was built for close quarters engagements, but was intended to be outclassed by the other weapons found around the map. The Barrazooka was built to be a movement tool and a powerful splash damage dealer with a limited ammo pool. The Eel Railgun was built to be a serious threat at long ranges, dealing big damage but with a big cooldown, and the Pufferfish Launcher was built as an alternative to the Barrazooka, allowing players to ricochet pufferfish off walls to damage opponents behind corners.

Overall, however, these intentions changed over time as players provided feedback - Initially the SquidMG was too weak, and while it was outclassed by other options as intended, it did not provide players who had just spawned in with a weapon to defend themselves. The SquidMG was probably the weapon which went through the most significant changes, as it received an overcompensating damage buff initially, causing most playtesters to rely on the “Spray ‘n’ pray” nature of it. Eventually, it fell into a nice place with 8 damage per shot and receiving a considerable amount of damage falloff at range.

The Barrazooka was also heavily iterated upon. For the majority of the testing cycles, the Barrazooka was an item that had to be found in the map each time a player died, but we found players were hunting it down first each time, forcing engagements around the Barrazooka rather than allowing players to play with other weapons and experience the full range of gameplay opportunities. The Barrazooka initially dealt quite a large amount of damage to players using it for rocket jumping, however the weapons’ self damage was reduced substantially following player feedback, while it also saw many incremental increases in player knockback, turning it into an incredible mobility tool. Eventually, due to the utility the weapon provided, the Barrazooka was added to the players’ base kit, allowing them to spawn with it in their inventory. This opened players to more movement expression and spread fights out more evenly across the map.

The Pufferfish Launcher is probably the most unique weapon in Codfather. It began as a simple grenade launcher archetype, but due to a bug the pufferfish it fired would lose gravity after hitting a surface. I decided to embrace this mechanic, fixed the root cause and implemented a more reliable functionality. This resulted in the Pufferfish Launcher not only being effective at finishing off enemies around corners, but created a powerful area control weapon which playtesters would use to section off routes their opponents could take to escape. Due to the weapon’s low fire rate, it was initially the least liked weapon in the game, but I had noticed skilled playtesters using it extremely effectively. Using this information, instead of directly buffing the weapon, I lowered the damage by 30% but buffed the fire rate by 75%, which resulted in extremely positive feedback from playtesters and made the Pufferfish Launcher one of the fan favourites at showcase events.