# Google Play Games Integration for ZenTap This document outlines the Google Play Games Services integration added to the ZenTap Flutter Flame game. ## Features Implemented ### 🏆 Achievements - **First Bubble**: Pop your first bubble - **100 Bubbles**: Pop 100 bubbles in total - **1000 Bubbles**: Pop 1,000 bubbles in total - **5000 Bubbles**: Pop 5,000 bubbles in total - **Zen Master**: Play in Zen mode for 10 minutes - **Speed Demon**: Reach 1,000 points in under 2 minutes - **Perfect Session**: Complete a session without missing any bubbles (minimum 50 bubbles) ### 📊 Leaderboards - **High Score**: Highest score in regular mode - **Zen Mode Duration**: Longest time spent in Zen mode - **Total Bubbles Popped**: Lifetime bubble count - **Longest Session**: Longest single game session ### 🎮 Game Integration - Automatic tracking of bubble pops, session time, and scores - Real-time achievement checking - Automatic submission of scores to leaderboards - Session statistics tracking (perfect sessions, streaks, etc.) ## Setup Required ### 1. Google Play Console Configuration 1. **Create Google Play Games Project**: - Go to [Google Play Console](https://play.google.com/console) - Create a new game or link to existing app - Note down the App ID 2. **Configure Achievements**: ``` Achievement ID: achievement_first_bubble Name: First Bubble Description: Pop your first bubble Points: 5 Type: Standard Achievement ID: achievement_100_bubbles Name: Bubble Rookie Description: Pop 100 bubbles Points: 10 Type: Standard Achievement ID: achievement_1000_bubbles Name: Bubble Master Description: Pop 1,000 bubbles Points: 25 Type: Standard Achievement ID: achievement_5000_bubbles Name: Bubble Legend Description: Pop 5,000 bubbles Points: 50 Type: Standard Achievement ID: achievement_zen_master Name: Zen Master Description: Meditate for 10 minutes in Zen mode Points: 30 Type: Standard Achievement ID: achievement_speed_demon Name: Speed Demon Description: Score 1,000 points in under 2 minutes Points: 25 Type: Standard Achievement ID: achievement_perfect_session Name: Perfect Session Description: Complete a session without missing any bubbles Points: 20 Type: Standard ``` 3. **Configure Leaderboards**: ``` Leaderboard ID: leaderboard_high_score Name: High Score Order: Larger is better Score Format: Numeric Leaderboard ID: leaderboard_zen_mode Name: Zen Mode Duration Order: Larger is better Score Format: Time (seconds) Leaderboard ID: leaderboard_total_bubbles Name: Total Bubbles Popped Order: Larger is better Score Format: Numeric Leaderboard ID: leaderboard_longest_session Name: Longest Session Order: Larger is better Score Format: Time (seconds) ``` ### 2. Android App Configuration 1. **Update App ID**: - Replace `YOUR_GOOGLE_PLAY_GAMES_APP_ID` in `android/app/src/main/res/values/strings.xml` with your actual App ID from Google Play Console 2. **App Signing**: - Ensure your app is signed with the same certificate used in Google Play Console - Upload your SHA-1 fingerprint to Google Play Console ### 3. Testing 1. **Internal Testing**: - Add test accounts in Google Play Console - Use internal testing track to test Google Play Games integration 2. **Debug Mode**: - Use debug keystore for development testing - Add debug SHA-1 to Google Play Console for testing ## Usage ### For Players 1. **Sign In**: Go to Settings and tap "Sign In" under Google Play Games 2. **View Achievements**: Tap "Achievements" to see progress 3. **View Leaderboards**: Tap "Leaderboards" to compete with others 4. **Automatic Tracking**: All game progress is automatically tracked when signed in ### For Developers - All Google Play Games functionality is handled automatically - Statistics are tracked during gameplay - Results are submitted when game sessions end - UI provides sign-in/sign-out and access to achievements/leaderboards ## File Structure ``` lib/ ├── utils/ │ └── google_play_games_manager.dart # Main Google Play Games service ├── ui/ │ └── google_play_games_widget.dart # UI component for settings └── game/ └── zentap_game.dart # Game integration (updated) android/ ├── app/ │ ├── build.gradle.kts # Added Google Play Services dependencies │ └── src/main/ │ ├── AndroidManifest.xml # Added Google Play Games permissions │ └── res/values/ │ └── strings.xml # App ID configuration ``` ## Dependencies Added - `games_services: ^4.0.0` - Flutter plugin for Google Play Games Services ## Notes - Google Play Games Services is only available on Android - iOS Game Center integration would require additional setup - All achievement and leaderboard IDs must match exactly between code and Google Play Console - Test thoroughly before production release ## Troubleshooting ### Common Issues 1. **App ID Mismatch**: Ensure the App ID in strings.xml matches Google Play Console 2. **SHA-1 Fingerprint**: Make sure the app's SHA-1 is added to Google Play Console 3. **Achievement IDs**: Verify all achievement IDs match between code and console 4. **Permissions**: Ensure INTERNET and ACCESS_NETWORK_STATE permissions are added ### Debug Tips - Check Android logs for Google Play Games errors - Use Google Play Console's testing tools - Verify app is properly signed for production