AWS Builder Center

Tips for Vibe Coding a Game using the Amazon Q Developer CLI

Building a Turn based combat game using only prompts from the Amazon Q Developer CLI, with assets powered by Amazon Nova Canvas

Amazon Q has become a regular part of my workflow—whether I’m managing Terraform infrastructure, wrangling Lambdas, or doing just about anything in my AWS org. But until now, I hadn't used it to create a full project from scratch.
Then my colleague pointed out something embarrassing: I didn’t own a single AWS T-shirt. That was all the motivation I needed to join a competition to build a game using the Amazon Q Developer CLI!
So, naturally instead of running /dev and having it spin up a game in a minute, I built a turn-based combat game using PyGame, with Amazon Nova handling asset and icon generation, and Amazon Q doing 99.9% of the heavy lifting by generating the levels.
👉 You can check out the game repo here: github.com/rybrow/q-quest  and see a video of it below!


Tips & Tricks

There's already heaps of blogs and videos about the Amazon Q Developer CLI and what it can do. Look up #AmazonQCLI  on LinkedIn and you'll find heaps of cool and fun resources of what others are doing.
Now, if you're like me, wanting to build an actual project with no background in Game Development, and you're still getting used to effective prompt engineering. Getting it to where you want it to be won’t be quite as fast and easy as you imagined. I learned a lot, and I want to share some tips on how I made it work—with minimal coding effort on my part.

✅ Want a full project? - Start Small and Iterate

Amazon Q Developer CLI is surprisingly powerful. If you’ve got your user requirements and game design well documented in your repo, you could probably get a decent prototype up with just a single use of the /dev command.
But in my experience, taking that prototype and turning it into the actual game you want often means throwing out a good chunk of that first version. I could’ve had a basic turn-based game running in a few prompts—but I wanted it my way.

✅ Follow a Good Project Structure (and Commit Regularly!)

I made the mistake of not asking Q to generate the project in a modular, structured way. This left me with a 3,000-line Python file. Unsurprisingly, this caused problems:
  • Q would get overwhelmed when I asked for a new feature—sometimes deleting the main entry point entirely (!)
  • Other times, it would miss a single bug-causing line and insist, “The game should be working as expected now”
Eventually, I asked Q to refactor the code without making functional changes, and had it commit the changes to Git. This helped a lot—especially when I needed to roll back and start a feature from scratch.
Pro tip: Ask Q to store any helper scripts or backups in a separate folder (ideally one ignored by .gitignore). At one point, I had 133 Python scripts floating around, all trying to edit the main game file. Once I had Q move them to a scripts folder, life got a lot easier.

✅ Be Specific—AI Isn’t a Mind Reader

I get the best results when I treat AI like a graduate-level intern: they’ve got skills, but you still need to explain what you want—and why.
Using the /editor command to craft more detailed prompts gave me far better results than just typing a sentence into the terminal. One method that worked especially well was giving Q a "game developer" persona, and a checklist of three related tasks at a time.
A persona isn't always enough, you can see in the video the prompt I gave had a "Senior Game Designer" persona, but I didn't specify all the enemies had to be on the map! I had many other prompts where the rooms weren't connected too, so had to be more specific about that and the folder structure.
1
2
3
4
5
6
7
8
9
You are a Senior Game Designer.
Looking at the levels in the levels/ folder design a new level based in a sci-fi sewer.

1) Ensure the levels.json file matches the same schema as the other levels
2) Copy everything in the maps/tilesets folder into your new level
3) When you are designing your TMX map ensure the walls are tiles with GID 0, and floors tiles are GID 25, 26 or 27
4) All rooms in the map must be accessible without walking diagonally or going through a wall.

When you are done, execute the script generate_character_images.py to refresh the game's assets.
Worth keeping in mind that Q might not be trained on the absolute latest tools. One workaround is giving it access to the internet via MCP.
For example, I wanted to use Amazon Nova Canvas to generate game images. Q couldn’t walk me through the Bedrock setup—but it gave me a close result using Stable Diffusion. I ended up just adapting it myself using the Nova docs. Still very cool that this was the only bit of code I had to write myself!

✅ Getting Errors? Q can execute bash commands! Ask it to Compile and Run the Code

There were many times Q’s code changes caused the PyGame project to just... not run. Having Q compile and run the project after changes saved me a lot of time and frustration—especially since I was essentially “vibe coding” the entire thing. This is also how I managed to get it to generate the images with Amazon Nova, it would generate the level definition, then execute my python script.
Q also supports a devfile.yml , which is handy if you’ve got validations or build steps you want it to run consistently.

✅ AI Can’t See Your Screen

AI can do a lot—but it can’t see what you see. I had to be extremely specific (down to the pixel) to get the UI just right.
Same thing with map generation: Q could understand the format of my example maps, but couldn’t generate new levels that looked like something a seasoned designer would make. Sometimes, you just have to take the wheel.

Final Thoughts

Hopefully these tips help! I don’t think Amazon Q is replacing developers anytime soon—but it is capable of doing a lot of the heavy lifting.
If you know what you want to build, and you’re willing to guide Q with the right context and structure, you might be surprised at what you can accomplish by just running q chat.
And hey—maybe you’ll even get a T-shirt too.
 
Any opinions in this article are those of the individual author and may not reflect the opinions of AWS.
Enjoyed reading this content? Let the author know!

Your likes, comments, shares, and saves help creators reach more builders.

Loading recommendations

Loading article