Designing and building the interface of a narrative puzzle game.
An Omen In The Mirror is a first-person narrative puzzle game made in Unreal Engine at DigiPen. I owned its interface end to end — designing the dialogue, inspection, menu and HUD systems, then implementing them in-engine with UMG.
A story told through what you read and inspect
The game is a first-person, narrative-driven puzzle built in Unreal Engine, where progress comes from reading dialogue, inspecting objects and piecing the story together. That makes the interface load-bearing: the UI is how the player understands the world, not just an overlay on top of it.
I designed each surface — menus, dialogue, interaction and HUD — to stay quiet and in-fiction, then built them in the engine so the look survived contact with the real game.

Every surface the player touches
Dialogue & choice
The core narrative surface: a dialogue panel with selectable responses and clear hover / clicked states, paced to keep reading comfortable and the choice obvious.

Choosing a response
Selection and hover states give immediate feedback so the player always knows what they are about to pick, without breaking the scene.

Inspection & crosshair
A context-aware crosshair signals when something is interactable, and a dedicated inspection view lets the player examine objects up close to solve puzzles.

A quiet heads-up display
The in-game HUD surfaces only what the player needs in the moment, staying out of the way of a first-person, atmosphere-led game.

Closing the story
The ending screen lands the narrative beat and returns the player out, bookending the menu they came in through.

From concept mockups to in-engine screens
Concept first
Each surface started as a high-fidelity concept — main menu, dialogue, interaction — establishing type, colour and layout before any engine work.
Built in UMG
I rebuilt the approved concepts as UMG widgets in Unreal, wiring them to game state so they behaved correctly in a running build, not just in a mockup.
Iterated in place
Seeing the UI inside the actual game surfaced spacing, legibility and pacing issues that only show up in motion, and those fed back into the design.
What it’s built with
- Engine
- Unreal EngineUMG
- Design
- UI conceptsCustom type & layout
A complete game interface — designed, then built in-engine and proven in the running game.