Add office furniture and dim fire-lit horror atmosphere

This commit is contained in:
enne2
2026-10-11 00:42:20 +02:00
parent d74af7b550
commit d6d25fabaa
10 changed files with 326 additions and 8 deletions
+43
View File
@@ -0,0 +1,43 @@
# Office horror atmosphere
`scripts/office_atmosphere.gd` adds two desks, three chairs and a metal fire barrel.
Props use low-poly primitives with simple static collisions on world layer 1.
Positions avoid the four cardinal entry corridors and the central combat space.
The zombies still use their existing direct pursuit, not a new pathfinding system;
props can obstruct arbitrary paths when the player hides behind them.
The central ceiling OmniLight was removed. Ambient energy is 0.12 with a cool blue
color, preserving silhouette readability rather than total darkness. Two warm desk
lamps use short-range unshadowed OmniLights. The barrel is the only persistent
shadow-casting light (range10, energy1.9–2.8), with smooth bounded sine-based flicker.
The existing muzzle flash is unchanged: four omni lights total.
Fire uses 28 CPUParticles3D and small unshaded additive billboard quads. A generated
64x96 alpha flame mask is in assets/effects/flame.png. No glow, volumetric fog, GI,
GPU particles or Forward+-only effects are required. No fire damage was added.
The flame mesh does not cast shadows. The barrel and furniture do.
References consulted (Perplexity unavailable; official docs via Exa):
- https://docs.godotengine.org/en/stable/tutorials/3d/lights_and_shadows.html
- https://docs.godotengine.org/en/stable/classes/class_omnilight3d.html
- https://docs.godotengine.org/en/stable/classes/class_cpuparticles3d.html
Compatibility defaults to eight omni lights per mesh. Shadows are expensive and
can change light brightness because Compatibility uses a different shadowed-light
rendering path; visual checks were therefore done with gl_compatibility.
Verification (installed Godot4.7.1):
```sh
"$G" --headless --path . --script res://tools/test_office_atmosphere.gd
"$G" --display-driver x11 --rendering-method gl_compatibility --path . \
--script res://tools/test_office_atmosphere.gd -- --screenshot
```
Checks: prop counts/collisions, bounded flicker, CPU emitter, light count, absent
ceiling light, low ambient, free cardinal ray corridors and desk collision.
Three screenshots `/tmp/zombie-office-{0,1,2}.png` inspected, including the barrel.
All seven prior suites pass: health/sky, music, grenade, waves, death, damage, touch.
Existing resource-in-use warnings at test shutdown remain. Actual smartphone
performance has not been measured; this is a small light/particle budget, not an
FPS guarantee. Keep testing arbitrary zombie routes around the new obstacles.
+8
View File
@@ -1,5 +1,13 @@
# Web build and compressed deployment
## Office atmosphere release: fd65770c62e811fe
See `docs/OFFICE-ATMOSPHERE.md`: two desks, three chairs, two desk lamps and
CPU-particle fire barrel; ceiling light removed, low cool ambient.
PCK 3,946,516 bytes; gzip payload total 12,402,612 bytes. Previous releases retained.
Root backup: `index-before-office.html`. Serial import workaround applied to staging.
## Health + starry sky release: 31564f79b9f5e299
See `docs/HEALTH-SKY.md`: +1 HP/second while alive, capped at 100; Half-Life