Inspiration
Intrigued by the possibilities of Amazon Q Developer, we challenged ourselves to build a fully interactive game using only Flutter, without any game engines. Creating a visually engaging experience without relying on sprites presented a unique opportunity. Inspired by the classic arcade shooter 1942, we decided to develop a board game that captures the essence of aerial combat in a fresh and innovative way.
What it does
Asteroid Q is an asteroid hunting game where your objective is to seek and destroy 100 asteroids using Jet Fighter in order to protect your universe.
Explore an infinite universe in Asteroid Q, starting your journey with 50 fuel units and 3 lives in a randomly selected galaxy.
Each galaxy is populated with asteroids to destroy and fuel pods to replenish your jet. The number of these objects varies depending on the galaxy's size.
There are 3 galaxy size based on your device in this game :
- Itokawa (Mobile): 1 fuel pod, 3 asteroids
- Hygiea (Tablet): 1 fuel pod, 5 asteroids
- Chiron (Desktop): 2 fuel pods, 7 asteroids
Maneuvering your jet fighter consumes fuel, and the amount of fuel consumption is different for each activity :
- Movement: 2 fuel units per space unit traveled
- Rotation: 1 fuel unit per turn
- Missile Launch: 5 fuel units per launch (regardless of impact)
- Refueling: Free
Strategic planning is key to success in Asteroid Q. Carefully consider your every move, plotting your course through the galaxy, prioritizing asteroid targets, and managing your fuel reserves.
If you move to a space that have Asteroid in it, your jet will be collided with that Asteroid, and your life will be reduced by 1. After 3 collisions, your mission to protect the universe is over.
The missile can shoot Asteroid that is 3 spaces away from your jet position. You will earn 1 point for each Asteroid destroyed.
For refueling, you need to move your jet into space that have fuel pod in it. And each fuel pod will give you 100 additional fuel.
Destroying 100 Asteroids will put your name into the Leaderboard. Leaderboard rankings are based on efficiency: less space travel, fewer rotations, minimal refueling, and exploring the fewest galaxies possible.
For fair competition, each galaxy size (Itokawa, Hygiea, and Chiron) has its own leaderboard, ensuring players aren't unfairly disadvantaged by screen size.
The game supports mouse and keyboard input on desktop platforms, and touch input on tablet and mobile devices.
With its unique blend of arcade action and strategic resource management, Asteroid Q offers a fresh and engaging gameplay experience for players of all skill levels.
How we built it
We built Asteroid Q using Flutter, leveraging the power of Amazon Q Developer throughout the development process. We explored the extent to which Amazon Q Developer could streamline our workflow, automating tasks and simplifying complex processes. For user authentication and account management, we integrated Amazon Cognito. Leaderboard data is stored and retrieved using Amplify API, connecting seamlessly to DynamoDB.
Challenges we ran into
Integrating Amazon Q Developer into our Android Studio workflow initially presented some hurdles. Troubleshooting its initial setup required extensive research and exploration of various online resources. We also discovered that the code generation process sometimes modified unrelated sections of our files. Our workaround involved directing the generated code to a separate directory and then manually integrating the relevant parts. Later, we found that using the add code to some_file.dart directive significantly streamlined this process.
As newcomers to AWS services, navigating the various offerings and understanding their limitations took considerable time. However, once we grasped the fundamentals, we found AWS services remarkably easy and convenient to use, significantly accelerating our development.
One final challenge:
we discovered that the amplify_flutter and amplify_auth_cognito packages currently lack support for Flutter Web WASM.
Given the impressive performance gains of WASM, we eagerly anticipate updates from the AWS team to enable this functionality.
Accomplishments that we're proud of
We're incredibly proud to have completed a fully functional game within the tight timeframe of this hackathon, thanks in no small part to the assistance of Amazon Q Developer. This project has been a rewarding learning experience, and we're excited to further explore the potential of Amazon Q Developer, perhaps by integrating it with the Flutter Flame engine in our next project.
What we learned
Developing this game significantly broadened our understanding of the AWS ecosystem. We were particularly impressed by how easily and efficiently these services enabled us to bring our idea to life. By offloading infrastructure management and other backend complexities to AWS, we could prioritize core gameplay mechanics and user experience, dramatically accelerating our development process.
What's next for Asteroid Q
We have ambitious plans for Asteroid Q's future. We envision expanding gameplay with multiple difficulty levels, thrilling multiplayer modes, hidden easter eggs, and exciting upgrade paths for jet fighters and weapons. We're also committed to bringing the Asteroid Q experience to native mobile and desktop platforms.
Built With
- aws-amplify
- aws-cognito
- aws-dynamodb
- aws-lambda
- flutter

Log in or sign up for Devpost to join the conversation.