
Creating an AWS Service Defender game with Amazon Q CLI
Developing a game with the Amazon Q CLI has been a very efficient and enjoyable experience
Published Jun 10, 2025
Today I'd like to share how I developed a tower defense game using the Amazon Q CLI with the theme of AWS services. It was especially fun to translate the features of AWS services into game elements.
[GitHub]
https://github.com/BokEumEom/amazon-q-tower-defense.git
At first, we had a hard time deciding what kind of game we wanted to make. We asked Amazon Q for ideas and received the following suggestions:
- AWS Service Defender (tower defense)
- Cloud Quest (RPG)
- DevOps Runner (running game)
- AWS Architect Simulation
- Serverless Adventure (text adventure)
Of these, I found the tower defense game with AWS services as towers to be the most appealing. It was interesting to see how the characteristics of AWS services could be represented by the abilities of the towers in the game.
The Amazon Q CLI was very helpful throughout the development of the game:
- Designing the project structure: It suggested the necessary files and class structure.
- Writing code: We generated the basic code for each module and implemented the required functionality.
- Bug fixes: They helped us resolve issues that arose during game development.
Amazon Q's suggestions were especially helpful when implementing the game's core mechanics: the tower, enemy, and path system.
Translating the characteristics of AWS services into the abilities of the towers in the game was the most fun part:
- EC2 tower: We designed it as a basic tower with balanced performance. It reflected the versatility of EC2.
- S3 Tower: We implemented it as a zone attack tower with a wide area of influence. It represented S3's large data storage and distribution characteristics.
- Lambda tower: We built it as a tower that fires multiple shots simultaneously with a high rate of fire. We incorporated Lambda's fast execution and scalability into the game.
The enemy units were also inspired by threats in the cloud environment:
- Hackers: basic threats
- Malware: fast-moving threats
- DDoS attacks: slow but powerful threats
The game was developed using Python and Pygame; key implementations include
- Grid-based map system: We implemented a grid where towers can be placed and paths for enemies to travel.
- Tower attack mechanics: We implemented different attack methods and ranges for each tower.
- Wave system: We implemented increasingly difficult enemy waves.
- Resource management: We implemented a credit system for building and upgrading towers.
We learned a lot from this project:
- Utilization of the Amazon Q CLI: It is very helpful not only for generating code, but also for problem solving and developing ideas.
- Game design: It was a creative challenge to translate the characteristics of a real-world service into game mechanics.
- Utilizing Pygame: I was able to learn a variety of skills required for 2D game development.
There's still a lot of room for improvement:
- Adding more AWS services: We plan to add more AWS services such as DynamoDB, CloudFront, and more.
- Improving graphics: We plan to add visuals that utilize icons from AWS services.
- Balancingthe game: We'll be working on balancing the game for more fun and challenging gameplay.
Developing a game with the Amazon Q CLI has been a very efficient and enjoyable experience. We were able to significantly reduce our code writing time and focus more on the creative part. The process of expressing the characteristics of AWS services in a game also deepened my understanding of AWS.
I encourage you to start your own projects with the Amazon Q CLI. It will help you from ideation to code!
