From Shame to Game: Young Teen Humbles Developer
The Game That Turns Artistic Shame into Fame
Published Jan 8, 2025
Picture this (pun intended): have you ever had a 13-year-old critique your artistic abilities? Well, I have, and let me tell you-teenagers can be brutally honest! What I thought clearly looked like a cat, my niece's response was 'You can't draw. What's that supposed to be?' crushed whatever ego I had.
The cat in question:
After defending myself for about 30 minutes, the shame I got from my niece inspired me to create Sketch It! - A game where an AI judges your drawings instead of my niece.
The Sketch It game is simple yet hard to master:
- Players are presented with hidden words, shown as blocks indicating word length
- Based on the category and word length, players must draw their interpretation on what the word could be
- Amazon Bedrock's AI image analyzes the drawing to determine if it matches the word
- Players earn points for successful matches, and their scores are tracked on a leaderboard. Additionally, all successful drawings are submitted to the gallery for all players to see
When I first sat down to build this game, I had only a rough idea but wasn't sure how to structure it. That's when I turned to Amazon Q with what might be the longest, most stream-of-consciousness prompt ever:
"a game where the words are hidden the player needs to draw what the think the word is like no we have words that are blocked but we have blocks indicating the word length based on how many blocks use amazon bedrock image capabilities to identify if the drawing matches the word The UI needs to be sketch UI like I'm drawing on a sketch book the font needs to be pencil and needs to be cute and look visually beautiful for a game design. SO make sure that the buttons are sketch like with shading around the buttons and etc. It really needs to look good as well as the game mechanics needs to look good as well including the drawing section that needs to be perfect as we draw it needs to have that pencil feel and look and when we submit the drawing the amazon bedrock image will analyze to see if the drawing matches the word. I need you to provide me with the full file structure for this react tailwind game and all the packages I'll need for this project"
Yes, that's the exact prompt, in its peak grammar form! Nevertheless, Amazon Q understood the vision I was going for and provided me with a comprehensive file structure, and component breakdown that became the foundation of Sketch It!
Then I asked I asked Amazon Q to create the components and files, which it provided the basic implementation. My main issue with code assistants is that the first run often ends up with bugs, requiring manual intervention. To my surprise not only on the first run did everything run smoothly but the UI and functionality looked and worked flawlessly, and was exactly how I envisioned it. Minus a few layout issues, the design and functionality were a great base to build upon.
Amazon Q helped implement key components, by key components I mean literally everything.
First, I wanted to get the canvas implemented so I asked Amazon Q chat to provide this for me:
The core functionality of my game uses Amazon Bedrock for analyzing all the players drawings. Using Claude 3.5 Sonnet, it analyzes players drawings with precision of an art critic, but without the existential crisis-inducing commentary. Here's Amazon Q implementation for it:
I used DynamoDB to store game state, leaderboards, drawings, profiles and player scores:
User authentication is handled by Amazon Cognito. So only a select few can view my beautiful drawings:
Drawings are stored in S3 for persistence:
Game is hosted and deployed on Amplify
Initially, I faced performance issues. Amazon Q helped optimize the code:
To prevent enthusiastic artists from overwhelming Bedrock's API (and my AWS bill), I implemented a rate limiter. Here's how Amazon Q helped:
The application follows a serverless architecture:
- User authenticates through Cognito
- Drawing data is captured on the canvas
- Image is analyzed by Amazon Bedrock
- Results are stored in DynamoDB
- Drawing is archived in S3
- Scores are updated and displayed on the leaderboard
- Amazon Q significantly accelerated the development process by:
- Providing accurate initial project structure
- Generating working code implementations from the chat interface or from the /dev command
- Helping debug and optimize performance issues
- Generating well documented README.md based on the codebase, as well as providing sources for further understanding.
- AWS Services Integration:
- Bedrock's Image analysis thanks to Claude 3.5 Sonnet
- DynamoDB's single digit millisecond performance is crucial for game responsiveness
- Cognito simplifies user authentication and security
- Sometimes the best ideas come from moments of shame.
On the roadmap, I have few features planned:
- Multiplayer mode (to showcase those art skills and be the best)
- A cozy draw and chat mode, with real time chat features using AppSync
- And maybe, just maybe, a special "niece mode" where the AI is extra honest (for those who can handle the truth)
Now let's reflect: What started off as a moment of shame has evolved into something pretty amazing. Thanks to Amazon Q and a suite of AWS services, we have created a game where everyone can practice and improve their drawings without fear and judgement.
If you find the cat in question does in fact look like a cat, leave a meow in the comments below.