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.


Apart from some basic features the HUD displays prompts for performing actions, which change depending on the input device; items that are assigned to the quick-slots for quick selection.


There are two sections within the inventory: a window showing the player's collected items; a window showing the player's equipped items.


I also worked on programming the main menu, pause menu, and all their functionality.


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.