Inspiration

Most stream games ask viewers to install something or learn a command list. I wanted a game where anyone in chat can join in about two seconds, just by typing 1, 2 or 3. Tabletop streams already get chat shouting "ROLL THE DICE", so I built a game around that feeling: the whole chat is the adventuring party, and the dice decide their fate.

What it does

Chat Quest is a dungeon crawl that Twitch chat plays together. The party starts with 20 HP and goes through 7 rooms.

  • Each room offers three choices, each with a difficulty number (DC).
  • Chat has 30 seconds to vote by typing 1, 2 or 3.
  • The winning choice blinks on screen so everyone sees what they're rolling against.
  • A d20 (a dice roll from 1 to 20) decides the outcome. The difference between the DC and the roll heals or hurts the whole party. HP can never go above 20, and at 0 HP the run ends.
  • Every viewer who votes or chats earns points, with a streak bonus for voting in back-to-back rounds.
  • A live Hall of Heroes shows each person's rank and points, plus what they earned this round.
  • Four adventurers on screen cheer or fall as the party's HP changes, and a quest map tracks the 7 rooms.
  • An OBS overlay view lets streamers drop the game straight onto their stream.

How we built it

It's a plain web app built with HTML, CSS and vanilla JavaScript, with no frameworks and no build step. Chat is read through Twitch's anonymous chat connection, so streamers don't have to log in or give permissions. Type a channel name, click "Go live", and chat votes count. A demo mode with simulated viewers lets anyone try the game without a stream. The code is split into clean files for the page, styling, game data, game logic and chat handling.

[Add the tools you used here, for example: "Built with OpenAI Codex, which helped set up the Twitch chat connection."]

Challenges we ran into

  • Timing: I tuned the pacing so chat can read the room, vote, see the chosen DC, watch the roll and see the result without the game feeling slow.
  • Fair scoring: I wanted lurkers, casual chatters and regular voters to all get something, without letting one person dominate. That led to points for voting, chatting and streaks.
  • Showing changes clearly: Viewers had to see exactly why HP changed and where their points came from, so I added HP change popups and per-round point labels.
  • Testing without a stream: Live chat can't be reached from every environment, so I built a demo mode that behaves like a busy chat.

Accomplishments that we're proud of

  • A game anyone can join by typing a single digit.
  • A live points system where every viewer can see their own score at every moment.
  • A polished quest look with a party of heroes, a progress map and a rolling d20.
  • A streamer-ready overlay, with no installs and no logins.

What we learned

Small details change how a chat feels. Showing the difficulty before the roll, and showing exactly how HP and points changed, makes viewers care about each decision. I also learned that making a game easy to join matters more than adding features.

What's next for Chat Quest

  • Twitch EventSub and channel point rewards, so viewers can spend points on boosts or revives.
  • Bits and subscription events as bonus rolls.
  • More rooms, boss fights and random events, plus streamer-made custom rooms.
  • Scores that carry over between streams, with weekly leaderboards.
  • Sound effects, animations and themed adventures for different kinds of streams.

Built With

Share this project:

Updates

Submission history