<- all projects
Bikini Bay

Bikini Bay

Android Volume Live

Build a surf camp, shape the boards, and take your team to a world title.

Bikini Bay is the Grand Prix Story of surfing: a ten-year arc where you build a camp from a shack on the sand into a program that wins world rankings. Scout and develop surfers, craft boards whose shape actually changes how they ride, read the break, and send your team into heats and tour series against four rival AI camps with personalities of their own. Chunky Kairosoft-style pixel art over progression loops that keep paying off.

Get it on Google Play

Screenshots //

Bikini Bay screenshot 1 Bikini Bay screenshot 2 Bikini Bay screenshot 3 Bikini Bay screenshot 4 Bikini Bay screenshot 5

Dev log //

A surf-camp builder where the board shaping and the business sim had to be made to care about each other. Most of the history is that integration rather than either half on its own.

Commits
132
Days w/ changes
20
Started
18 APR 2026
Version
1.0.0
  • fix: Firebase registrar constructors stripped by R8, verified on device
  • fix: three release-only bugs that killed the first Play build
  • art: new bikini-sunset launcher and store icon
  • release: point at the shared portfolio keystore, add the 512 Play icon
  • fix(phase4): font-scale sweep, tablet/720p cells, and an unselectable map pin
  • docs(store): Play listing copy, feature graphic, and curated screenshots
  • feat(phase1): close the autosave gap and the heat SFX rate
  • test(5.1-5.3): notifier scheduling, Mk.II evolve, coach-perk wiring
  • test(5.1): pin the notification/offline two-clock invariant
  • test(5.3, 5.4): cover the board designer and magazine covers off-device
  • fix(dynasty): the protege route never worked, in any build
  • fix: off-centre title, clipped gas percent, and a stationary surfer
  • feat(8.4): verify the EEA consent form; record Phase 8 as partial
  • test(phase7): ViewModel harness closes the money/score coverage gap
  • feat(a11y): make the heat audible to TalkBack; localize the pre-game shell
  • feat(phase5): global modal floor, deeper quote pools, rivalry payoff
  • fix(scroll): unreachable list rows and a dead sponsor-kiosk multiplier
  • fix: free "top 10" achievement inflating rep, and duplicate swell row
  • feat(phase5): bigger week bar, real sponsor rewards, tutorial fixes, load state
  • feat: 30s heats, Bikini Bay rename, compound layout, live surf animation
  • Add background art, music tracks, and gameplay screenshots
  • fix(crash): launch NPE on Samsung One UI 8 / Android 16 (setContent)
  • fix(heat): rivals finish the heat โ€” kill the SEND IT + Bail free-1st exploit
  • feat(telemetry): add Firebase Crashlytics (release-only reporting)
  • fix(break): restore world map + rebuild live heat tracker
  • fix(ui): make build-menu disabled reasons legible and specific
  • fix: crash on tutorial's first tap + poaching a rival's full roster
  • fix(ui): eliminate clipped buttons/text, incl. 125-150% font scale
  • fix: tutorial says grid is 'below' the banner, not 'above'
  • fix: tutorial clarity + player-facing text/logic bugs, QOL
  • feat: remove the unused player name (field + name-entry box)
  • feat(audio): real background music (bm1-3) at 50% volume, replaces chiptune
  • brand: finish Barrel Bay rename โ€” magazine masthead, versionName 1.0.0, docs
  • brand: rename the game "Barrel Bay" (was placeholder "surfersim")
  • feat(ui): real pixel font on the main menu (Press Start 2P, OFL)
  • feat(ui): menu overhaul โ€” sunset-beach backdrop, outlined logo, settings footer
  • feat(9.2/9.3): money thousands separators, portrait lock, ranking + burnout fixes
  • test(11.2): extend smoke to new-game creation -> compound render (2 tests pass on Pixel_9)
  • test(11.2): Compose UI launch+nav smoke test (passes on Pixel_9)
  • test(phase11): 11.3 pure-fn coverage + delete stubs; 11.1 extract+test streak reward

Showing the 40 most recent of 97 logged changes.

Every line above is a real commit from this app's repository, on the date it was made. Build chores and merge commits are filtered out.