Log inGet started
World

Banana 2077

Branchmain
Branchesmain
Commit49a1306fab

README.md

Soundscape

Banana 2077's whole sound. The scene entrypoint attaches it to mount_audio when play starts. It only listens to game.rules events and never changes game state.

What it builds

Everything lives under one snd_rig child of the mount. Any rig an earlier instance left behind is despawned first, so a hot reload never doubles a loop.

entitysourcerole
snd_music_1, snd_music_2Music, loopingtwo decks that crossfade over 1.6 s
snd_stingerMusic, one-shotwin and lose stingers
snd_sfxSoundEffect, non-spatialhost for every gameplay one-shot (playOneShot)
snd_rain_bedAmbient, loopingrain plus distant city bed (amb_city_rain)
snd_neon_1..8Ambient, spatial, 13 mneon-tube buzz on the shopfront signs
snd_market_1..4Ambient, spatial, 30 mnight-market crowd at the stalls
snd_hovercarSoundEffect, spatial, 60 mfly-bys repositioned near the player every 9–20 s

Spatial sources are heard through the single AudioListener on the player's CameraRig. This component adds no listener.

Music by phase

  • title → music_title
  • playing → music_combat, or music_boss while the boss is alive. A UI confirm plays when a run starts.
  • bossCue → sfx_boss_cue plus Don Aubergine's roar (sfx_boss_roar), his spoken taunt (vo_boss_taunt) 1.6 s later, and the music crossfades to music_boss.
  • won / lost → the music fades out, stinger_win / stinger_lose plays, then the title theme returns at 55%.

Events → one-shots

swing → sfx_swing (sfx_swing_heavy on the combo finisher) · hit → sfx_hit (sfx_hit_heavy + sfx_splat when heavy, sometimes sfx_enemy_growl) · enemyKilled → sfx_splat (sfx_boss_death for the boss) · bossSlam → sfx_boss_slam · playerDamaged → sfx_enemy_attack + sfx_hurt · playerHealed → sfx_snack · eddies → sfx_coin · sunglassesToggled → sfx_shades_on / sfx_shades_off · dodge → sfx_dodge · footstep → sfx_footstep (throttled).

Fields

musicVolume, ambienceVolume, sfxVolume (0..1), and hovercars (toggles the fly-bys).