A retro-style 8-bit gravity-switching endless runner game for Android, built with Kotlin.
This project serves as a demonstration of agentic AI capabilities in software development. Retro-Naut was created completely from scratch in less than 4 hours - from initial ideation to publishing on the Google Play Store.
Developed using Claude and Cursor - showcasing the power of AI-assisted development workflows.
Key Highlights:
- ⚡ Rapid Development: Complete game developed in under 4 hours
- 🤖 AI-Powered Development: Built entirely using Claude (AI assistant) and Cursor (AI-powered IDE)
- 🎨 AI-Generated Assets: All graphics, sound effects, and background music are programmatically generated (icons are the only exception)
- 📝 AI-Generated Documentation: Even this README was generated by AI
- 🔬 Experimental Project: Created to test how much can be achieved using the right AI prompting and agentic AI workflows
- 🚀 Production Ready: Despite being AI-generated, the game is fully functional and published on the Play Store
This project showcases the potential of modern AI-assisted development and demonstrates that with effective prompting and the right tools (Claude + Cursor), complex applications can be built from conception to deployment in a matter of hours.
- Retro 8-bit Graphics: Pixel-perfect retro aesthetic with scanlines and retro colors
- Gravity Switching: Tap to switch between normal and reverse gravity
- Procedural Generation: Endless obstacles that adapt to screen size
- Procedural Sound: 8-bit style sound effects and background music
- High Score Tracking: Persistent high score storage
- AdMob Integration: Banner and interstitial ads (with placeholder test IDs)
- Android Studio Hedgehog | 2023.1.1 or later
- Android SDK API level 23 or higher
- Kotlin 1.9+
- Gradle 8.6+
-
Clone the repository:
git clone https://github.com/anugotta/GravityPulse.git cd GravityPulse -
Open the project in Android Studio
-
Sync Gradle files
-
Build and run on an emulator or physical device
For detailed setup instructions, see SETUP.md.
Important: This repository uses Google's test AdMob IDs. Before publishing to the Play Store, you must replace them with your own AdMob IDs.
- Create an AdMob account at Google AdMob
- Create an Android app in AdMob dashboard
- Get your App ID and Ad Unit IDs (Banner and Interstitial)
- Update
app/src/main/res/values/strings.xml:<string name="admob_app_id">YOUR_APP_ID</string> <string name="admob_banner_ad_unit_id">YOUR_BANNER_AD_UNIT_ID</string> <string name="admob_interstitial_ad_unit_id">YOUR_INTERSTITIAL_AD_UNIT_ID</string>
The current placeholder IDs are Google's test IDs and should only be used for testing.
GravityPulse/
├── app/
│ ├── src/main/
│ │ ├── java/com/asp/gravitypulse/
│ │ │ ├── GravityPulseGameEightBit.kt # Main game logic
│ │ │ ├── MainActivity.kt # Activity entry point
│ │ │ └── TitleMusicGenerator.kt # Procedural music generation
│ │ ├── res/
│ │ │ ├── values/
│ │ │ │ └── strings.xml # String resources (including AdMob IDs)
│ │ │ └── mipmap-*/ # App icons
│ │ └── AndroidManifest.xml
│ └── build.gradle.kts
└── README.md
- Start: Tap anywhere on the screen to start the game
- Switch Gravity: Tap to toggle between normal and reverse gravity
- Avoid Obstacles: Navigate through gaps in obstacles
- Score Points: Survive as long as possible to increase your score
- Beat Your High Score: Try to beat your previous best!
- Kotlin: Primary programming language
- Android View System: Custom
Viewfor game rendering - Canvas API: 2D graphics rendering with pixel manipulation
- Coroutines: Asynchronous operations for game loop and audio
- AudioTrack: Procedural sound generation
- SharedPreferences: High score persistence
- Google AdMob SDK: Advertisement integration
- Clean, well-commented Kotlin code
- Proper null safety with Kotlin null checks
- Efficient rendering with Canvas API
- Memory-conscious audio generation
- Screen size adaptive obstacle generation
Contributions are welcome! Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.
This project is licensed under the MIT License - see the LICENSE file for details.
- Retro game aesthetic inspiration from classic arcade games
- Procedural audio techniques adapted for Android
- Built with the assistance of agentic AI to explore the boundaries of AI-assisted development