School Project
2024
School Project
2024
Role: System & Engine Programmer
Description
Spite the decrepit depth
"Play as a capable but underestimated spellcasting scholar who will stop at nothing in her pursuit for knowledge; no matter if the undead await in the Decrepit Depths..."
First project in Titan Engine
The sections below describes some highlighted features developed by me.
To manage memory of Components and GameObject Titan Engine uses GamePointer<T> that refers to a SlotMap. This allows memory to move and still be referenced correctly.
For assets we used a AssetPointer<T> for a manager. These are similar to SmartPointers as if the reference counter is equal to 0 the asset is released.
By inheriting from component and adding COMPONENT_BASICS the class now could be implemented into the component system for development. This helped other developers create and manage their own features.
GameObject contains components that are attached to it and any component has a reference to it's GameObject.
The Component system is inspired by Unity as developers can override functions similar to Unity's component system.
Transform has a special relationship with GameObject as they communicate through the parent/child hierarchy.
As an example, if a GameObject is disabled it communicates with it's Transform to disable it and update it's children, which causes them to deactivate their GameObjects and components.
This allows us to disable groups of components to save performances to hide them and when we need them we simply activated them again.