Skip to content

codejq/quantum-garden-game

Repository files navigation

Clean Garden

Clean Garden is an offline 3D garden cleanup and tree planting game credited to Quantum Billing LLC.

The game is built with plain browser JavaScript, local Three.js r128 assets, Vite, and Tauri v2. It supports desktop, mobile touch, keyboard, mouse, single-player, simultaneous two-player play, localized UI, seeded level attempts, score memory, avatar customization, and an LLM-friendly browser control hook.

Project page: https://codejq.github.io/quantum-garden-game/

Live web build: https://codejq.github.io/quantum-garden-game/game/

Clean Garden gameplay screenshot

Features

  • Offline-first browser and Tauri builds.
  • English by default, plus Arabic, Spanish, and French.
  • Single-player and simultaneous two-player modes.
  • Keyboard, mouse, and touch controls.
  • Seeded randomized levels with teardown and replay-friendly state.
  • Saved best, last, and total score data.
  • Avatar gender and clothing options.
  • window.QuantumGardenAgent API for model-driven play and testing.

Requirements

  • Node.js 24.
  • Rust stable.
  • Tauri v2 prerequisites for the target platform.
  • Android Studio, Android SDK, Android NDK, and Java 17 for Android builds.
  • macOS, Xcode, and Apple signing access for macOS/iOS builds.

Local Development

npm ci
npm run dev

Test And Build

npm test
npm run test:offline-build
npm run build
npm run tauri:build

Android:

npm run tauri:android:build

iOS, on macOS with Xcode:

npm run tauri:ios:build

Build Outputs

  • Web: dist/web
  • Windows desktop app: src-tauri/target/release/clean-garden.exe
  • Windows installers: src-tauri/target/release/bundle
  • Android APK: src-tauri/gen/android/app/build/outputs/apk
  • Android AAB: src-tauri/gen/android/app/build/outputs/bundle

GitHub Workflows

  • CI: runs tests and offline build checks.
  • GitHub Pages: builds the offline web game and deploys dist/web to GitHub Pages.
  • Build Platforms: builds web, Windows, Linux, macOS, iOS, and Android artifacts on release tags, attaches web/desktop/iOS assets to the GitHub Release, and can also run manually. If Apple signing is unavailable, the iOS job uploads the generated iOS project archive instead of a signed binary.
  • Android Market Release: builds signed Android artifacts, creates a GitHub Release, and can publish the AAB to Google Play if the Play secret is configured.
  • F-Droid Publish: publishes the signed release APK into docs/fdroid/ for GitHub Pages hosting, and can also open/update an official F-Droid fdroiddata merge request when GitLab submission secrets are configured.

Release Secrets

Android signing:

  • ANDROID_KEYSTORE_BASE64: base64 encoded Android release keystore.
  • ANDROID_KEYSTORE_PASSWORD: Android keystore password.
  • ANDROID_KEY_ALIAS: Android key alias.
  • ANDROID_KEY_PASSWORD: Android key password.

The Android release workflow also accepts the legacy names from the copied workflow: KEYSTORE_BASE64, KEYSTORE_PASSWORD, KEY_ALIAS, and KEY_PASSWORD.

If Android signing secrets are absent, CI generates a temporary release key so a first APK can still be produced. Configure real signing secrets before relying on app updates, because Android requires every future update to use the same signing key.

Google Play publishing:

  • GOOGLE_PLAY_JSON_KEY: Google Play service account JSON.

F-Droid repository signing:

  • FDROID_KEYSTORE_BASE64: base64 encoded F-Droid repo keystore.
  • FDROID_KEYSTORE_PASS: F-Droid repo keystore password.

If F-Droid repo signing secrets are absent, CI generates a temporary repo key for the current publication. Configure the real F-Droid repo key before giving the repo URL to users.

Official F-Droid publishing:

  • FDROID_GITLAB_TOKEN: GitLab token with api and write_repository access to your fdroiddata fork.
  • FDROID_GITLAB_FORK: your GitLab fork path, for example your-gitlab-user/fdroiddata.

F-Droid official publishing is not an APK upload. The workflow opens or updates a merge request against fdroid/fdroiddata so F-Droid can review and build the app from source.

iOS binary distribution requires Apple signing and provisioning on the macOS runner. Without that setup, the release includes Clean-Garden-<tag>-ios-project.zip so the generated Xcode/Tauri iOS project can still be downloaded.

The Android package id and iOS bundle id are com.quantumbilling.cleangarding.

Documentation

About

Quantum Garden Game

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors