Call Of Doomenstein
Overview:
Call of Doomenstein is a 2.5D clone of Doom, Wolfenstein, and Call of Duty that is made in my own custom C++ game engine. This game builds off of my previous Doomenstein project architecture but expands to make it a competitive multiplayer FPS. The additions to this game include 4 player split-screen, Team Deathmatch and Gunfight game modes, a 3D vertical map, a weapon management system, 7 unique weapons, new player abilities (jumping and jetpack), controller aim assist, complete game UI menus/flows, and XML data-driven gameplay.
- Tools: C++, DirectX 11, HLSL
- Development Timeline: May 2023 – July 2023
Game Features:
Aim Assist
In order to fix the competitive disadvantage for controller players, a simple aim assist was implemented. This aim assist system raycasts each frame using a fast voxel raycast that leverages the map’s tile-based design to check if the cameras forward vector intersects the initial aim assist area (sphere) surrounding each enemy player. If the raycast returns a hit, that hit actor becomes the aim assist target. From here, the player’s orientation (Euler angles) get interpolated for both yaw and pitch based on XML defined aim assist adhesion variables. Also, by keeping track of the target actor, the aim assist will not swap to new enemy players that intersect the aim assist raycast.
3D Physics and Player Abilities
One of the new major features of Call of Doomenstein is the 3D vertical map. The map design is a clone of the map, Shipment, from the Call of Duty franchise. To allow the player to vertically traverse the map, new player abilities of jumping and a jetpack were added. But to get these new abilities to work, a vertical tile-based map system and 3D physics responses (gravity, AABB3 and cylinder collisions, drag force, and friction) were incorporated.
7 Unique Weapons and a Weapon Management System
The 7 new weapons types that were added for Call of Doomenstein are a rocket launcher, sniper rifle, shotgun, assault rifle, pistol, grenade, and knife. Each weapon comes with unique sprite animations, audio, and damage effects. To be able to incorporate each new weapon a management system was created that accounted for weapon pickups, ammunition tracking, and reloading.
UI Menus and Multiplayer Game Modes
For this project, UI was implemented for every state of the game (main menu, lobby, pause screens, and start/end screens for individual rounds and game modes). Also, Call of Doomenstein features the classic FPS game mode of Team Deathmatch and a newer FPS game mode Gunfight, that was created by the Call of Duty franchise. In this game mode, 2 teams face off in a small map where the purpose is to kill the enemy team within a 40-second time limit. If the time runs out, a flag will spawn in the middle of the map and stay there for 10 seconds. Players on both teams will then have an opportunity to stay within the flag zone in order to capture the flag and win the round. If the round ends and nobody captures the flag, the winner of the round will be decided based on which team has the most total health when the round ends. If both teams have the same amount of health, then it is a draw and both teams get a point for the round. Each round both teams get the same randomized weapon class and switch sides every 2 rounds. The first team to win 6 rounds wins the game!