Relic Shooter
University group project · Player & Weapons Developer
My contribution to this group project was the player and weapon systems within the university's C++ and SFML framework. The player manages movement, sprinting, health, animation state, and equipped weapons. Aiming converts mouse coordinates into the camera's world space, so the aim direction follows the cursor as the view moves.
A shared weapon base class provides ammunition and firing behaviour, with separate pistol and Blitz implementations. Firing spawns a projectile from the weapon's position and direction, and projectiles advance using frame delta time, and are removed after collision or expiry. I also connected reloading, combat collisions, scoring, and pickups to the surrounding gameplay and HUD systems, working alongside the other team members.
My contributions
- Player movement, sprinting, animation states, and aiming towards the mouse.
- Weapon switching, ammunition, reloading, firing, and projectile behaviour.
- Combat collisions, scoring, and integration with pickups and the HUD.
Technical details
Player and weapons
The player owns health, movement speed, animation state, and the available weapons. Mouse coordinates are converted into the camera's world space for aiming. Weapons share ammunition and firing behaviour through a base class, with separate implementations for the pistol and Blitz weapon.
Combat integration
Firing creates a projectile from the weapon's position and aim direction. It advances using frame delta time, and is removed after a collision or when its lifetime expires. Reloading transfers reserve ammunition into the magazine, while connected systems update health, score, pickups, and the HUD.
Project context
Created with Ash Henry, Brad Beattie and Daniel Devaney using a framework supplied by the university. My role was Player and Weapons Developer. The framework and other team members' systems are credited separately.