Inspiration
Almost every draw-and-guess game on the market forces players into written communication. That's why I always thought it wasn't safe for my son to play games like these. I asked myself why anything had to be written at all, and that question turned into this game mechanic.
What it does
At its core, Pictoo matches players completely at random. Players are given a set of four images and have to pick one of them to draw. When drawing time is over, all players work out, one drawing at a time, which of the four given images each of the other players drew. Everyone draws at the same time and everyone guesses at the same time. A correct guess scores for both the guesser and the artist so what stands out isn't competition so much as cooperation through drawing. Not every round works that way: in word rounds you draw a word instead of a reference image, and both kinds come mixed together in the same match.
Because nobody types, a room doesn't need a shared language. The game runs in ten languages, and in word rounds every player sees the word in their own language.
How we built it
Game development isn't my profession, so I built this largely with AI assistance. I used Flutter on the client side and Node.js + TypeScript on the backend. I also used AI for some of the sound files. The images are entirely AI-generated, and they're still being produced.
Purchases run through the RevenueCat SDK. Pictoo Pro is a subscription with weekly, monthly and yearly plans, and it unlocks the cosmetics and a larger daily allowance of hints. RevenueCat webhooks write every entitlement change to my own server, so a player's subscription survives reinstalling the app, signing in on another device, or handing the account over.
Challenges we ran into
Guessing difficulty and explaining by writing. Players shouldn't be able to guess the other drawings easily, and artists shouldn't be able to explain by writing on the canvas. Preventing writing in the drawing area entirely isn't possible, so I built the image sets from pictures that look very similar to each other with only small differences. This way players also have to see the differences between the images in order to guess correctly. Don't even think about writing "CAT" on the canvas, because all of the images are cats. 🙂
Fair scoring when someone goes AFK. If a player drops out, they ruin someone else's round. The principle I settled on was: the cost of going AFK is paid by the player who went AFK. If you don't draw, the guessers still score and you don't; if you don't guess, the artist still scores.
Abuse. There's a report button at the end of the game for players who misuse the canvas or use inappropriate player names. On top of that, if a player is reported repeatedly across different games, the server suspends them automatically and files a record into the moderation screen.
Point farming. For players who cheat by joining the same room together and feeding each other points, I designed several mechanics: IP-based tracking, a limit on how often the same players can end up in the same room consecutively, and device information to prevent multiple accounts from being opened on the same device.
Children and adults in the same game. A game about drawing attracts younger players, and that changes what I'm allowed to do with ads. Pictoo asks for a birth year once, on a neutral screen that doesn't hint at a right answer and can't be skipped. Only the resulting age band is stored, on the device, and it never reaches my server. Children and teenagers get age-appropriate ads with no advertising identifier and never see a consent form, because consent can't be taken at that age. The screen also decides where I'm allowed to offer the subscription at all.
Accomplishments that we're proud of
The mechanic itself. I started from a worry that I couldn't let my son play games like this and ended up with a draw-and-guess game that works without chatting. The thing I was worried about isn't switched off or filtered; it simply isn't part of the game.
Solving the cheating problem with design instead of rules. I couldn't stop players from writing on the canvas, so I made writing useless by building the image sets out of pictures that only differ in small details. It's the solution I'm happiest with, because it made the game harder and more fun at the same time.
Turning the scoring into cooperation. Making a correct guess score for both the guesser and the artist is one line in the rules, but it changes what players are trying to do to each other. They're not trying to fool anyone, they're trying to be understood.
Finishing it. Game development isn't my profession. Building a real-time multiplayer game, taking it all the way to a store release, and doing it on my own is the part I didn't expect to get to.
Taking moderation seriously from the start. Reporting, automatic suspension after repeated reports across separate games, measures against point farming, and an age gate that keeps advertising identifiers away from children are all in the first release, not features I told myself I'd add later.
What we learned
The best fix for unwanted behavior is usually design, not enforcement. I couldn't prevent players from writing on the canvas, so I made writing worthless. I couldn't prevent players from going idle, so I made sure idling only costs the person doing it. Every time I stopped trying to forbid something and started trying to make it pointless, the solution got simpler.
A scoring rule decides what the game is about. Scoring a correct guess for both the guesser and the artist is a single line in the rules, but it's the reason the game feels like cooperation rather than competition. I didn't have to design the mood of the game separately, the scoring did it.
AI gives you speed, not consistency. Generating images is fast now. Producing sets that are similar enough to be genuinely hard and different enough to be fair is still slow, and it's still my decision to make rather than something I can hand over.
In a multiplayer game, you have to assume abuse from the start. Point farming and misuse of the canvas weren't surprises that showed up after launch, they're what happens whenever a scoring system meets strangers. Building reporting, suspension and anti-farming alongside the game was much easier than it would have been to bolt them on afterwards.
Asking a player's age changes the product, not just the ad settings. I expected the age gate to be a switch on the ad SDK. It turned out to decide which screens a player sees and what I'm allowed to sell them, and the safest default is to assume the youngest player until they tell me otherwise.
What's next for Pictoo
Perhaps the most challenging part of the game is image production and selection. However fast generating images with AI has become, I'm still working on producing consistent image sets so that players don't get bored of seeing the same pictures. I could also set up a system that runs an AI on the game server to automatically review players' drawings and temporarily suspend a player when necessary. More languages will follow the ten the game ships with. Based on feedback, I may add new avatars, emotes, and possibly leaderboards to the game.
Built With
- claude
- comfyui
- flutter
- node.js
- postgresql
- revenuecat
- socket.io
- stable-audio
- typescript

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