Call Of Doomenstein

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!