
The Long Night (2025)
About
For this project, I was fortunate enough to be a core part of the team from the very beginning. I began as one of the Gameplay and Systems programmers and went on to be given the role of Techincal Designer for the project.
The project was an evolution of previous games the studio had made, combining detailed worldbuilding and handcrafted branching narrative experiences with classic RPG mechanics and turn-based combat sequences but pared down to a smaller scope and speedier playtime but with lots of replayability within a run-based structure.
In the game, you play as Petar, a Torchbearer in the Austro-Hungairan Empire in the 8th century. You have been hired as a guide for an Invenstigator sent on a mission to discover the origin of a mysterious and suffocating Darkness which seems to curse people and beasts alike and make nightmares a reality. Your light is the only thing holding back the ever encroaching Darkness but for how long?
Project Info
Role:
Technical Designer / Game Programmer
Time Frame:
6 Months
Team Size:
8-10
Tools Used:
Unity, Google Sheets, Miro,
Trailer
Introduction
I had 2 main contributions to this project:
Designing, Balancing and Overseeing the game's Combat System including all the Combatant Abilities, Enemy AI, Buffs and Debuffs etc.
Developing a flexible 'Bark' System to enable character dialogue and narrative to be delivered outside of discrete dialogue interactions
I was able to have my hands deep into both these features, ostensibly being the technical 'owner' of both of them and I learned a great deal from having this responsibility and getting to work across the disciplines of Tech and Design.
Key Features
Combat System
A month or so after the project began, I was offered the Technical Designer position in the studio. One of my main responsibilities with this new role was to drive a lot of the design of the Turn Based Combat System that both this project and 'Njords Embrace' would center around.
I began by working with the Lead Designer and the Tech team to nail down and negotiate the requirements and limitations of the planned system from a player experience point of view. With my experience in programming, I found the role to be a great fit for me as I could simultaneously advocate for the player while being conscious of the technical impact of certain decisions. For the remainder of the project I would work closely with the Tech team to define the requirements of the Combat design and write detailed tickets in Clickup to facilitate feature development.

To validate the initial design of the Combat, I took the core elements:- Grid Based Movement, Abilities, Buffs and Debuffs, Action Points (AP) Movement Points (MP), and Health Points (HP) - and with the Director I created a playable Analog Prototype (shown left).
Using Miro, I made small cards to represent Combatant Abilities (showing their Cost, Effect, and Area of Effect) and a sketch character sheet. Though quite primitive, these props gave the team the ability to try out the combat gameplay and verify the fun. It also allowed us to really quickly iterate on some ideas and engage in some minor balancing before spending valuable production time implementing features and concepts in-engine.


Once the core design was settled upon, it was time to develop our pipeline to allow us Designer's to quickly iterate on the various features and test them in-engine. Along with the lead designer, I helped develop a Google Sheets based tool to create and configure the data of Combat elements like Abilities, Buffs, Triggers etc.


This data could then be parsed via a custom tool created in Unity (by the Tech team) into Scriptable Objects which were then used as code Entities in the Turn-Based Combat system allowing them to function in the gameplay as intended.
Another incredibly fun task was to design the Enemy AI. Knowing that the Tech team intended to use Unity Behavior Graphs, I attempted to document my Design intentions for the Enemy Behavior in a way that would be most legible and most convenient to implement. To this end, I created some high-level Behavior flow charts in Miro, detailing the Enemy Abilities and under what conditions they would use them, as well as their movement strategies.

With the features and content in-engine, the next tasks for me were all about balancing the gameplay which I found very satisfying. My approach consisted of playtesting the combat repeatedly and making copious notes of my experience (and the experience of any others I played with) to then go back and tweak the numbers to correct the experience.
Though the current version may be lacking some visual polish, the core gameplay for the Combat is now implemented and it is thrilling to see the synergies and play strategies we designed come to our life in-game.

Bark System

At the start of this project, the Game Director approached me with the request of a feature that would allow the designers and writers to deliver narrative and character information without slowing the gameplay pace by forcing the player into a 'Dialog' interaction every time which had been the approach in previous games at the studio.
Influenced by other games in our reference pool such as the Divinity games and Baldur's Gate 3, we talked about playable and non-playable Character 'Barks' and how effective these were. In addition to text-based 'Barks', we decided to leverage the system to display information about character's current health, and show changes to their resources and inventory.

I worked closely with the Director to establish the feature requirements and with the Technical Lead to discuss potential approaches. After which I set about designing the overall system - the result of which can be seen in the GIF at the start of this section. This sequence shows everything that the system has to offer - Text barks, health bar popups and resource popups, all smoothly fading and scrolling in and out.
The system was achieved by creating a central 'Bark' System component which creates a UI component for any Game Object in the scene which has a specific 'Bark Agent' Scriptable Object present (the ID of which is used to 'deliver' Barks and popups to the correct Game Object Transform from the in-house Node based tool that the Writers and Designers use).
To make the use of this system, and our production more efficient, I also created some custom Editor/Inspector tooling so that writers could write text directly into 'Bark Action' Nodes.
Once the system's functionality was implemented, we could all see the potential of the feature, but the visual polish was lacking. Especially when mixtures of Barks such as Resource Popups and Text Barks were fired simultaneously or overlapping. To solve this I worked with other members of the Tech team to implement more sophisticated Animation state machines which could transition smoothly from any state to another to avoid popups and barks awkwardly jumping or popping.

Both this project and 'Njords Embrace' were great learning experiences with regards to designing and scoping entire gameplay systems. I learned to be an integral part of the essential communication between Design and Tech, delivering detailed requirements about the various features that we needed the Tech team to implement. This iterative back and forth is a process that can easily get very messy and potentially waste a lot of production hours if different departments are not properly aligned so I found this to be one of the most important aspects of my role.
Another big area of growth for me on these projects was in my ability to design Combat Systems across 2 projects which needed to share a lot of core features for practical production reasons, and yet give them their own unique identity so as not to feel like reskins of each other. I found myself looking to the core of each project's story and intended player experience to inform how to refine the Combat System in the game to enhance this vision.
Of course on top of these more abstract insights, I also learned a great deal about game design in general as well as Unity specific tools such as the Behavior Graph tool for Enemy AI, and Scriptable Objects etc.
What I Learned



