Spite Absolution is a hack-and-slash action role-playing game created by Cyber Sloth in our in-house game engine Lucky Engine. It is heavily influenced by our reference game Diablo III and leads you through haunted chambers to reclaim a stolen artifact. On your way through the tombs, you gain the remaining powers of your fallen brothers and sisters who lost their lives during the very same mission on which you have been sent.
For this project, I decided to take on some challenges. I signed up to handle the level exporting and loading the levels into the game. I also volunteered to work with the creation and pipeline for particles (this would later turn into me working on a particle editor). At the beginning of the project, I code mined my old state stack from my previous game project Vertebrave and Akuma. This system, together with its interface made for an easy-to-work with scene handling system (going between menus to in-game and so on). To read more about it, you may press here.
I worked closely with the level designers to decide which level editor we would
want to work with and what the workflow would potentially look like. We decided on
using Unity as a level editor and I started looking at the structure of the export
scripts. With some help from my teammates, I decided that creating an
for every model to export would allow the level designers to control what
will be exported from the levels. I created an editor script for Unity so that the
level designers could, with an easy click, export their levels in the form of Json-files
to their chosen directory.
In the engine, I created a
LevelLoader-class that would
handle and break down the loading of different objects (navmeshes, models,
lights, particle systems, enemy placements and so on). I made this class
a subscriber so that it could subscribe to receive certain messages from
PostMaster-class. If another developer would want to
load another scene, they may use a predefined macro called
CHANGE_LEVEL_SCENE_NAME() and enter the level's
name as an argument. I made this macro so that it would be as easy as
possible to load levels without having to create a
and enter that into a
Message by hand.
I was excited to develop a tool for the technical artists to be able to use directly in our engine. I approached them and had a very thorough discussion about their expectations. The first iteration allowed the user to change the texture of the particle, the particles' speed, color, size, emission rate, gravity, if the particles were to be moving in their local space or in world space and some more. It was proven that this was enough for the technical artists to feel allowed to create multiple really cool and creative particle systems and combinations of particle systems. For example, here you can see technical artists Kim Johnsson testing out a god ray effect in the engine.
Under Specialisation/Particle editor I write more about the particle tool.