Fossil Fuelled | Unreal Engine | Solo Project


Overview

Fossil Fuelled is a first-person shooter developed in Unreal Engine. My main objective was to create a weapon system that remained efficient and manageable as the project expanded. I structured the weapon logic in a base class, enabling rapid implementation of new guns without altering core systems. I also focused on refining player controls to ensure actions such as reloading and weapon switching are consistent, responsive, and free of input conflicts. This project was a valuable learning experience in maintaining clean, scalable Blueprint logic while delivering a polished player experience.

Technical Implementation

1. Modular Weapon Architecture

  • The Challenge: Manually coding unique logic for each weapon would have been repetitive and difficult to maintain.

  • The Solution: I organised weapon logic within a WeaponBase class, centralising core functions such as firing and switching. For new weapons, I created a subclass and adjusted variables as needed. This approach reduced redundancy and simplified the expansion of the arsenal while keeping the project organised.


2. Responsive State Management

  • The Challenge: Complex actions like sprinting, reloading, and switching weapons often conflict with one another if not managed carefully.

  • The Solution: I developed a state-checking system using Boolean logic to verify the player's current state before any action occurred. For instance, the system prevented weapon switching during a reload, thereby keeping controls consistent and eliminating input errors. This resulted in a more polished player experience.


3. Dynamic Shotgun Reloading

  • The Challenge: I aimed to make the reloading process more tactical and responsive rather than relying on a static timer for each reload.

  • The Solution: I implemented a dynamic calculation that adjusts reload duration based on the number of shells needed. The system determines the difference between current ammo and maximum capacity, then multiplies the reload time by 0.3 seconds per shell. This approach rewards players for managing their ammo and enhances the weapon's physical responsiveness.


Reflection on Development

Upon reviewing the state-checking logic I implemented, I identified an opportunity for improvement. Although the current system is effective for small projects, the nested Branch node structure becomes difficult to debug as additional states, such as vaulting or sliding, are introduced. In future iterations, I would implement a Finite State Machine (FSM) to manage player transitions more efficiently. This approach would reduce complexity and improve maintainability as the project scales.

Assets & Credits

Developed as a solo project. Some environmental assets, audio files, and animation packs were sourced from public domain libraries and the Unreal Engine Marketplace. All original gameplay logic and systems architecture were developed by me.

Next
Next

GrimDark: Top-Down Shooter