World is a single persistent connected space; new abilities acquired mid-game retrospectively open previously inaccessible areas.
One looping world: a sealed shortcut forces the long way around until an ability opens it, letting the hero cut straight across.
One persistent connected space, not a sequence of levels. Areas are gated by flag checks on entry, so new abilities retroactively open old regions — no scene loading.
Build the whole world as one continuous tilemap that's always loaded. Continuity is the point — the player never crosses a level boundary.
# One big persistent TileMapLayer;
# rooms are regions within it, not separate scenes.Region gates check a flag on entry. A blocked passage simply becomes passable once the gating ability flag is set — the same wall, re-evaluated.
func _on_body_entered(b):
if not GameState.has("high_jump"):
b.block() # comes back later with the abilityAbility flags in GameState drive all gating. Because the world is persistent, flipping a flag immediately reopens every gate that checks it.
var abilities := {}
func has(a): return abilities.get(a, false)In short: Persistent world scene or TileMap; locked areas check GameState.check_flag() on entry; no level loading
19 catalogued game(s) use this mechanic, spanning 1986–1998.
▶ Explore Interconnected Map interactively — see every game + the Godot system