Igor Barboza.
← Back to work
ON HOLD

Tale Of Darkness

A retro dark-fantasy action-platformer in Unity with procedurally built levels, FSM-driven bosses, and a curse-based combat system.

Role

Gameplay & Systems Programmer

Engine

Unity URP / C#

Team

2 programmers (solo the final 4 months)

Year

2024 – 2025

Overview

Tale Of Darkness is a retro dark-fantasy action-platformer built in Unity (URP), with a pixel-art aesthetic and a heavy, atmospheric mood. Players fight through procedurally assembled, room-based levels against a roster of state-machine-driven enemies and bosses, shaping each run with stacking curses, trinkets, and loot.

The game was built on Photon Fusion with its gameplay layer architected for online co-op. It was put on hold when the client ended the contract, before the two-player mode was finished.

My Contribution

I was one of two programmers — and the solo programmer for the final four months — working across the game's gameplay, systems, and visual pipeline.

I built the enemy and boss AI as finite state machines (from patrollers and flyers to four unique bosses) and the player's movement and combat state machine. I also implemented the systems layer: a modular, event-driven quest system, the loot and curse/trinket systems, and a JSON save system with multiple profiles and settings — most of it running over Fusion's networked simulation.

On the visual side, I built a dynamic 2D scene-lighting pipeline that blends volumetric lights, real-time shadows, and shadow colliders with custom shaders and screen effects, creating the game's retro dark-fantasy ambiency.

Technical Challenge

The project pushed on two very different technical fronts: networked AI and real-time 2D lighting.

Making dozens of distinct enemy behaviors — plus four bosses — read cleanly while staying consistent under Photon Fusion's networked, prediction-based simulation was the harder gameplay problem. I leaned on a shared finite-state-machine foundation so every enemy reused the same core states and transitions, then layered per-type and per-boss behavior on top, which kept the AI predictable over the network and easy to extend as new enemy types were added.

The lighting was a different kind of challenge: achieving a moody, volumetric, shadow-rich look in a 2D pixel-art game without the tools a 3D renderer provides. I combined volumetric lights, real-time shadows driven by shadow colliders, and custom shaders and screen effects into a single dynamic scene pipeline that stayed performant while selling the dark-fantasy atmosphere.

Result

Together, these systems gave the game a clear identity: tight, extensible combat against a varied enemy roster, and a striking retro dark-fantasy atmosphere driven by real-time 2D lighting.

The FSM foundation made the AI easy to grow, the systems layer let designers author quests, curses, and loot without touching core code, and the lighting pipeline established the visual mood that defined the game — all on a networked architecture ready for co-op.