BABUNI.DEV

Button Game / Overview

Button Game: Overview

Button Game (Buttongame)

2026-10-27 — Repository #27 status reconciliation

Button Game is Babuni.dev's game originally conceived in 2009, with its Flash artifact preserved here, a separate early ChatGPT remake, and the current browser + Android + Python desktop-LAN implementations. The recovered creative origins preserve the creator's process without publishing the underlying private chat.

Trap Mode is implemented, with 10% of subsequent spawns red when enabled, passive point accrual, and an immediate loss on tapping red that still settles points already earned. A historical “not started” statement further down this README referred to a pre-implementation specification and is now corrected. Physical-device verification of the latest variation and distribution of a genuinely in-place-upgradable signed Android APK remain separate from source implementation.

Desktop audio packaging caveat: The Git tree contains ten original Ogg sounds in source, browser and Android mirrors. The browser code selects a matching MP3 filename if Ogg/Vorbis is unsupported. Those MP3 files were reported included in the separately prepared share-with-nephew desktop ZIP, but are not in this Git tree. Serving a fresh checkout with scripts/serve-desktop.py therefore may lack media required by a non-Ogg browser; the original silent-session cause and audible result on the recipient's machine remain unverified.

This 27 October review examines source and history and updates documentation only; no playable ZIP, APK, sound file, host script or test has been generated or run.

Desktop sound note: The game remembers its speaker mute setting in the browser. A shared desktop session can appear silent when muted, the audio context is suspended, or samples cannot be decoded. The browser build now tries HTMLAudioElement fallback and logs failures; the externally packaged desktop test ZIP includes both the original Ogg recordings and MP3 fallback copies. Source assets/sfx/ preserves the original Ogg masters.

Signing policy update (26 October 2026): After Babuni.dev requested APKs that always update the existing installed game, the repository now includes a guarded same-certificate signing helper and optional original-key GitHub Actions release signing. Debug-signed CI APKs are not guaranteed updates. A one-time high-score-backed-up migration may be unavoidable if the current installation uses an ephemeral debug key. See INSTALL.md. No newly original-signed APK is claimed until the private key is actually available.

Author: Babuni.dev

A one-minute, arcade-style button-smashing game with roaming targets, physical-looking number combinations and deliberately theatrical score collection. The game is authored and creatively directed by Babuni.dev. This repository preserves the original Flash artifact, earlier HTML5 reconstruction, current browser game, and native Android Wi-Fi host.

Project status (26 October 2026): previously tested gameplay and real two-device Wi-Fi multiplayer work according to Babuni.dev. The new optional Red Trap Button is now implemented in source after Babuni.dev's approval, with 10% subsequent red spawns and instant loss preserving earned pending points. The new complete Android CI build and regression passed for version 1.0.2-beta; original-certificate signing, in-place installation and physical Trap Mode testing are still pending.

1.0.3-beta source update (26 October 2026): Following Babuni.dev's successful 1.0.2-beta phone test, the small Traps checkbox has moved beside the bottom Reaction/APM and Play Again controls. It remains checked/unchecked through Game Over and can be changed before replay, but not mid-round. Saved host high scores are visible before starting, and a wide desktop browser now places players on the left, game in the center, scores on the right. New Android CI/install confirmation is tracked in ROADMAP.md.

Desktop LAN hosting now saves shared scores

Following Babuni.dev's report that python3 -m http.server 8000 showed “Could not reach host — try again,” a lightweight desktop host was added at scripts/serve-desktop.py. The plain Python static server had no /api/scores or /api/presence handlers; that explains the failure. The new Python-standard-library host provides the same API contract as Android for host-owned high scores, live players and Traps-mode metadata. Desktop-hosted scores persist in a separate Git-ignored .local-data/desktop-scores.json file on the computer, not on Android.

Run python3 scripts/serve-desktop.py, visit http://localhost:8000/ on that PC, and share http://COMPUTER_LAN_IP:8000/ with friends on the same reachable home network. Use hostname -I to find the computer's address. This is LAN-only, not a secure public internet server; see INSTALL.md.

Play and hosting

The web game source is index.html and game.js, with assets under assets/. The Android WebView and guest pages use copies in android/app/src/main/assets/www/. Host-only high scores require the Android server; opening a standalone HTML file does not provide a persistent shared leaderboard.

Current source and historical material

Location Purpose
game.js, index.html, assets/ Current HTML5 gameplay and presentation
android/ Native Android host, API, WebView and build
sfx/ Canonical source for all ten OGG recordings, mirrored into browser/Android assets
scripts/sync-www.sh Copies the web source and original OGGs into browser/Android assets
Game.swf, Game.html Preserved original Flash-era material
ChatGPT Remake/ Earlier reconstruction; not the current game
tests/ Committed regression tests
CHANGELOG.md Historical implementation and release/build chronology
DEVLOG.md Original detailed creative and technical development journal
INSTALL.md, SOUNDS.md Installation/build and sound reference

Documentation map

Development and validation

CI currently runs node --check game.js, node tests/live-leaderboard-refresh.cjs and Gradle assembleDebug assembleRelease. The workflow has compiled the native app, but it is not a complete gameplay or hardware test.

To synchronize current web files manually: bash scripts/sync-www.sh; then build under android/ with Gradle. All ten OGGs are now committed and synchronized from canonical sfx/, and CI compares the exact recordings inside both compiled APK variants. See ROADMAP.md for remaining release signing and delivery, not redundant feature rework.

The active Android application ID is com.babunigaming.buttongame. The separate TEST application variant introduced in an earlier experiment was subsequently removed. Release upgrades require the original signing certificate, held outside GitHub; unsigned or debug-signed CI artifacts cannot upgrade an existing release-signed installation.

Creative record and unanswered ideas

The creator supplied a recovered October 26 release to-do list emphasizing finish the existing Android update before new modes, with no need to preserve beta test high scores. Another recovered passage from the earlier conversation preserves the original seven-category development checklist. It includes an earlier six-part red-button Trap Mode summary, now supplemented by Babuni.dev's complete nine-item Red Trap Button specification: pre-game Traps checkbox, random replacement red spawns, ordinary position/lifespan/rotation/shatter behavior, instant loss if tapped, harmless expiry and next spawn if untouched, passive +3 points every ⅓ second (9/s) emitted from center through regular physics/fusion, host-persisted mode flag, and a small red button beside names in the leaderboard. Historical note: this specification was documented before implementation; the creator-approved 10% Red Trap Mode was subsequently implemented in source on 26 October 2026. Signed APK and certain physical-device verification remain pending.

The opening of the original Button Game brainstorming conversation has now been recovered through a privately supplied markdown export. Its earliest idea collection, visual corrections, rejected directions and human–AI development history are documented in docs/CREATIVE_ORIGINS.md, without publishing the private transcript or its sensitive contents.

This website/game and its documented development process are intended to form part of the babuni.dev portfolio. The original journal remains intact to preserve changing decisions, including rejected prototypes and earlier technical limitations.

View source

Creative direction and authorship: Babuni.dev. AI-assisted implementation and editorial summaries are identified in the source record.