Inspiration

I'm Harindu, a solo game developer at StarFun Games in Sri Lanka. Kids draw all the time. The best drawings go on the fridge for a week and then into a drawer. Meanwhile the TV, the biggest screen in the house, mostly asks kids to sit and watch. I wanted it the other way round: TV time that starts with crayons.

What it does

Sketchlings is a family party game for Fire TV.

  1. Everyone scans a QR code on the TV with a phone. It's a web page, so there's nothing to install and no account.
  2. Each kid draws a creature on paper and snaps it. The phone cuts the drawing out of the photo, so only the sticker leaves the phone.
  3. The creature tears out of the paper on the TV with a name, stats and its own voice.
  4. Then the family races, with the phones as controllers: tap or hold to run, swipe up to jump, press ROAR.

What you draw changes how you play. Draw wings and your creature floats over the ink blots. Wheels zoom on flat ground, long legs jump higher, and a big body's ROAR knocks blots away. Little kids get a visible speed boost, and anyone can just hold to run, so a 4-year-old can race a grown-up. The menus have music, and when your racer hits an ink blot, your phone splats and buzzes.

Parents get a Grown-ups corner behind a parent gate. The AI is off until a grown-up turns it on, and they can clear the Hall of Fame. No phones? Demo party plays the whole loop with just the remote.

How I built it

  • TV app: native React Native for Vega on the Vega SDK 0.24, built and tested on the Vega Virtual Device. I used Amazon Devices Builder Tools inside my coding assistant for Vega docs, skills and crash tools.
  • Phone: a Vite + TypeScript web page.
  • Relay: a small Bun server that links the phones and the TV.
  • The persona: Claude looks at the drawing and returns a name, stats and an ability, about 1.6 cents a creature. The prompt is written for five-year-olds, and every field is checked before the TV sees it. If anything fails, or AI is off, an offline generator makes the creature from the drawing's shape and colours.
  • Voices: Kokoro, an open-source text-to-speech model, running on the relay.
  • Cut-out: I wrote a library for it, doodle-cutout. It's open source (MIT), with 42 tests, and it's my Open Source mini challenge entry.

Challenges I ran into

The hardest one: about 1 race start in 4 froze on "3". The crash report only showed the main thread, but it carried a full core dump. Reading every thread's stack showed two threads waiting on each other inside Vega's JS-thread watchdog. I changed the race so it never triggers it: one JS task per frame, no audio work during the countdown, and ink blots that appear a lane at a time. After that came 105 race starts with 0 freezes on the virtual device.

Smaller ones:

  • the simulator window crashed on macOS 27, so I ran it headless;
  • the race ran 10 times too fast on the headless simulator;
  • the build broke on a folder path with a space in it;
  • a crash in the media player when voices changed;
  • and kids' photos are the worst case for background removal: lamp light, phone shadows, faint crayon.

Each of these is in my friction log with a workaround and a suggestion.

Accomplishments that I'm proud of

two kids played it at a friend's house on real phones over my phone's hotspot. They drew, snapped and raced, and the littlest held to run instead of tapping (one hold lasted almost 10 seconds of a race). That evening AI personas were off, so their creatures came from the offline generator, not Claude. I'm also proud that the whole loop works with just the remote, and of the 149 automated tests.

What I learned

How a TV app is different from a phone game: focus and the D-pad, Back that always does the right thing, and that the simulator's own logs and crash dumps are worth reading. Also that kids don't play the way my simulation assumed. They tap slower and hold more, so the speed boost needs real tuning.

What's next for Sketchlings

Test on real Fire TV hardware, move the relay to the cloud so a family only needs the TV and phones, tune the little-kid boost with more families, and put it on the Fire TV Appstore.

Code: github.com/Harindulk/sketchlings · Library: github.com/Harindulk/doodle-cutout

Built With

  • amazon-devices-builder-tools
  • anthropic
  • bun
  • claude
  • doodle-cutout
  • ffmpeg
  • kokoro-tts
  • react-native-for-vega
  • react-native-w3cmedia
  • typescript
  • vega-sdk
  • vega-virtual-device
  • vite
Share this project:

Updates

Submission history