Fides is a narrative driven 2D platformer where you play as a stoic, inflexible and rigid-minded girl called Matilda, in a world where being in the light hurts you. Embark on an immersive journey as you traverse the realm in search for your missing friend Faith, and perhaps learn a little something about yourself in the process.

The game was built using a custom engine called the Plushie Engine built by my team.

Roles and Responsibilities

Producer

As the producer, I spearheaded planning for sprints and was responsible for ensuring all team members were keeping up with deadlines through the use of Jira.

Technical Work

Since for this project, we were building a custom engine, I was responsible designing the core engine architecture and building the following systems:

Sparse Set-Based Entity Component System

Plushie Engine’s core architecture was built around this Entity Component System (ECS) that was inspired by a both David Colson and Michele “skypjack” Caini.

Unlike more common ECS designs, Plushie Engine’s ECS introduces the concept of a “System Routine” which takes the place of a typical ECS’s “System”. Essentially, a “System” is a group of related “System Routines” that are functors which run every frame or at fixed time intervals to update components.

.NET 5.0-based C# Scripting System

Instead of using the more commonly used Mono runtime for implementing C# scripting. I chose to experiment and try building one using the brand new .NET 5.0 runtime. This provided a bunch of bonuses like:

  • Greater compatibility with third party .NET libraries
  • Support for C# 9.0
  • Ability to update to newer .NET versions and corresponding C# versions

The C# scripting system also featured the following engine features:

  • DearImGUI-based editor for C# scripts
  • Script Serialization/Deserialization
  • Hot Reloading
  • Breakpoint Debugging with Visual Studio

I have since documented what I have learnt in pioneering this system into the C# Scripting Engine Tutorial in my blog.

Others

  • Scene Graph and Transform System
  • Editor Transformation Gizmos
  • Executable Building from Editor
  • Custom Memory Pool and Stack Allocators