Today, I stopped adding scale to North Is Not Up and went back through the first five levels.

The courses were working, but several details still weakened the experience: the tutorial taught bearings better than distance, Black Crag's backpack did not fully match its clue text, mountain wind started too late and some old source assets were still being imported by Godot even though the game never used them.

None of those problems needed another giant system. They needed a careful pass through the game as a whole.

Teaching pacing properly

The original tutorial explained the map and compass, but it did not give the player a practical way to estimate distance after taking a bearing.

I added a pacing lesson after the first control. The player walks between two mapped posts 25 metres apart while the game records their double-paces. They then use the map scale to plan a 50-metre leg, estimate when they have travelled far enough and search for the second control.

The important part was preserving the game's rules. The lesson could teach a method, but it could not turn into a distance-to-target display. Bearing and distance feedback only appeared after the player committed to an estimate.

I made the measured pace count part of the saved session and added an optional visual counting aid for the final leg. Walking was enforced during calibration so the count could not be mixed with running strides.

The lesson also received offline narration generated with ElevenLabs text-to-speech. I wrote separate lines for calibration, planning, short and long estimates, directional drift, finding the control and retrying the measured lane, then used ElevenLabs to create the voice audio. The narration referred to the player's actual count instead of assuming one universal stride length.

A small visual mismatch also needed fixing. The boulder used in the lesson did not match the object described by the coaching, so I replaced it with the correct asset rather than asking the player to reinterpret the instruction.

Making Black Crag's clues agree

Black Crag's backpack model and its spoken description had drifted apart during production. That is a particularly bad inconsistency in a search exercise because the player is meant to treat the clue as evidence.

I adjusted the backpack appearance and rewrote the affected narration and objectives so the physical prop, written notes and spoken guidance described the same thing.

The mountain ambience needed attention too. The hill wind was too quiet and faded in too late, which made the exposed ground feel much like the meadow below it. I moved the transition earlier and made the upper wind audible sooner.

Looping the wind revealed an obvious join. Instead of trying to hide the end with a longer single sample, I added a reusable crossfade ambience player. Two overlapping players alternated through the loop so one could fade out while the other faded in. A focused regression checked that the overlap continued without a gap.

Reducing wasted imports

Godot was still scanning a large collection of source packs, unused model variants and authoring assets that the finished levels did not require at runtime.

I added an asset dependency audit and marked unused folders or files so the importer could ignore them. The goal was not to delete useful source material. It was to stop every project open from paying the cost of assets that belonged to the authoring archive rather than the game.

This also made the dependency boundary clearer. If a production scene referenced something inside an ignored folder, the audit needed to expose it before the change was accepted.

Repairing details in Brackenford

I also removed an unwanted root asset from Brackenford and regenerated the affected map and vegetation data.

The larger repair was to the stone walls. Repeated modules had already been corrected once, but continuous saved meshes produced cleaner runs, stronger end geometry and more consistent collision. I rebuilt seven wall sections with shared dry-stone materials and updated nearby bridge materials at the same time.

The cow herd and bull behaviour received another pass so the animals remained part of the scene without obstructing the course or behaving identically. The tests were adjusted around the final saved world rather than the earlier generated layout.

Why this day mattered

Today's work did not create a new level, but it made the existing game easier to understand and more coherent.

The tutorial now taught distance as a physical skill. Black Crag's clue, narration and prop agreed with one another. Its wind changed smoothly with altitude. Brackenford's walls behaved like continuous boundaries, and the project stopped importing a large amount of unused source material.

This is the kind of work that is easy to flatten into “general polish”, but each change protects the same thing: the player should be able to trust what the game shows, says and sounds like.