KIKI DAVID

Case Study — Level Design · Narrative Design

Opal & the Treeheart of Saltwreath

I designed and built Saltwreath, an Unreal Engine 5 narrative level for my GAM 218 midterm: Opal the fairy returns to a festival town the morning after and finds it empty, its sacred tree dying. The story is never told to the player — they assemble it from a newspaper, a journal, an empty ransom chest, a news board, and a prayer learned in a church, and the level ends with an in-engine cinematic of the dragon.

The part I'm proudest of: the story is playable. Each discovery changes what the player can do next, and the ending only resolves once the player has put the pieces together.

My Role Level Designer · Narrative Designer · Blueprint Scripter
Tools Unreal Engine 5 · Sequencer · Blueprints
Project Academic Level Design Project (GAM 218 Midterm)
Timeline 2022

The challenge. Tell a complete story in-engine — premise, payoff, and a cinematic — using the world and its objects, without a cutscene-driven exposition. The record is a 21-minute playthrough and blueprint review.

01

Project

Opal the fairy visits Saltwreath Town the morning after the Sylvan Day Festival — the Saltwreath treeflower never bloomed in Flosriel during the annual treeflower vigil, so she came to see why. She finds the town empty and the sacred tree in dire straits. Its Treeheart — the thing that protects the town from the dragon — has been stolen. Someone tried to ransom it: a notice offers 666 gold coins to Draco the Hellkite, and a news board calls for all gold and gems. But the townsfolk miscalculated: the dragon wanted both gold and the Treeheart.

The player follows the trail — ask the tree what happened, read the festival newspaper, find the empty ransom chest, read the news board, learn the Treeheart prayer at the church, then return and recite it. The tree wakes, the town is protected again — and the level closes on a Sequencer cinematic of the dragon breathing fire over the town and landing on its gold.

The level was built for a class midterm on top of a medieval marketplace asset pack. I played it through on camera and then walked through the blueprint logic in the same video — every object, every event, and the prayer-gated ending explained in review.

02

Storytelling by Discovery

The narrative runs entirely on discovery events — five beats, each a sound clip plus in-world text that lands as the player approaches: What happened here, tree?, the newspaper, the businessman's journal, the notice on the empty ransom chest, and the news board calling for the ransom. No dialogue tree, no narrated prologue — the player reads the town's story in place.

Because every clue hands off to the next, meaning builds as the facts line up: a festival that was supposed to be a party, a merchant hoping to make money off the crowds, a dragon that can't be paid off, a heart that was stolen anyway. The player is left holding the question — what could anyone do about a dragon? — which is exactly where the church and the prayer wait.

The gate is knowledge, not distance. A boolean flag records when the player has learned the prayer. The same tree trigger then branches: before, it says "press E to ask what happened"; after, "press M to recite the Treeheart prayer." The ending belongs to the player who followed the story.

03

Building the Level

The town's bones — mountains, grass, the path, a wishing well, foliage, and fire — came from a medieval marketplace pack. My work was the dressing that turns a kit into a story: the dying tree I placed, pillars that make the festival grounds read as a colosseum, carts and fences moved to keep the path clear, rocks added so the arena is reachable, and cages placed with narrative intent. I even set the dragon early, with a fire particle effect, so the threat looms over the whole walk.

Under the hood, the blueprints stay readable by design. Every action runs through a custom event, so complex behavior is a tangle of event calls rather than one giant node block. Discovery events pair sound with in-world text. Timelines move objects — a float track drives the gate up and down, with a direction enum deciding open or closed, and the Treeheart spins as it's awakened.

The closing sequence is in-engine: a Sequencer shot of the dragon breathing fire over the town, cutting to it landing on its gold. An honest note from the review — the dragon model shipped with no sounds, so there's no roaring or wing flap; I added the fire VFX to carry the moment.

04

Key Design Decisions

1 · The player solves the story

The narrative is delivered as discovery events in the level — newspaper, journal, empty chest, news board, prayer — not as dialogue or cutscene.

Why. A mystery assembled by the player lands harder than one narrated to them, and every object works as a question that hands off to the next.

Result. The story is playable — you read the town, piece it together, and act on it.

2 · Knowledge gates the ending

A boolean records whether the player has learned the prayer; the tree's interaction changes from "ask what happened" to "recite the prayer."

Why. The payoff should belong to players who followed the story. Gating on knowledge makes the final beat earned, not timed.

Result. The resolve step appears only once the player has the prayer — the branch is visible in the blueprint review.

3 · One timeline, two directions

The gate runs on a single float-track timeline; the play and reverse pins plus a direction enum decide open or closed, and the Treeheart spins the same way.

Why. Two-way motion with one blueprint instead of separate open/close logic keeps the gate readable and reusable.

Result. The lever opens and closes the gate through the same timeline, shown in review.

4 · The cinematic is the engine of the ending

A Sequencer sequence with camera cuts and complex movement — the dragon breathes fire over the town, then lands on its gold.

Why. After a level of reading and assembling, the payoff should be spectacle that resolves — but keeps — the threat.

Result. The walkthrough ends on the dragon's shot, with fire VFX added because the model shipped without sounds.

05

Evidence

The video is the level record: a full playthrough up front, then roughly ten minutes walking through the blueprint logic — custom events, timelines, and the prayer-gated trigger.

Note. This was an academic midterm build made from a purchased medieval asset pack; the level itself was not retained as a playable package, so the surviving record is the walkthrough above. No formal playtesting was run — the review covers the design intent and the blueprint implementation.

06

What I Learned

  • The world can narrate if every clue has a consequence. Each discovery changed what the player could do next — the story wasn't decoration, it was the controls.
  • Knowledge is a pacing mechanic. Gating the ending on the prayer made the reveal belong to players who did the work, instead of firing on a timer.
  • Readable blueprints are part of level design. Custom events kept every interactive object self-contained — and made the whole level explainable in review.
  • Asset kits are scaffolding, not a world. The pack set the town's tone; the story earned its place through the dressing I added on top and the beats I hung on it.
What I Did Level Design · Narrative Design · Blueprint Scripting · Cinematics
Tools Unreal Engine 5 · Sequencer · Blueprints · Medieval Marketplace Kit
Evidence 21:06 playthrough & blueprint review video

Note. The shipped midterm build and its assets are not re-distributable, so the cited video is the canonical record of the level.