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:
co-authored by
Claude Fable 5
parent
a7fa7f207c
commit
b0af2ea9ee
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user