You launch a PvP quiz game, but the very first match reveals a problem: the timer diverges between players by 2–3 seconds due to system clock differences. Players complain about unfairness, and the rating drops by 30%. Another typical pain point is content: if questions are stored in a bundle, you can't update them without publishing a new version. We solve these issues at the architecture level. Our team has 7 years of experience in mobile games and has delivered over 30 quiz projects.
Why a server-side question database is critical for a quiz game
Storing questions locally leads to stagnation. You can't add content or fix errors quickly. A server-side architecture solves this: questions are loaded in batches by category, allowing real-time updates. Basic question structure:
{ "id": 1, "category": "history", "difficulty": 3, "question_text": "In what year did...", "answers": ["1991", "1992", "1993", "1994"], "correct_index": 0, "explanation": "Explanation of the answer", "added_date": "2024-03-01" } Difficulty influences question selection in a match: start at 2–3, increase on correct answers — adaptive difficulty without a complex algorithm. Localization also goes through the server: questions are stored with language_code, and the client requests the desired locale. This is more efficient than Unity's built-in Localization system because the content is dynamic. We use REST API or Addressables Remote Content — both approaches guarantee fresh content and enable A/B testing. For example, in one project we increased retention by 30% by updating question packages weekly.
| Technology | Scalability | Latency | Cost | Flexibility |
|---|---|---|---|---|
| Firebase Realtime Database | up to 200k concurrent connections | medium | free up to 1 GB | limited |
| Photon Realtime | up to 1000 players per room | low | paid subscription | high (custom Room Properties) |
How to ensure fair PvP with timer synchronization
The main technical challenge of quiz PvP is a synchronized timer. If the timer runs on the client, system clock differences give an unfair advantage. The solution: the server publishes questionStartTimestamp (Unix ms), and clients compute remaining time as deadline - serverTime. Server time is synchronized via an NTP-like mechanism on connection.
Technology choice for real-time synchronization depends on scale. Firebase Realtime Database is easy to integrate and suitable for prototypes and small games. Photon Realtime gives more control via custom Room Properties and low latency, but requires a paid subscription. For large projects with tournaments, a custom WebSocket server is justified — it's more expensive and time-consuming but provides full control over scaling. We recommend Photon Realtime as a sweet spot: it's proven in dozens of commercial projects, and its setup takes 1–2 days.
Daily challenges and retention
Photon Realtime and Firebase Functions make it easy to organize daily challenges with a global leaderboard. All players receive the same questions generated from a date seed. A server function publishes a new set at 00:00 UTC. This encourages user return and creates healthy competition. On average, retention after implementing daily challenges increases by 25–40%. Additionally, we implement level progression (experience points and category unlocks) and weekly tournaments — these mechanics boost engagement.
How we do it: development stages
| Stage | Duration | Result |
|---|---|---|
| Analytics and prototyping | 2–3 weeks | Define core loop, MVP |
| Architecture design | 1–2 weeks | Tech stack, DB schema |
| Implementation | 4–8 weeks | Client and server code |
| Testing | 2–3 weeks | Load testing for PvP, unit tests |
| Deployment | 1 week | Publish to App Store and Google Play |
Timelines: a quiz game with one mode, question categories, basic PvP — 2–3 months. With daily tasks, tournaments, profile progression — 4–6 months.
What's included in the work
- Architectural documentation (DB schema, API specification).
- Client source code for iOS and Android (or cross-platform).
- Server part (Firebase or Photon) with security rules configuration.
- Access to developer consoles (App Store Connect, Google Play).
- Admin training on uploading questions.
- Technical support for 1 month after release.
Budget for a typical project: $25,000–$45,000; savings on rework — up to $5,000 due to proper architecture from the start.
Common mistakes when developing quiz games
1. Storing questions on the client — impossible to update content without a patch. 2. Timer on the client — unfair matches. 3. Lack of server-side answer validation — cheaters bypass client logic. 4. Ignoring localization — losing up to 50% of the audience. Our experience shows that addressing these mistakes upfront saves up to 3 months of rework.Contact us to discuss details and get a consultation on stack selection. Order quiz game development — we'll help avoid common mistakes and launch a game that retains users.







