Skip to content
Games by Harring

Making of, AI

Quiz Fight: how I generated and curated 500,000+ trivia questions with AI

The making of Quiz Fight's content engine — an AI generation and validation pipeline that built a 500,000-question library across 185 topics, and the live 1v1 duels it powers.

Halfdan Harring

Halfdan Harring

Indie game developer · Aarhus, Denmark

Trivia games have a dirty secret: the question bank is the product, and almost every bank is too small. You feel it the moment a question repeats — the game stops being a test and becomes a memory exercise. Quiz Fight was my attempt to kill that problem with scale: over 500,000 questions across 185 topics, generated and curated by a pipeline I built for exactly this purpose.

Generation is easy. Trust is hard.

Asking an AI model to write trivia questions is trivial. Getting questions you can ship is a different job, because a quiz question can fail in ways that are invisible until a player hits them: ambiguous phrasing, two defensible answers, outdated facts, regional assumptions, or difficulty that doesn’t match its label.

So the pipeline treats generation as the cheap step and validation as the real work:

  1. Structured generation. Every question is produced against a strict schema — topic, format, correct answer, distractors, difficulty band — never free text.
  2. Automated validation. Format checks, duplicate and near-duplicate detection against the existing pool, distractor sanity (no synonyms of the correct answer), and answerability checks.
  3. Difficulty scoring. Questions get a difficulty estimate so a live duel can serve both players a fair, comparable set.
  4. Curation passes. Topics get human review waves — I read samples, kill weak patterns, and feed the failure modes back into the generation prompts.

The result is a library so deep that repeats effectively don’t happen. Fresh every match was the design goal, and the pool size is what makes it true.

The photo modes

The modes I’m proudest of turn photographs into questions. What Country? shows you a real photo — you read the landscape, the architecture, the signage, the light — and guess where it was taken, scored by how close you land. What Year? does it for time: the cars, the fashion, the technology in a historical photo are the clues. These modes work because the “question” is the image itself; the pipeline’s job is metadata and fair scoring bands.

Live 1v1 on Firestore

The flagship mode is a live duel against a real person: five questions, fastest correct answer wins. Matchmaking, room state and scoring all run on Firestore’s realtime listeners — the same boring-but-bulletproof backend I used for HeadToHead. Private rooms take 2–10 players for game night. Solo modes cache locally and work offline on a plane.

The app is React + Vite + Tailwind wrapped with Capacitor for iOS — one codebase from prototype to App Store, which is how new topics and modes ship at web speed.

Did it work?

Quiz Fight sits at 4.4 stars on the App Store, and the review that made my week said the questions “never repeat”. That sentence was the entire thesis of the project, confirmed by a stranger.

Quiz Fight: Guess What? is free on the App Store — find me in a live duel.