Inspiration

At home, the TV has one remote and a few people on the couch. Most games on it need one person who knows the controls while everyone else waits. I wanted a story a family could watch together and still play: a child takes the remote for a scene, then hands it back.

What it does

ToonPG is a playable webtoon RPG for families on Fire TV. Watch the story together and take turns playing the hero with one remote. Characters walk, talk and act out each episode on one continuous stage.

  • It plays itself. Choose a story and it starts like a show.
  • Press any arrow to join in. You are now walking the hero. OK talks, picks things up and confirms. There is no restart and no separate game mode.
  • Pass the remote. Back → Pass the remote pauses the story and shows the next player only the current goal and three buttons. Watch together hands the hero back to the automatic player whenever someone gets stuck.
  • Saved on the TV. Leave any time and continue later from the same place.
  • English, Korean and Japanese for the menus and the story text.

Three first episodes are live, each built around a different way to play with a remote:

  • Little Lantern Lodge (about 6 minutes, for young children): welcome unusual guests to a lakeside lodge and search a leaf pile with a lantern.
  • The Martial Clan's Youngest Daughter (about 12 minutes): a family drama with a sword spar on a tactics grid. Blue tiles move, red tiles strike.
  • Neon Backstage (about 12 minutes, for teens and parents): a boy, a hidden band and his father's unfinished song, played as five-lane rhythm rehearsals on the D-pad.

The story never branches. How you play changes; the story you share does not.

Creators can add new playable episodes with YAML, images and sound. They submit through MCP with creator access; AI-assisted review helps a human administrator decide what is ready to publish.

How I built it

  • Fire TV / Vega OS: a small React Native for Vega app hosts Amazon's official Vega WebView. The Release package loads only https://toonpg.com/tv.
  • TV interface: a remote-only /tv route with spatial focus, D-pad/OK/Back/Play-Pause/Menu handling and the hand-off menu, in the same Next.js 16 / React 19 app as the mobile site.
  • Engine: a TypeScript simulation drives a PixiJS 8 renderer. People and the automatic player send input through the same router, which is why taking over and giving back are instant, and why every checkpoint can be resumed exactly.
  • Stories are data: YAML, images and sound. A compiler checks them, and a bot must play every episode to the end before it can be published.
  • Testing on Vega: automated checks press real remote buttons on the Vega Virtual Device with inputd-cli.

Challenges

  • Matching the Vega SDK, WebView and virtual-device OS versions before the first package would launch.
  • A held OK button arrives as repeated key presses, so one press could act on the next screen too. The app now tracks each physical press until it is released.
  • The virtual device quit silently about 50 seconds after starting; its crash dumps showed the emulator's own hang detector firing while the Mac was busy.
  • Making painted characters walk with alternating feet and stay readable from the couch.

What I learned

On a TV, "watch", "join", "pause" and "give it back" need to be designed as features, not edge cases. Treating the automatic player as just another person holding the remote made all of them simple and testable.

What's next

Testing on physical Fire TV hardware with families, more episodes for different ages, and better tools for writers who want to publish their own playable chapters.

The demo was recorded on the Vega Virtual Device at real speed; the capture is silent, so each story's original score was added in editing.

Play: https://toonpg.com/tv · Make a story: https://toonpg.com/docs

Built With

Share this project:

Updates

Submission history