Spite: To Hel And Back

As a viking with a death wish, sober up as you fight your way through an undead infested mountain to prove you're too strong for death.

This game was created during two projects, 5 and 6. Project 5 involved preparing our own custom engine from the Applied Graphics Programming course for game creation and establishing early iterations of all pipelines.

Early development: testing the ability system to find bugs and issues. The player uses a basic and heavy attack, as well as a charge and a slam attack. The boss uses a summoning ability to summon skeletons, which in turn use their basic attack when the player is in vicinity.

At the start of project 5 I created a scene loader, which reads entity, component, and level data from a json file created by an external editor (in this case Unreal Engine) and creates a playable game scene from said data.

During the actual game development in project 6, I created the ability system that the player as well as all enemies and the boss use.

Abilities function by periodically checking a lambda expression, which returns a bool determining if the ability should activate. The lambda usually contains conditions like a key being pressed or being within a certain distance to an enemy.

Each ability also holds an AbilityInfo struct, which contains useful data such as resource cost, info about the caster, cooldown, and more. It also contains a custom info blackboard, which is used to export custom data from the level editor (in this case Unreal Engine) for the ability to use.

The AbilityInfo and Ability interfaces, respectively.

I also helped implement animation blending into our engine, R.O.S.E. Blending works by decomposing the transform matrix of each animation into the translation, rotation, and scale. These are then lerped (spherically lerped for the rotation quaternion) based on how for along the blend time we are.

  • Gameplay and abilities for characters, emphasizing flexibility and usage of polymorphism

  • Scene loading, converting level data from Unreal Engine’s editor into a game scene in R.O.S.E

  • Implementation of animation blending, applying matrix math to create more fluid animation transitions

  • Debug shaders; with the press of a button cycle through various visual debug modes like world normals or roughness.

All responsibilities and skills:

  • Genre: Action RPG/Dungeon Crawler

  • Engine: R.O.S.E (Our own engine)

  • Development time: 4 + 10 weeks at 50% (80 + 200 hours)

  • Group: 18 people: 6 game programmers, 4 game artists,

    3 game animators, 2 level designers, 2 technical artists

Project information: