GAME DEVELOPMENT · PUZZLE DESIGN · UNITY · C#

Odysseia

A myth-inspired 3D adventure game developed by Gaucho Game Lab. As Puzzle Lead, I designed and implemented systemic puzzle mechanics and mechanic-driven levels in Unity.

Odysseia gameplay showing the player navigating a tidal environment

01

Overview

My work on Odysseia focused on designing reusable puzzle systems that could grow in complexity while remaining readable to the player.

I developed the mechanics, implemented them in Unity, designed levels around their interactions, and collaborated with the art team to improve visual communication and puzzle readability.

MY CONTRIBUTIONS

  • Designed and implemented thedynamic tidal system andtime acceleration mechanic.
  • Built a modularlight puzzle system supporting redirection, dispersion, color fusion, and filtering.
  • Designed mechanic-driven levels and conceptualized theMinotaur's Labyrinth.
  • Collaborated with artists to improve mechanic readability, environmental communication, and level polish.

02

Dynamic Tidal System

The tidal system turns the environment itself into part of the puzzle.

Water levels rise and fall with the game's day–night cycle, dynamically changing which routes are available to the player.

Odysseia environment during a higher tidal state
Higher water levels cover obstacles and change which routes are traversable.
Odysseia environment during a lower tidal state
Lower tides expose terrain, passages, and interactable areas.

During ebb tide, previously submerged spaces, objects, or routes can become accessible. During flood tide, rocks and reefs can become submerged, opening paths that would otherwise be blocked.

The design shifts the player's reasoning from simply asking“Where should I go?”to also asking“When should I act?”

03

Giving the Player Control Over Time

Time acceleration mechanic changing the day-night cycle
The player accelerates the day–night cycle to manipulate tidal states directly.

A time-driven environment creates an obvious design problem: waiting is not an interesting puzzle interaction.

To solve this, I implemented aTime Acceleration System that allows players to deliberately advance the day–night cycle.

This gives players agency over environmental state. Tides become something they can actively plan around and manipulate rather than something they simply wait for.

04

Progressive Light Puzzle System

I designed the light system around progressive complexity: introduce one understandable rule, then repeatedly expand what that rule can do.

At its foundation, light travels from an emitter to a receiver. From this simple interaction, the mechanic expands into a larger system.

01

Emission

A light source activates a receiver.

02

Redirection

Relay nodes turn activation into path-building.

03

Dispersion

White light splits into RGB channels.

04

Fusion

Channels recombine into new color states.

05

Filtering

Color constraints create selective routing.

Light beam redirected between puzzle nodes
Relay nodes expand the basic emitter–receiver interaction into a path-building puzzle.

From a Single Beam to a System

Relay nodes allow beams to be redirected across the environment. This transforms a simple activation mechanic into a routing problem, where players construct a path between multiple objects.

Prisms then split white light into red, green, and blue channels, introducing branching paths and dependencies between simultaneous signals.

At higher complexity levels, beams can be filtered or recombined. New puzzle challenges therefore emerge from combinations of rules the player has already learned.

Light puzzle using a colored filtering surface
Colored surfaces selectively filter channels, introducing constraint-based routing.
Complex multi-room light routing puzzle
Multiple beams, receivers, and filters allow puzzle logic to extend across larger spaces.

05

Minotaur's Labyrinth

The Minotaur's Labyrinth explores how a single puzzle system can shape the structure of an entire level rather than just an individual room.

Maze design creates a tension between exploration and guidance. A short solution path may cause players to skip much of the space, while a long forced route can make the maze feel overly linear.

Early concept sketch of the Minotaur's Labyrinth showing red green and blue light routes
Early concept sketch for the Minotaur's Labyrinth. RGB light routes divide the maze into interconnected regions and structure player traversal.

I used light dispersion as the structural backbone of the labyrinth.

White light is divided into red, green, and blue routes, naturally separating the maze into three major regions. Each region contains a focused set of puzzles with enough depth to reward exploration without forcing the player into one excessively long path.

Cross-region interactions reconnect the spaces. A beam originating in one region can become necessary for solving a puzzle in another, encouraging players to understand the labyrinth as one connected system rather than several isolated rooms.

Persistent beams also become a form of environmental communication. Solved routes remain visible in the space, allowing the level itself to record progress and suggest unexplored possibilities.

06

Technical Implementation

The light puzzle system was implemented in Unity using C# with a modular, event-driven architecture.

One of my main implementation goals was to separatelight propagation frompuzzle reactions.

Architecture diagram of the Odysseia light puzzle system
System architecture showing how emitters, beams, receivers, and independent gameplay events communicate.

ARCHITECTURE

Event-Driven Modularity

Light receivers emit activation and deactivation events instead of directly controlling gameplay objects.

Independent components can respond by opening doors, activating secondary beams, rotating objects, or triggering other gameplay behavior.

This keeps the core light system independent from the specific objects that react to it.

EXTENSIBILITY

Specialized Receivers

A shared LightReceiver implementation handles common behavior such as light dependencies, color aggregation, activation state, and downstream propagation.

Specialized receiver types extend that behavior only where a mechanic requires different interpretation of incoming light.

LightReceiver

Shared receiver logic for incoming light, activation, and propagation.

FilterLightReceiver

Selectively passes color channels to support filtering-based puzzle constraints.

SpecificLightReceiver

Activates only when incoming light matches a required target color.

07

Takeaways

The project taught me to design game systems across multiple scales — from reusable C# components to puzzle rooms and whole-level structure.

The light system demonstrated how a mechanic can gain depth through combinations and extensions, while the tidal system explored how changing environmental state can create another dimension of reasoning.

Working as part of a larger team also required clear communication across disciplines so that gameplay logic, level design, and visual presentation supported the same player experience.