Project: Stella's Quest
Project Description
Engine: TGE (school engine) / Unity (editor)
Duration: 8 weeks
Genre: Adventure
Contributions
- Scripted event system
- Unity tools for Level designers
- Export/Import pipeline of scripted events
- Camera controller
- Collectables
Scripted Event System
I started implementing a system that could handle different scripted events. For example, when the player walks on a selected tile:
-> The player is forced to walk to a specific tile
-> Enemies spawn and doors close
-> Once all the enemies have been killed
-> The doors opens
I realized that this logic could be abstracted to having different "Actions" that were activated on command. The core of the system is having a base class called "Action" and have different behaviors derive from this class.
At the moment an action is executed it will register itself to a container that handles the execution of the current active actions. The action will then update until it thinks that it doesn't need to update anymore, meaning the action itself decides when it will stop updating.
The system becomes more useful when implementing different "Composite Actions", such as "ActionSequence" and "ActionDependency", the first mentioned simply updating the actions in order and the latter updating all actions at once until all have finished executing.
The above problem could then be solved using an "ActionSequence" that contains the behaviors in order.
Unity Tools
The scripted events in the game was created by level designers as it created a more modular pipeline. The level designers could select different events to happen when the player walked on specified tiles.
The data was exported to the TGE project to create the corresponding actions.
Camera Controller
The game's levels typically employ a top-down camera following the player. However, the dungeon level features a static camera that transitions between rooms as the player enters each one.
Transitions between the camera modes was also implemented, however not utilized in this game.