Spite: Order of Chaos


"Bludgeon your way through hordes of enemies to save the high priest before your order falls to evil."

This was the first game that I developed in my second year at The Game Assembly. Earlier we used

engines such as Unity and Tga2D but for this project we made our own engine, Metronome. We

took inspiration from Diablo and the genre was Hack-and-Slash action game.

My contributions:

Deferred rendering



Billboard sprites

Level loading/exporting from Unreal

Animations with custom format


Engine: Metronome

Production time: 14 weeks 50%


I implemented deferred rendering in Metronome to open up for the possibility of using many lights at the same while preserving the performance.

With deferred rendering in place, the next task was adding shadows to our objects. Therefore, I took responsibility for this assignment.

In order for the player to know how much health each enemy had left, we needed to include some feedback for this. In our case we decided to display the amount of health above each damaged enemy and for this to be possible I implemented billboard sprites.

Furthermore, I added particles for a variety of effects such as the torches on the walls.


At first we decided to use Unity as our level editor as this seemed to be the easiest option when making an export tool. However, our level designers had more experience using Unreal Engine, and since they were the ones who would be using it, we decided to work with Unreal instead. My team member Melvin created an exporter from Unreal and tried making the file as similar to the Unity export file as possible. This created an opportunity for me to work simultaneously on importing the file data into our engine.

One of the bigger challenges in the early development stages were that our animations were really expensive and it took a lot of performance to calculate them each frame. When we identified this problem we decided to change library for importing 3d objects. This solved the issue and the animations were now optimised. However, this led to a different problem since it now took a lot of time to serialise only one mesh. To fix this I created a program that takes a .fbx file as input and outputs a binary file with all the data we needed already calculated. This massively improved the loading times and we now had optimised animations that were fast loading.

To Do: Entertainment


Aron Jönsson

Gunnar Frennesson

Linus Bensryd

Jakob Nilsson

Melvin Ringheim

Graphical Artists:

Amanda Westergren

Louise Wyke

Josefine Rosenlind

Viktor Gustafsson

Level Designers:

Alexander Thambert

Juila Nyberg

Viktor Lundbland Åfors


Aron Tinz

Elliot Raud

Technical Artists:

Nasir Kakar

Simon Sääf Malm