Case study / 02
Old Town Hotel
Unity 6 / C# / 137 EditMode Tests
A systems-led hotel management simulation grounded in real front-desk, housekeeping, lounge and room-cycle workflows.
← All projects
Challenge
Turn interdependent hotel operations into readable game systems that remain configurable and testable.
Contribution
Designed and implemented the project solo: guest queues, room matching, room state machines, inspections, lounge inventory, achievements and end-of-day summaries.
Delivery process
From complexity to evidence.
The process changes with the domain, but ownership remains visible from problem definition through verification.
Model the day
Translated arrival, room allocation, housekeeping, lounge service and end-of-day operations into a playable loop.
Separate the systems
Kept guest, room, inventory and UI responsibilities modular so rules could evolve without rewriting the whole project.
Make content configurable
Used ScriptableObjects and data-led configuration to keep gameplay tuning outside core logic.
Verify the rules
Built an EditMode suite around transitions and edge cases, reaching 137 tests.


Evidence
What can be verified.
- 137 Unity EditMode tests
- ScriptableObject-driven configuration
- Modular UI and multi-scene architecture
- GDD and architecture decision records
- Guest preference and room-matching logic
- Room lifecycle, inspections and rework loops
Key decisions
01Room states are represented as an explicit lifecycle rather than scattered booleans.
02Guest preferences affect matching, creating trade-offs instead of a purely cosmetic queue.
03Housekeeping inspection supports failure and rework, reflecting real operational feedback loops.
04Architecture decisions and a GDD are maintained alongside code to make reasoning inspectable.
Outcome
A coherent vertical slice demonstrates C# systems work, test discipline, game design reasoning and the ability to turn domain knowledge into interactive rules.
This is an independent portfolio project. It is not presented as a shipped commercial Unity title.
- Unity 6
- C#
- EditMode Tests
- ScriptableObject
- Git
Next case study
03Retro Quest→