Exercise 5 — Space & Pace

GAME 1303-002 · Unreal Engine 5.8 · Week 7 — Tuesday, October 6
In class, 10:30 – 11:45 · 2 points · Submit by end of class


The skill

A level is not a place. It is a sequence of experiences arranged in space.

The tool that makes this designable is gating: something that stops progress until the player does a thing. A gate turns an open space into an ordered one, which means you can control what the player meets and in what order — and once you control order, you control pacing, teaching, and tension.

Today you build the smallest complete level: a space, a gate, a key, a checkpoint, and a deliberate rhythm of tense and calm.

By the end of the block you will have: a level someone else can finish unaided, with a beat chart that predicted how it would play.

This exercise feeds Milestone 3 — Level Map (Week 8), next week. What you build today is the first draft of what you submit then.


What you need


Part 1 — The beat chart (10 min)

Before you build anything. Draw a horizontal line across a page. This is the player's journey from start to exit.

Above the line, plot tension from 0 to 10. Mark six to eight beats:

 10 |                    ▲              ▲
  8 |                   ╱ ╲            ╱ ╲
  6 |          ▲       ╱   ╲          ╱   ╲
  4 |         ╱ ╲     ╱     ╲        ╱     ╲
  2 |   ▲    ╱   ╲___╱       ╲______╱       ╲
  0 |__╱ ╲__╱                                 ╲___
      A   B   C     D         E        F        G
      │   │   │     │         │        │        │
   teach │  test   REST     gate    key back   exit
        rest              (locked)  (hard)

Label each beat with what it teaches or tests. Then, in one sentence, write what the level is about: "This level teaches that you can dash through hazards, then asks you to do it under time pressure."

The flat line is the mistake. A level that is uniformly tense is exhausting, and one that is uniformly calm is boring. Rest beats are what make the peaks feel like peaks — they are not wasted space, they are what makes the space work.

Photograph it. This chart is part of your submission.

✅ Checkpoint 1 — a beat chart with at least six labelled beats and a one-sentence statement of what the level is about.


Part 2 — Block out the space (20 min)

1. Set up for blockout

Turn on grid snapping in the viewport toolbar and set it to 50. Greyboxing without snapping wastes twenty minutes on alignment nobody will ever see.

Open Modeling Mode (the mode dropdown, top-left) — its Create → Box tool is much faster than dragging BSP or scaling cubes one at a time.

For repeated pieces, build one platform, then select it and Ctrl+W to duplicate in place. Consistent piece sizes are what make a blockout readable.

2D track: use Paper2D sprites on a locked plane, or simply use thin boxes seen from the side — at blockout stage the difference doesn't matter.

2. Build the shape from the chart

Build only the geometry, following your beat chart left to right. No art, no decoration, no textures.

Budget: 60–90 seconds of play. A level you can walk in twenty seconds is a corridor; one that takes five minutes is next week's problem, not today's.

3. Place the exit

Drop a BP_TriggerZone at the end, name it Exit, and bind its OnEnter to BP_GameState → Win. You built this in Ex 3.

✅ Checkpoint 2 — a blocked-out space matching the beat chart, walkable start to exit.


Part 3 — Gate, key, checkpoint (25 min)

4. Build the gate

A solid mesh that blocks the path. Collision Preset BlockAll. Name it Gate.

5. Build the key

Drop a BP_TriggerZone, set RequiredTag = Player, TriggerOnce ✔, and give it a visible mesh.

In the Level Blueprint, bind its OnEnter:

OnEnter (Key)
  → Gate → Set Actor Hidden In Game (true)
  → Gate → Set Actor Enable Collision (false)
  → BP_SoundPlayer → Play ("pickup")

Hiding an actor does not disable its collision. Miss the second node and your
gate becomes an invisible wall — a bug that is genuinely hard to find later.

6. Make the gate readable

The player must be able to tell it is a gate, and that the key opens it, without being told.

Cheapest effective version: colour them the same. A red door and a red key teaches itself in one glance. Colour-coding is the oldest trick in level design because it works before language does.

Better: place the gate where the player sees it before they find the key. A locked door you have already walked up to is a question. A locked door you meet holding the key is a formality.

7. Place the checkpoint

Drop a BP_Checkpoint into the level. On BP_GameState, tick RespawnAtCheckpoint.

Where you put it is the graded decision. Put it just before your hardest beat and failure costs three seconds. Put it at the level start and failure costs ninety. Both are real designs — the first invites experimentation, the second makes the whole run precious.

8. Test the loop

Play. Reach the gate — blocked. Find the key. Return. Gate opens. Die after the checkpoint — respawn there, not at the start.

✅ Checkpoint 3 — gate blocks until the key is collected, and the checkpoint works.


Part 4 — Pace test (10 min)

9. Time it

Play your level start to finish and time it with a stopwatch. Then compare against your beat chart: did the tension land where you predicted?

It usually doesn't, in one of three ways:

What you find What it means The fix
The middle drags Your rest beat is too long Cut travel distance, not content
The end is easier than the middle Difficulty peaked early Move the hard beat later, or add one
Nobody notices the gate It's not visible before the key Move the gate, or the sightline

10. Cut one section

Find the weakest beat — the one that neither teaches nor tests — and delete it.

Nearly every student level has one corridor that exists because it seemed like the level should be longer. Cutting it makes the level better, and being able to identify it is the actual skill this exercise teaches.

11. Write your notes

Docs/Ex05_notes.txt:

What this level is about:
  Teaches that you can dash through hazards, then asks you to do it
  under time pressure.

Beats: 7  (chart attached)
Playtime: 74 seconds

Gate:  red door at beat D, visible from beat B
Key:   red key at beat E, behind the hardest jump
Checkpoint: start of beat E, immediately before the hard section

Why the checkpoint is there:
  Beat E is the only part likely to kill you, and it's 45 seconds in.
  Without a checkpoint there, one mistake costs the whole run and I
  stopped wanting to try the risky route. With it, failure costs about
  four seconds and I kept experimenting.

What I cut and why:
  Beat C, a long empty ledge between the first test and the rest beat.
  It was there to make the level feel bigger. It only made the walk
  longer — the rest beat was already doing that job.

✅ Checkpoint 4 — level timed, one section cut, notes written.


Part 5 — Build and submit (5 min)

12. Package into MyGameName/PC_Builds/Ex05/, then submit

Zip as lastname_ex05.zip: the build, your beat chart photo, and Docs/Ex05_notes.txt.

Canvas → Assignments → Exercise 5.


Rubric — 2 points

Criterion Pt Met when
Implementation 1 Packaged build runs · walkable start to exit · gate blocks until the key is collected · checkpoint respawns correctly · no blueprint or output-log errors
Design decision 1 Beat chart submitted with labelled beats · checkpoint placement justified in terms of what failure costs · one section cut, named, with a reason

Troubleshooting

The player catches on edges between blockout pieces.
Your boxes are overlapping slightly or leaving sub-unit gaps. Turn grid snapping on and rebuild the run — do not nudge pieces by hand.

The gate doesn't open.
Check you called both Set Actor Hidden In Game and Set Actor Enable Collision. Hidden actors still block.

The key can be collected through the gate.
Trigger colliders don't respect solid ones. Move the key, or make the gate wide enough to block the trigger overlap.

Respawn puts me at the world origin.
RespawnAtCheckpoint is on but the Game Instance's CheckpointLocation was never set. Make sure a BP_Checkpoint exists and has been overlapped at least once.

The blockout looks fine but plays cramped.
Unreal units are centimetres and a default character is ~180 tall. Doorways under 200 and ceilings under 250 feel oppressive. Measure against your character, not against the viewport.


If you finish early


Before next week

Week 8 is Milestone 3 — Level Map, 5 points. It is this exercise applied to your own game: an annotated map plus a walkable blockout. Read milestone-3-level-map.md and run the ④ Level Map tab of the course checklist.

Your beat chart from today is most of the annotation work already done.