Back to projects

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.