Spite

About the game

Action RPG Hack and Slash, 14 weeks part-time development

Built using our own engine with DirectX11 and flecs

Some of my contributions include

– Helping the team with ECS architecture

– Abilities, Debuffs and Upgrades

– Added Components to our Unity Level Export and Loader

– Built UI for Skill Tree and Main Menu Scene

My Work & Problems

Spite was developed alongside our in house engine Eggine, powered by DirectX11. This was the first project where we had complete control over the workflow. Prior we had been using a barebone framework that provided basic spirterendering. Eggine marked a lot of firsts for me. We made a collective decision as a team to try out a ECS implementation called flecs, after developer Sander Mertens held a guest lecture for our class. This was my first time working with an ECS architecture which was uncomfortable, but exciting. I quickly got to know and love the strengths of ECS by using some design patterns I had learned in one of my courses. This project also introduced new members to our workflow, technical artists. As a result we got to face new challenges, like how to work with materials and shaders on the engine side of things, as well as how VFX fit into the pipeline without directly interacting with our code. 

This project marked a lot of firsts for me, but it also set a lot of the structure and standrards for the projects to come. One of my peer programmers introduced me to CMake, which we used for managing project files and importing external libraries to our project. With time I have really come to appreciate the overview that CMake provides in comparison to Visual Studio’s graphical interface for project settings, as well as the lack of conflicts when merging some project file changes. 

 

In terms of work on this game I made sure to try and keep everyone in the team up to speed with ECS, as It definitely came with a learning curve. I refactored some of the ability system that we had designed and later on extended it to give support for debuffs, like slows and bleeding effects. Part of this work included giving more control to our level designers by making all abilities be designed through json. At this time our editor was non-existent, since we were still in the process of some of the core systems for our engine. 

To further give control to our level designers I was also responsible for extending our unity to Eggine loaders. I added more components and fields to existing components in unity and updated our level loader to handle this data. This was a continuous process closely working with our level designers to make sure that they had the tools needed to make their ideas come to life. 

 

I built a lot of our menus which proved to be very time consuming. The core feature of our game was the ability to upgrade your abilities and giving the player the option of picking a unique playstyle. Therefore it was extra important to put love into our skill tree. I worked on building the skilltree and making sure that buttons locked as you progress throughout while also having access to tooltip information about what each upgrade did. It was my job to make sure that the tooltip never appeared outside of the screen and that all UI elements that could be hovered with the mouse provided some information through this feature. 

Questions and Feedback

If you have any questions or feedback you are always welcome to contact me at

contact@lukaslenander.com