AWS Logo
Menu

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

Published May 28, 2025
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.
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.
 

1 Comment