Song of Steel

Take the role of ‘The Manager’ and explore the world of [COUNTRY NAME], making unlikely friends and even more unlikely enemies. Bring back the glory of the symphony, be it freedom or under the foot of The Ministry - Sing the Song of Steel.

Timeframe: Ongoing since August 2024
Team Size: 8 people
Roles: Project Lead - Lead Programmer
Scope: Branching narrative game spanning 15 - 30 in-game days, featuring resource management and a fluid conducting system.

Event System Design.

To support our branching narrative, I employed an Event System centered around “dependencies”, mimicking a Job System in Game Engines. Dependencies can be an affiliation levels to people or political parties, a certain day, a certain song being performed, or a prior event. An event needs a dependency of ‘0’ to be considered possible.

I made it a point to support our narrative designers by making it easier to input Dialogue.
To achieve this, I made Dialogue a Struct to allow the use Data Tables - meaning we can input Dialogue into one place and easily search through using Unique Name IDs.

In total, there are 4 Sets driving the system - Possible Set, Locked Set, Dead Set and Archive Set.
The possible set stores all events with no dependencies, meaning it’s ready to go.
The locked set stores all events with existing dependencies, meaning it’s waiting.
The dead set are killed off events - typically choice driven dialogue or Quest Line heads
The archive set is our Data Table of all possible dialogue in the game.

System Logic.

With the above premises - I was able to create a system that focus around Locking, Unlocked, and Killing Events.

Conducting the Symphony.

At first, the system just sucked. I had lacked knowledge of orchestras and made a bad clone of Osu - wherein it only checked accuracy by clicking a button at spot.
After receiving feedback, it was decided to rework the system to be an over-time track and to have choices effect the system. The tracking of the system was to be tighter or looser based on the difference between the affiliation of the Ministry and the Revolutionary party, respectively. In short, as you were more Nationalistic, they demanded perfection; as you were more towards Freedom, the performance was more loose and artistic.

Leading the Project.

Although most my time was spent programming, we need a team leader. It was decided I would lead due to prior experience.
Immediately there were issues - I was spread too thin with classes. So we split the project hierarchy to have Leads which created tasks and tracked progress, while reporting to me their overall status.

I learned a lot about trusting others to have more control.