feat: Akiba Crossing city — 100 blocks with unique landmarks + detail pass

Scaled the single block to a full 10x10 city grid (48m cells, 16m streets,
640m across) with a hand-authored layout so the fabric stays varied:

Block types:
- S standard retail (70%): paired parametric buildings facing the N-S
  streets, seeded heights/colors per block; ~half get a mid-block alley
  with fire-escape climbs so no two blocks play identically
- T landmark towers: 8-10 floors on a walkable retail podium, mega corner
  sign, double-sided rooftop crown billboard (skyline wayfinding)
- J shrine courtyards: walled court, torii, slide-roof hall, lanterns,
  trees — the green quiet break in the fabric
- M market streets: dense stall rows + lantern strings between low
  buildings (close-quarters cover mazes)
- P plaza cluster at the city centre with planter cover and a giant
  4-face screen tower at the exact middle (the Crossing)
- C construction sites: open slab frame to wallrun, access ramp, container
  stacks, and a 28m crane whose jib is the city's tallest grapple anchor

City systems:
- Brick rail viaduct runs the full east-west width on per-block piers with
  vending arcades under alternating arches + slide ramps at the centre
- Central avenues x=0/z=0 get matched streetlights and zebra crossings at
  every block line; brick wall rings the district; city-haze fog for depth
- Detail pass per building: window bands every floor, water tanks/antenna
  masts seeded on roofs, denser sign stacking

Perf/physics: decoration (signs, windows, leaves, lamp heads) is
render-only MeshInstances; only gameplay surfaces are static bodies, all
acoustics-tagged. Spawns distributed across block types facing centre.

Verified: full-city aerial (all 100 blocks, aligned grid), avenue-level
capture (clean canyon, viaduct vista); movement 11/11, smoke 0 failures,
acoustics ALL PASSED.

Co-Authored-By: Claude Fable 5 <[email protected]>
This commit is contained in:
Nicholas Butzke
2026-07-18 14:45:48 -04:00
co-authored by Claude Fable 5
parent a7fa7f207c
commit b0af2ea9ee
2 changed files with 368 additions and 213 deletions
+5 -1
View File
@@ -43,7 +43,11 @@ func _process(_delta: float) -> bool:
if cam:
var aerial := Camera3D.new()
current_scene.add_child(aerial)
aerial.global_position = Vector3(0, 55, 42)
if _scene.contains("neon_alley"):
aerial.far = 2000.0
aerial.global_position = Vector3(0, 400, 300)
else:
aerial.global_position = Vector3(0, 55, 42)
aerial.look_at(Vector3(0, 0, -5), Vector3.UP)
aerial.current = true
elif _frames == 340: