An Omen In The Mirror

UI/UX design & implementation for a narrative puzzle game

Scroll to explore
Game · UI/UX design & implementation

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.

Role
UI/UX design & in-game implementation
Engine
Unreal Engine · UMG
Context
DigiPen team project
Overview

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.

Main menu
UI systems

Every surface the player touches

Dialogue

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.

In-game dialogue
Selection

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.

Response selection
Interaction

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.

Inspection / interaction
HUD

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.

In-game HUD
Ending

Closing the story

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

Ending screen
Process

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.

Stack

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.