HR Simulator
A satirical 2.5D document-thriller in the vein of Papers, Please. You play an HR drone at LakedIn Corp, a mega-corporation that needs to reject every applicant to keep its "actively hiring" tax break, while secretly training the AI that's about to replace you. Inspect CVs on your desk, circle the flaws with a pen, scan them, and pick a plausible rejection reason from an absurd corporate menu. My current solo project, built in Unity and C# on a fully data-driven, designer-authored architecture.
The problem
A document-inspection game lives or dies on content volume. The genre needs dozens of error types, document layouts, and candidate variations, and if each one means writing code, the project stalls. The real design challenge wasn't the mechanics, it was an architecture where a designer can author endless content without a programmer, while the systems underneath stay generic and unaware of game context.
My role
Solo developer. Designing, architecting, and building everything in Unity and C#: the game concept and writing, a generic interactable framework, the document and pen systems, a ScriptableObject-driven error and candidate-generation pipeline, the computer-view UI, and a fixed-anchor scene camera system. Fully documented as a set of living design docs.
Outcome
In active development. The architecture is designed and documented end to end across six interlocking systems, with a generic Interactable framework that knows nothing about documents or pens, a composite document tree, a data-driven error catalogue, and a testable Unity-free session model for the terminal UI. Currently building toward a playable, untextured MVP: generate pages, circle issues, categorise, submit.
Everything you can touch in the game is built on one generic, context-free framework. A document doesn't know it's a document; it receives signals and reacts. A universal mode layer, controller-owned state machines, and pluggable input and output modules power every clickable, draggable, and interactive object from a single foundation.
Each candidate's paperwork is a real, physical stack on the desk that also happens to be a structured data tree. Two independent layers, the physical interaction and the data, share the same object and never know about each other. Pick it up, layer it, and circle its flaws with the pen.
Every flaw, from a Comic Sans CV to a hidden employment gap, is a data-authored ScriptableObject. A central catalogue rolls weighted, conflict-aware errors onto candidates, and the same data drives the rejection menu the player navigates. Adding a new way to fail an applicant means creating an asset, not writing code.
Where a candidate comes to life. A two-pass generator builds each applicant top-down from a profile, then walks back up the tree aggregating the flaws that only make sense in context, like an employment gap between two jobs. The result is a fully-formed, doomed-or-not candidate before a single document renders.
The 2.5D look comes from a camera that never free-looks. It snaps between fixed anchors, the desk, the tabletop, the monitor, with smooth tweens, locking while settled. A macro state machine orchestrates the views; each view runs its own internal logic underneath.
The skeuomorphic, pixel-art screen where verdicts are made. A two-pane UI lists every circled and auto-flagged issue, lets the player drill a category tree to label each one, and validates the submission against what was actually wrong. The model layer is pure C#, fully testable without Unity.