Untitled Call of Duty: Zombies Clone
This project is one of my current main projects in Unreal Engine 5.2.1. As the title would imply, the core of this game is the same as Call of Duty: Zombies — a wave shooter where players explore a map and open new areas as the game progresses. I’ve always felt that Call of Duty: Zombies (or just “Zombies”, for now on) has been somewhat held back by the fact that it’s a bit of an afterthought tacked on to an existing game and has to use a lot of the pre-established mechanics and content of the main game. In particular, I’ve always disliked that most of the weapons are directly from the main game, especially given the fact that some of these weapons are nearly worthless in the context of Zombies (I’m looking at you, War Machine). I’ve also always really liked ARPGs and specifically how their equipment tends to work. Put simply, ARPGs tend to use what are known as affixes to create large amounts of unique gear for their games. These take the form of implicit affixes, prefixes, and suffixes generally. This kind of system allows for a small number of “base items” to create a functionally infinite number of unique gear pieces. The idea for this game was originally to mash these two ideas together: Zombies but with “equipment” that you build your gun out of.
Now with that in mind, for the most part I’m not using affixes in this equipment system. The reason for this is in the heat of a wave shooter, having to parse all the information on a new gun part that could be literally anything sounds like a good way to overload a player. Instead, each gun part is a designed piece of equipment with predetermined stats. As of writing this, we currently have 4 different gun parts that make up the “core” of the gun, with plans to add non-essential gun parts later down the line. These parts are the receiver, the barrel, the stock, and the clip. The idea is each of these parts has “implicit affixes” that are essential statistics for the base of the gun. These include things like the base damage, fire mode, damage type, range, clip size, etc. Put simply, a gun cannot exist without at least these 4 parts and the system is designed to randomly select one for each slot if for some reason a gun is generated without one of them. In addition to these implicit affixes, we also have explicit affixes. Instead of segmenting these into prefixes and suffixes, they are one monolithic pool in this game. The idea is that explicit affixes are additional mods on top of the base stats. These can have ranges tied to them too, instead of just being flat numbers, unlike implicits. For example, you might have an additive damage affix that, even on the same named part, could add 10 damage, 20 damage, or anything in between. Alternatively, these can be flat changes to the gun that are not tied to any particular part, such as shotgunning, which turns a gun into a shotgun.
Acquiring these guns is the next big question. At the moment, there’s currently a distinction of 3 different types of guns. The first of these is the player’s Signature Weapon. In simplest terms, this is the gun that the player spawns with and has the potential to have a unique part that can’t be acquired anywhere else, though that hasn’t been decided on and is a stretch goal. We’ll return to Signature Weapons later. The second type of weapon is the Wall Guns. These, like in Zombies, are guns that players can buy off the wall. These guns will be predetermined builds, costs, and be in the same place every game. These weapons add consistency to the level, though may be relatively weak compared to the other types of weapons. The third and final type of weapon are the Procedural Guns. Though some means (as of yet undecided), the players will be able to spend points to purchase a weapon with completely random parts. Now, these have the potential to be extremely swingy — they could be absolutely incredible or could be practically worthless depending on what parts they get. This is where Signature Weapons come back into play. The player’s Signature Weapon cannot be traded out for any other gun ever. Instead, the player can choose to salvage Procedural Guns by inspecting it, selecting a single part from it, and immediately placing that part on their Signature Weapon, destroying the Procedural Gun in the process. This allows the player to have some amount of control over their circumstances and craft a weapon that gets more and more powerful with them over the course of the game. It also allows players to come up with builds and hunt for specific parts that they want in order to upgrade their Signature Weapons. Additionally, despite being constructed out of actual gun parts from the same part lists, Wall Guns can never be salvaged.
In terms of the level design, the intent is to be very similar to some of my favorite maps in Zombies, being the type that have puzzles and easter egg hunts to solve, as well as revealing narrative through progressing through these puzzles. These are the kinds of maps where I think Zombies really shines in my opinion and are what I’d like to focus on — I want every map to feel like a unique gameplay experience that players want to come back to and play again.
Finally, for multiplayer, as it stands right now, we’re only intending to support split screen co-op play, at least for this prototype. The reasoning behind this is multiplayer networking, even in Unreal Engine, takes a lot of extra time to do correctly and would really slow down the progress on the project. However, if this version of the project made it to a shippable state, we’d be able to rely on Steam’s Remote Play functionality to allow players to play together over the internet. If we deem it a good idea, we may either retroactively incorporate networked multiplayer or restart from scratch, knowing the idea works. The intent right now is to reach a playable prototype without it.
As some of my wording would imply, I’ve not been working on this project alone. A handful of my friends have expressed interest in assisting on the project, and have contributed ideas. The most notable of these however is my friend Nameer Khan, who is the only one so far who has actually contributed to the codebase. So far, his main contribution is working on the enemy AI. Beyond that, I am currently the main contributor on the project — while interested, most of my friends including Nameer have never worked on a game project before and are becoming familiar with Unreal Engine as they contribute to this project. That said, I hope to add more names and links here in the future of other contributors!
The following is a list of completed features as of the last edit to this entry (7/11/2024):
Gun Base, which is the core of every weapon, containing all functionality for any type of weapon
Functionality to either provide the gun with parts to use or randomly generate them, pulling parts from a data table
Reloading
Full Clip
1 at a time reloading
Fire modes
Single Fire
Burst Fire
Automatic Fire
Shotgun (not mutually exclusive with the above)
Interactables
Doors that cost points to open
Generators that provide power to other interactables (and can cost points)
Wall Guns, which provide the player with a new predetermined gun to use (and can cost points)
UI
Health bar
Ammo reserve
Points
Split screen, with controller support
Wave Controller, which handles the spawning of enemies based on a provided data table
Enemies
Track players and chase them
Take damage from fired bullets
Grant points to players for hits and kills