WARNING: Site Under Maintenance
Many things are still unfinished.
This was my final project for my CG Spectrum certification course. It was my the first time they let us develop whatever we wanted without much guidance.
I was learning about Data Tables while working on this project, so I decided to use them to house all my different weapon types. The Weapon Data class houses all the variables necessary to create a variety of different weapons by simply changing some parameters. Doing weapons this way made it much easier to change any weapons properties without having to go digging in their Blueprints.
The Player character has movement very similar to Doom Eternal. They are able to double jump and have a dash move that only recharges when on the ground. The Dash uses the normal of the ground below the player to ensure that it's consistent on flat ground and when using it on slopes.
Weapons can be either Hitscan or Projectile based. They have been programmed to add physics impulses to whatever objects they hit. Weapons have a recoil property that can move the camera forcing the player to control the weapon. There is also a recoil recovery system returning the crosshair to it's starting position if the player didn't move the camera.
There are two types of grenades, Frag Grenades and Sticky Grenades. Frags will bounce around while Sticky 'Nades will get stuck to any physics object. Either grenade can be shot at for an early detonation and they will apply a physics impulse when exploding.
There are a variety of Utility items that can heal, give a damage boost, give a speed boost, or even allow you to activate bullet time.
There are 3 weapon slots:
a Primary Slot,
a Secondary Slot,
and a Heavy/Special Slot.
When picking up new weapons they will always go into their designated slots.
Ammo is collected by running into floating pickups. There are also weapon pickups where you can either grab new weapons or swap out your currently equipped ones. The weapon pickups are color coded based on the slot they occupy.