Exercise 6 — Story in the World
GAME 1303-002 · Unreal Engine 5.8 · Week 9 — Tuesday, October 20
In class, 10:30 – 11:45 · 2 points · Submit by end of class
The skill
Games are bad at telling stories and extraordinary at implying them.
A cutscene explaining that the station was evacuated in a hurry is fine. A half-eaten meal, a child's drawing pinned to a locker, and one door welded shut from the inside is better — because the player assembled it themselves, and people believe what they figure out far more than what they are told.
That's environmental storytelling: putting information in objects and space rather than in sentences.
Today you build one room that tells a story, with a hard limit on how many words you may use.
By the end of the block you will have: a room a stranger can walk into and describe what happened there — using fewer than 60 words of text.
What you need
- Your Ex 5 project, or a fresh scene
- Placeholder shapes are fine. You are arranging meaning, not making art.
Part 1 — Write the premise, then hide it (10 min)
1. One sentence
Write what happened in this room. One sentence. Past tense.
Someone lived here alone for a long time and left in a hurry.
Two people worked here, and one of them stopped coming.
This was a safe place until the thing outside got in.
2. Break it into three facts
List the three facts a player would need to reconstruct that sentence.
For "two people worked here, and one stopped coming":
- Two people worked here.
- Time passed.
- Only one of them is still using the space.
3. Assign each fact an object — not a sentence
This is the whole exercise.
| Fact | ❌ Told | ✅ Shown |
|---|---|---|
| Two people worked here | "We shared this workshop." | Two chairs, two mugs, two sets of tools |
| Time passed | "It's been months." | Dust on one chair. A calendar stopped on one date |
| One stopped coming | "I don't know what happened to her." | One mug still where it was left; the other washed and stacked |
Write your version of this table before you build anything. It is the graded artifact.
✅ Checkpoint 1 — a one-sentence premise, three facts, and an object assigned to each.
Part 2 — Build the room (25 min)
4. Make the space
A small enclosed area — four walls and a floor is plenty. Use Modeling Mode boxes, or your Ex 5 blockout.
Small. One room. The temptation is to build a facility; resist it. Density of meaning beats square footage every time.
5. Place your three objects
Greybox shapes are fine — a labelled cube reads as "a thing that matters" perfectly well at this stage.
Placement carries meaning, so use it:
| Technique | What it does |
|---|---|
| Composition | Put the important object where the player is already looking when they enter |
| Repetition | Two of something reads as a pair; three reads as a system |
| Disturbance | One object out of alignment in an ordered room draws the eye instantly |
| Blocking | Something in the way makes the player look at it |
6. Add the props that aren't facts
Three or four objects that carry no information. A room containing only meaningful objects reads as a puzzle, not a place — the noise is what makes the signal feel discovered rather than presented.
✅ Checkpoint 2 — a room with three meaningful objects and some deliberate noise.
Part 3 — Add the words, sparingly (20 min)
7. Set up the dialogue
Drop a BP_DialogueTrigger into the room, or add it to an actor that implements BPI_Interactable.
| Variable | Set to |
|---|---|
Beats | Your text lines, one array element each |
AdvanceMode | OnInput for examine-style beats, Timed for ambient ones |
DisplayDuration | 3 seconds is about right for one short line |
PlayOnce | ✔ |
PlayOnEnter | ✔ for ambient, ✘ if an interaction starts it |
Use BPI_Interactable + BPC_Interactor for anything the player chooses to examine. Text the player asked for is welcome; text that arrives uninvited is an interruption.
For longer sets of lines, a Data Table driven by a simple struct (Speaker, Line) scales better than an array — worth doing now if your project is narrative-heavy.
8. Write no more than 60 words, total
Across the entire room. Count them.
This limit is the exercise. With unlimited words you will explain the room, and explaining is what you are learning not to do. With 60 you have to let the objects work.
Good uses of your word budget:
- A label that identifies without explaining: "Bay 3 — do not open"
- A fragment: "...told them it wasn't ready."
- A single line of interior voice: "Her handwriting."
Bad uses:
- Anything that names an emotion the player should be having
- Anything restating what an object already shows
- Backstory that happened somewhere else
9. Optional — one scripted moment
If you have time: a short Level Sequence played from a trigger. A light flickering, a door closing, a sound in another room. One is atmospheric; three is a haunted house.
Create it with Cinematics → Add Level Sequence, then fire it with a Play node on the Sequence Player from your trigger.
✅ Checkpoint 3 — under 60 words total, delivered through triggers or interactables.
Part 4 — The stranger test (10 min)
10. Have someone else play it
Get the person next to you. Say nothing. Let them walk through, then ask one question:
"What happened in this room?"
Do not prompt. Do not explain. Write down exactly what they say.
11. Compare against your premise
Three possible outcomes, all useful:
| They said | It means |
|---|---|
| Roughly your sentence | It works. Note which object they mentioned first — that one is carrying the room. |
| A different but coherent story | Often better than yours. Consider keeping theirs. |
| "I don't know" | Your facts are too subtle, or drowned in noise. Make one object bigger, closer, or lit. |
12. Write your notes
Docs/Ex06_notes.txt:
Premise: Two people worked here, and one of them stopped coming.
Fact 1: two people worked here -> two chairs, two mugs, two toolsets
Fact 2: time passed -> dust sheet on one chair, calendar stopped
Fact 3: one stopped coming -> one mug still out, the other stacked
Word count: 41
Tester said: "Someone died and their friend can't clear their desk."
What that told me: they got the relationship and the absence but read
it as death rather than just leaving, because I put a folded jacket on
the chair and that reads as a memorial. I kept it — their version is
sadder and more specific than mine, and the room supports it.
Which object did the most: the two mugs. Every tester mentioned them
first. The calendar did nothing — nobody looked up.
✅ Checkpoint 4 — one stranger tested, their exact words recorded, and what you learned.
Part 5 — Build and submit (5 min)
13. Package into MyGameName/PC_Builds/Ex06/, then submit
Zip as lastname_ex06.zip: the build, your fact/object table, and Docs/Ex06_notes.txt.
Canvas → Assignments → Exercise 6.
Rubric — 2 points
| Criterion | Pt | Met when |
|---|---|---|
| Implementation | 1 | Packaged build runs · a walkable room with three meaningful objects · text delivered via BP_DialogueTrigger or BPI_Interactable · under 60 words total · no blueprint or output-log errors |
| Design decision | 1 | Fact/object table submitted · one stranger tested with their exact words recorded · notes state which object carried the room and what you changed or kept as a result |
Troubleshooting
The dialogue fires the moment I press Play.
The trigger overlaps the player's start position. Move it.
Text appears and vanishes instantly.
DisplayDuration is very low, or AdvanceMode is OnInput and something is calling Advance every frame.
The dialogue only plays once and I need to retest.
PlayOnce ✔ is doing its job. Untick it while iterating, then tick it again before you package.
Only the first line ever shows.
A ForEachLoop cannot contain a Delay — the loop completes instantly and the latent nodes are discarded. BP_DialogueTrigger uses a recursive custom event for exactly this reason; if you rebuilt it with a loop, that is the bug.
BPI_Interactable doesn't prompt.
The player needs BPC_Interactor, the actor must actually implement the interface (Class Settings → Interfaces), and it must be inside InteractRange.
Nobody notices my most important object.
Almost always placement, not size. Put it where the player is looking when they enter, or put it in their path.
If you finish early
- Remove all your text and test again. Many students find the room reads better silent.
- Add a second interpretation: change one object so the room supports two readings.
- Test with a second stranger and compare. Two people reading it the same way is signal; two different readings means the room is ambiguous — which may be exactly what you want.
Before next week
Ex 7 — Screen Flow builds all five of your game's screens in UMG, and feeds Milestone 4 — Screen Layout the week after. Bring your game — you will be building its real UI, not a sandbox.