
Covenant of Ash
A single-player turn based tactics game where you control four characters to defeat the enemy group in combat.
1 player.
Created as part of my university course's final year for the PlayStation 5.
My Contribution:
This game was made as part of a group project for my Computer Science for Games university course.
Programming
The features I programmed into the game are:
-
Units
-
Unit stats (displaying in the stats UI and reading them from JSON)
-
Selecting units with the bumpers.
-
-
Animations
-
I created rotation based animations.
-
When units win, they spin in place.
-
Attack and Hurt animations that rotate the unit towards/away from the attack.
-
-
Actions
-
The ability to select actions for a unit.
-
Action Points that each action requires.
-
Action Point cost calculation for the grid movement.
-
I wrote the attack action code in Lua.
-
-
Battle Manager
-
I created the ability to save and queue actions and resolve them at the end of the round, when a key is pressed.
-
This manager also handles asking the unit AI for actions, during the resolve stage.
-
Combat calculations between units that are fighting.
-
-
Unit AI
-
I created the calculations that determine what action a computer controller unit should take and which unit they should target.
-
This includes attack actions and movement, so the AI will move closer to its target if it is out of range.
-
The AIs will fight the weakest enemy unit they can currently attack, so they will team-up on one unit until it dies.
-
-
Win Condition
-
I programmed the win condition to be checked at the end of every round.
-
If all of the players die, the player loses.
-
I also added two objectives, which are set before the game begins:
-
Kill every enemy.
-
Kill a target.
-
If the target is killed, the remaining enemy units will flee and the game will end.
-
-
Number Rendering
-
The core number rendering was already created by another programmer on the team, but I created a Number class that takes in a new number string and allows an existing number GUI icon to be updated.
-

Additionally, as part of the previous semester's PlayStation 5 project, I accomplished the following:
-
I created a renderer for a custom engine in C++.
-
This renderer is capable of taking in a 3D model in OBJ format and rendering it on screen, and can apply a texture to the model.
-
-
Level Editor
-
I created a level editor for PlayStation 5 that allows you to create new objects in a world, transform them, and change both the model and texture at runtime, entirely useable with a PlayStation 5 controller.
-
Skills I Gained:
An understanding of the rendering process, thanks to being able to create my own renderer.
Memory management skills, as I had to create the allocate and free memory functions and manage when these are called to ensure I'm properly allocating and freeing memory.
