Product

A game engine
for live broadcast

Kvízákov is not a show or a channel. It is software I wrote from scratch: it reads the live event stream from TikTok Live, scores the answers of thousands of viewers in real time and renders a game the whole chat plays at once.

  • In public production
  • 1,000+ hours live
  • Proprietary technology
Kvízák the mascot winking one eye
What it is

A broadcast that behaves like a game

An ordinary livestream is one directional: the host talks, the viewer watches. Kvízákov inverts that relationship. Every chat comment is a game input, every like is a scoring bonus, and every gift fires an effect the whole stream can see. Within two seconds of joining, a viewer becomes a player with a name, an avatar and a place on the leaderboard, with no install, no registration and no click outside TikTok.

Underneath sits a Python server holding the game state and a browser rendering layer whose output goes into the broadcast. A WebSocket runs between them. The whole chain from typing a comment to seeing your vote on screen takes a fraction of a second, otherwise the game would not work at all.

Real time

The server handles hundreds of comments a minute and puts them into the game before a player can put the phone down.

Proprietary content

A database of 90,018 questions across 230 topics and five difficulty levels. Every question is read out loud by the game.

Proprietary graphics

Fireworks, screen quakes, a music visualiser and a colour scheme driven by the real elevation of the sun.

Product in action

One round from start to finish

It opens with video straight from a broadcast, followed by screenshots in the order a player meets them during a game. Everything here comes from live production, nothing is staged.

Gameplay video
Live gameplay Thirty seconds from an actual broadcast. Votes from the chat stack up against the answers in real time, the round timer runs down and the like counter climbs along the bottom. The clip loops continuously.
Kvízákov screenshot: voting on the next topic with five options from A to E
The chat picks the topic Between rounds the chat gets five topics to choose from and votes on them exactly as it votes on answers, with a letter from A to E. The game offers a mix of light and more demanding subjects, here Agriculture against Nebulae and the birth of stars.
Kvízákov screenshot: the intro screen for the Agriculture topic with an illustrated farm and field
Topic announcement The chosen topic gets its own screen with artwork and a title. Each of the 230 topics has its own scene, so moving between subjects is a visual break rather than a change of text, which gives a multi hour broadcast its rhythm.
Kvízákov screenshot: a live question with answers A and B, avatars of voting players and the magic gift panel
Voting is open The topic, difficulty level and reward multiplier sit at the top. Players type a letter into the chat and their avatars stack up against the answer they picked. The magic gift panel runs down the right, the like and coin bonus bar along the bottom.
Kvízákov screenshot: the correct answer revealed in green and points credited to players
Reveal and scoring After thirty seconds the correct answer lights up green. The server scores every vote, adds bonuses for likes, speed, streaks and fan club level, multiplies the total by the question level and broadcasts the new standings.
Kvízákov screenshot: a magic gift card showing the player who won the right to choose the topic
A gift casts a spell Selected gifts work like game cards. The game pauses for a few seconds, the sender's name and avatar take over the screen and an announcement states what they just won. Here a player earned the right to choose the next topic, with a countdown back into the round.
Kvízákov screenshot: fireworks made from gift icons with the sender's name across the screen
Fireworks for a gift Every gift sets off fireworks built from the icon of the gift that was actually sent. The particles bounce according to their own shape and are computed in a dedicated Web Worker, so the main thread keeps a steady frame rate even at peak chat traffic.
Kvízákov screenshot: the top 12 players board with a side leaderboard for the day
Round results Every two topics the game announces the best players of the round along with the points earned from gifts. A running board for the day sits alongside, with avatars and scores for everyone currently playing.
Kvízákov screenshot: the top 10 player leaderboard in today, week and month columns
Player leaderboard The big board shows the ten best players across three periods side by side: today, this week and this month. The daily column resets every morning, while the monthly one rewards the players who keep coming back.
Kvízákov screenshot: the top 10 gifter leaderboard in today, week and month columns
Gifter leaderboard The same board exists for gifters, also across three periods. The biggest gifter of the day earns a crown next to their name, visible throughout the game. Support is not an anonymous line in a statistic, it is a visible standing in the community.

The best demo is the live one. You can find the game on the TikTok channel @kvizakov, where we broadcast almost every day in the afternoon and evening.

How it works

The journey of one comment

From the moment a player types a letter to the moment they see their avatar on screen, the input passes through four layers.

Layer 1

Event ingest

A client connected to the TikTok Live event stream receives comments, likes, gifts, joins and fan club memberships. Events arrive asynchronously and in bursts, so the input queue has to survive spikes without dropping a single vote.

Layer 2

Game server

A Python service holds the entire game state: the current question, the votes, gift stakes, streaks, multipliers, the treasure chest and the leaderboards. It also drives round timing and topic selection from the question database.

Layer 3

Rendering layer

A browser connected over WebSocket receives state changes and paints them onto a canvas. Heavy effects such as fireworks run in a dedicated Web Worker so the main thread keeps a steady frame rate even when chat traffic peaks.

Layer 4

Broadcast

The output of the rendering layer goes into the streaming software and from there back out to viewers. The loop closes: a player sees their own input as part of the show they are watching.

What the engine does

Key features

Everything below is finished and runs in every broadcast.

Answer recognition

The game accepts a letter or the full answer typed out in words. The text variant is matched tolerantly against typos and diacritics, and rewards the player with twenty times the base score.

Points economy

A base score, bonuses for likes, speed, streaks and fan club level, then a multiplier for the question level. Gifts convert into stakes that either return with interest or fall into a shared treasure chest.

Magic gifts

Six selected gifts work like game cards: sponsor of the day, treasure chest activation, an all day streak, a half hour multiplier for the whole chat, a bonus for everyone and a topic pick.

Leaderboards and history

Running standings, daily, weekly and monthly boards, a crown for the biggest gifter of the day and persistent player statistics across broadcasts.

Question narration

Every question and answer is converted to speech, so the game can be played by ear. The voice is synchronised with the round timer.

Live visual layer

Fireworks carrying the gifter's avatar, screen shakes on large gifts, a music visualiser reacting to the audio and a colour scheme driven by the real elevation of the sun over Czechia.

Technology

What it is built on

No framework scaffolding. Server logic in Python, rendering in vanilla JavaScript on a canvas, a WebSocket in between. Owning the code gives me control over every frame, which matters when a broadcast runs six hours straight.

  • Python
  • WebSocket
  • JavaScript
  • Canvas 2D
  • Web Workers
  • HTML and CSS
  • Linux servers
  • Speech synthesis
  • Audio processing
  • Agentic programming
Product parameters

Numbers you can verify

Questions in the database
90,018
Topics
230
Difficulty levels
5
Round length
30 seconds
Game spells
6
Days broadcast
151
Hours live
1,000+
In development since
January 2025
Development stage

Where the product stands

Kvízákov is past the prototype phase. It runs publicly, daily and with real players. The next steps take it beyond a single channel.

✅ Done and in production

  • Game engine and points economy
  • Database of 90,018 questions
  • Magic gifts and treasure chest
  • Leaderboards and fan club
  • Visual and audio layer
  • Control application for running broadcasts

🔨 Under construction

  • Tournament mode with knockout rounds
  • Growing the database to 300 topics
  • Team battles with a split chat
  • Seasonal and holiday game variants

🎯 Next step

  • Decoupling the engine from a single channel
  • A version for other creators and languages
  • A tool for managing custom question sets
  • Running in the cloud instead of on a home machine
Business model

How Kvízákov makes money

One revenue stream today, a second one ahead that does not depend on a single channel or a single platform.

Today

Virtual gifts during the broadcast

Viewers send virtual gifts during the game, and TikTok shares their value with the broadcaster. In Kvízákov every gift has a game effect: it converts into a points stake, and selected gifts act as spells that change the whole stream.

That connection is exactly why gifts do not go unnoticed here. The viewer gets a gameplay advantage and a visible tribute on screen rather than a thank you.

Where it is heading

Licensing the engine

The engine is written so that it is not tied to one channel. Questions, language, graphics and rules are separated from the game core. The goal is to offer it to other creators, brands and media companies as a finished product for their own interactive broadcasts.

The model is a subscription for running an instance plus a share of broadcast revenue. That turns a single show into a tool capable of running on hundreds of channels at once.

Why quizzes. A knowledge game is the one format that works regardless of the age of the audience, localises by swapping the question database, and naturally brings players back daily. The engine itself is not tied to quizzes.

Traction

What the product did in its first year

From the first broadcast on 1 September 2025 until today, measured on the @kvizakov channel.

0Followers
0Views
0Likes
0Comments
Kvízák the mascot cheering with paws above his head
The best demo is the live one

See the product running

We broadcast almost every day. Open the stream and watch the engine work with real players in real time, not in a recorded video.