Skip to content

Repository files navigation

Bitlife AI

Bitlife AI is an open-source, AI-driven life simulation game for Android built with modern Jetpack Compose and Material 3. It combines the deep sandbox mechanics of text-based life simulators with modern LLM intelligence for emergent storytelling, dynamic NPC relationships, open-ended action evaluation, and chapter-based narrative events inspired by Pax Historia.


Features

  • Modern Architecture: Pure native Android app built with Kotlin 2.1, Jetpack Compose, Material 3, Coroutines, StateFlow, and OkHttp.
  • Warm Aesthetic: Clean Yellow and White design theme with high-contrast typography and minimalist layout.
  • Multi-Provider AI Engine:
    • OpenRouter
    • Google AI Studio (Gemini)
    • NVIDIA NIM
    • Anthropic Claude
    • DeepSeek
    • OpenAI
    • Google Cloud Vertex AI (Express Mode & Agent Platform API Key support)
    • Intelligent Offline Simulation Engine (automatic fallback when no API key is provided)
  • Dynamic Model Discovery: Fetch live model lists dynamically upon entering provider API credentials.
  • Multilingual Support:
    • Automatically resolves system language.
    • Fully supports Turkish, English, Spanish, German, French, Russian, Japanese, Chinese, Arabic, Portuguese, Italian, and Korean.
  • Pax Historia-Style Chapter Events: Multi-page sequential story chapters with chapter titles, narratives, and milestone progression.
  • Dynamic Family & NPC System:
    • Parents (Mother, Father) generated with distinct occupations and personalities.
    • Siblings system dynamically decided by AI (count, genders, and age differences).
    • Friends, colleagues, and acquaintances.
  • Interactive NPC Chat: Freeform dialogue with any NPC, where responses are roleplayed according to personality traits and relationship metrics.
  • Balanced Freeform Action Engine: Write any custom action you wish to attempt in life. The AI calculates realistic outcomes, risks, and consequences without automatic success.
  • Life Advisor AI: Dedicated strategic advisor to consult for career planning, personal choices, and simulation guidance.
  • Automated State Persistence: Real-time auto-saving with multi-slot management and restore capabilities.
  • Reproducible Signing: Fixed release keystore configuration producing a deterministic SHA-256 fingerprint.
  • Continuous Integration: Automated GitHub Actions pipeline building signed release APKs and publishing to GitHub Releases.

Project Structure

Bitlife_AI/
├── .github/
│   └── workflows/
│       └── build-release.yml      # CI/CD pipeline for building and releasing signed APKs
├── app/
│   ├── build.gradle.kts           # Android application build configuration
│   ├── proguard-rules.pro         # ProGuard / R8 rules
│   └── src/
│       └── main/
│           ├── AndroidManifest.xml
│           ├── java/com/bitlifeai/game/
│           │   ├── MainActivity.kt
│           │   ├── data/
│           │   │   ├── api/
│           │   │   │   ├── AIEngineService.kt
│           │   │   │   └── LocalSimulationEngine.kt
│           │   │   ├── i18n/
│           │   │   │   └── StringResources.kt
│           │   │   ├── models/
│           │   │   │   ├── ActionRecord.kt
│           │   │   │   ├── AISettings.kt
│           │   │   │   ├── ChatMessage.kt
│           │   │   │   ├── GameState.kt
│           │   │   │   └── Language.kt
│           │   │   └── storage/
│           │   │       └── SaveManager.kt
│           │   └── ui/
│           │       ├── GameViewModel.kt
│           │       ├── components/
│           │       │   ├── ActionDialog.kt
│           │       │   ├── AdvisorDialog.kt
│           │       │   ├── ChatDialog.kt
│           │       │   ├── HistoryLogDialog.kt
│           │       │   ├── LoadingOverlay.kt
│           │       │   ├── PaxEventDialog.kt
│           │       │   └── TimeSkipDialog.kt
│           │       ├── screens/
│           │       │   ├── GameMainScreen.kt
│           │       │   ├── InitialInfoScreen.kt
│           │       │   ├── LifeCreationScreen.kt
│           │       │   ├── LifeListScreen.kt
│           │       │   ├── SettingsScreen.kt
│           │       │   └── SplashScreen.kt
│           │       └── theme/
│           │           ├── Color.kt
│           │           ├── Theme.kt
│           │           └── Type.kt
│           └── res/
├── keystore/
│   ├── generate-keystore.sh       # Keystore generation script
│   └── release.keystore           # Reproducible release keystore
├── gradle/
│   ├── libs.versions.toml         # Gradle Version Catalog
│   └── wrapper/
├── build.gradle.kts
├── settings.gradle.kts
├── gradle.properties
└── README.md

Building from Source

Prerequisites

  • Java Development Kit (JDK) 21
  • Android SDK (API Level 35)

Build Commands

To build the signed release APK:

./gradlew assembleRelease

The generated APK will be located at: app/build/outputs/apk/release/app-release.apk


Release Verification & Keystore

The project uses a reproducible keystore configuration for consistent signing across environments:

  • Key Algorithm: RSA 2048-bit
  • Alias: bitlifeai
  • Keystore Path: keystore/release.keystore
  • SHA-256 Fingerprint: 36:4C:11:06:98:68:93:D7:5C:4E:C4:C5:1B:D2:5D:B8:1D:AC:33:84:42:1C:A7:75:B7:89:F7:99:EE:A4:BC:96

Automated GitHub Releases

Every push to tags matching v* or manual triggers via GitHub Actions workflow_dispatch will automatically:

  1. Setup JDK 21 and Android SDK.
  2. Build the signed release APK.
  3. Compute SHA-256 checksums.
  4. Publish a new GitHub Release with Bitlife-AI-Release.apk and Bitlife-AI-Release.apk.sha256.

License

This project is licensed under the MIT License. See the LICENSE file for details.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages