Synopsis
A dark substance is spreading throughout the swamp; with a ceaseless hunger, it pollutes and consumes all in its path. You, a relentless inquisitor, have been sent to investigate the matter. You must find the source of the corruption and burn it to the ground!
Development
Spite: Flesh and Flames is a top-down RPG made by a team of students from The Game Assembly Malmö. The development was spread across two projects, making this my fifth and sixth project as a game programmer at TGA. At this point, we were equipped with all the tools and skills to ditch TGE, the engine provided by the school, and run our game completely in our own in-house engine and render pipeline.
During the first few weeks of the project, we had some internal issues regarding our engine, going back and forth on which engine to continue working on. Ultimately, we decided to go with RockSolid, the engine from my previous projects, since it was more robust and user-friendly, having been worked on for two projects already.

Team: 18 people
Duration: 13 weeks (20h/week)
Engine: RockSolid (in-house)
Level Editor: Unreal
Contributions
This project didn't require a lot of work on the engine from my part since most systems were already in place from previous projects. Instead, I spent most of my time building our editor, along with some work on our graphics engine.

Engine
・ Separated TGE (engine provided by the school) and reworked our core engine class.
・ Improved our Visual Studio solution (folder structure, project settings, and setting everything up with premake)
・ Integrated my graphics engine/pipeline developed throughout another course.
・ Integrated a basic asset manager I had made in the same course for loading and getting assets.
・ Improved asset keys, allowing us to load and find assets with both relative and absolute file paths.

Editor
・ Integrated Dear ImGui and created a simple manager for editor windows.
Hierarchy window displaying GameObjects in the scene.
Inspector window with GUI for all components on a GameObject.
Viewport window displaying the game with editor camera controls and render debug modes for visualizing world normals, albedo colors, emission, etc.
・ Some other windows such as a profiler for displaying fps and other info, a console with all our log messages, an environment window featuring all graphics settings, and a news window with the lastest updates to the editor.
・ Maintained a separate particle editor and model viewer tool I had made in another course, and later moved functionality from both of these tools into our main editor.

Graphics
Post-processing with settings such as exposure, contrast, vibrance, etc.
Depth fog for deferred and forward rendering.
・ Improved our PBR calculations and fixed some edge cases.
・ Alpha-based shadow mapping.
・ Added blend state, depth state, and cull mode to materials.

Gameplay
・ Set up a templated character state machine for our enemies and player.
・ Read stats from JSON files and store them in blackboards for each character.
・ Made a character animation controller for simplifying access and playing of animation assets.
・ Implemented the first half of all enemy behavior using the state machine, stats system, and animation controller (before handing over the responsibility to another programmer)
RockSolid Editor
Our editor was, although very useful, more like a debugging tool rather than an editor. It gave us an overview of all GameObjects and their Components, along with other useful features. We could create, destroy, deactivate, and move GameObjects, add and adjust some of their Components. It also allowed us to try out different graphics settings. None of this could be saved and loaded by the editor, except for a few things like particle files.
Particle Editor
As part of another course, I had just finished developing a tool for creating particles. After reworking my particle system, making it work with our new graphics engine, the particle editor was very useful during our development of the game. Later on, I had the particle editor and our model viewer integrated into our main editor since it was tedious to maintain three different tools running on the same engine.
Improved graphics
Here are before and after images of some of the graphical improvements I have worked on during this project.
Credits
Programming:
・ Erik Edfors
・ Filip Tripkovic
・ Herman Sjöholm
・ Liam Sjöholm
・ Måns Berggren
・ William Sigurdsson
Graphics:
・ Albin Mjörnstedt
・ Emil Hagström
・ Jasper Paavolainen
・ Stephanie Madsen

Animation:
・ Jesper Walden
・ Lee Johansson
・ Oskar Lind
Level Design:
・ Kristian Sistig
・ Martin Trosell
Technical Art:
・ Elina Kans
・ Erik Hausner
・ Jacob Falck
Back to Top