University Group Project (Year 3)

View project on GitHub: 

GitHub Repository

Eternal is a combat action RPG inspired by From Software’s souls-like games and designed specifically for a casual audience while retaining a souls-like gameplay loop, where you fight your way through a medieval fantasy landscape using a variety of weapons, spells, and consumables.


My main responsibilities were programming the:

  • AI

  • HUD
  • Inventory system
  • Menus
  • Audio Manager

and integrating & implementing the Easy Save 3 save system package to create the game's save system.


The enemies can engage the player as individuals or as a group, and combo their attacks when fighting. They'll also evade player attacks and occasionally circle the player's position. Otherwise, the enemies will be patrolling a path or searching for the player.


There are 3 different types of AI:

  • Short range melee
  • Long range melee
  • Shielded enemies


Behaviour Tree

Each enemy implements a behaviour tree to control which actions they perform and when.



Eternal's HUD displays: player statistics such as health, stamina, and combo counters; four quick-slots for cycling through the player's equipment; and prompts for performing actions, which change at runtime depending on the input device being used.



There are two sections within the player inventory: a window showing the player's collected items; and a window showing the player's equipped items. Selecting an item will display its statistics and items can be equipped or unequipped with a drag & drop feature.



I also programmed the game's main menu & pause menu, and added controller support for all UI elements.


Through using FMod, the audio manager handles playing one-shot audio clips; the number of instances of audio clips; restarting audio clips.

Other Work

  • Integrated & implemented the Easy Save 3 save system to create the game's save system.
  • Created a tool that allows the user to plot and edit a patrol path for an enemy.
  • Helped oversee the game's Steam release.
  • Presented the game at the 68th Insomnia Gaming Festival.