Project Overview
Chronos is a turn-based 3D puzzle game where time rewind and clone replay are the main mechanics. When the player rewinds to a previous turn, past actions are replayed by a clone, and those actions affect puzzle objects together with the current player's actions.
I planned and implemented the global turn loop that processes player input by turns, and the state log system needed for rewind, clone replay, and object state restoration. I organized gameplay systems so the player, clone, boxes, buttons, levers, and moving obstacles could all run inside the same turn flow.
After the final presentation, I received a 22% contribution score in anonymous peer evaluation within a five-member team, and the team achieved a top 20% grade in the course.
What I Did
- Implemented a turn-based progression structure where one player input leads to player movement, clone replay, and object reactions.
- Used TurnManager to control the flow so the next turn starts only after each object's movement and state changes are finished.
- Saved player input and object position/state logs by turn, so they could be restored during rewind and clone replay.
- Implemented puzzle object interactions and collision handling for boxes, buttons, levers, lasers, and moving obstacles.
- Separated levels into scenes and connected them with additive loading, so stage transitions and camera movement could continue naturally.
Design Challenge
The biggest challenge was making turn-based gameplay work together with team-based implementation. A single player input could trigger movement, clone replay, box movement, lever state changes, falling checks, and rewind log updates. If the processing order or state update order was slightly off, bugs appeared quickly.
At first, we divided work by player movement, objects, maps, and other parts. But during integration, each feature had slightly different input/output assumptions and state-change rules. There were duplicated functions with similar roles, and some features passed states that other features did not expect, which made the whole behavior unstable.
To fix this, I first organized each feature's role, input/output rules, and turn order. Then I restructured the flow around TurnManager so the player, clone, and objects were handled in the same turn system. I also used player input logs and position/state logs to make rewind and clone replay behave consistently.
Gameplay Preview


Scenes where the turn-based puzzle environment and clone-based rewind mechanic are actually running.
Game Manual (Korean)
