02GeoQuest

Playable Map Studio — turn any QGIS vector layer into an educational quiz game • v1.0.3

1. Overview

02GeoQuest transforms QGIS vector layers into interactive geography games, educational quizzes, data-familiarisation tools, and public-engagement challenges. It features 8 game modes, 3 difficulty levels, 3 joker types, a persistent leaderboard, a full class-mode with student profiles and CSV export, and a self-contained offline HTML game exporter. The entire system operates locally inside QGIS with zero external dependencies, no API keys, no accounts, and no pip-installed packages.

The plugin is a dock-based quiz studio with four pages: Play (the active game), Builder (configuration), Scores (leaderboard), and Share (HTML export and class mode).

2. Game Modes

ModeDescriptionRequiresHTML Export
Map Hunt ("locate")Click the named feature on the QGIS canvasAny features
Value Duel ("bigger")Two features: pick the one with the larger numeric valueNumeric fieldYes
Distance Guess ("distance")Estimate the ground distance between two placesGeographic centroidsYes
Know the Shape ("silhouette")Identify a polygon feature from its simplified outline4+ polygonsYes
Attribute Guess ("attr_guess")Estimate a numeric attribute via a slider2+ numeric valuesYes
Ranking ("ordering")Order 3–4 features from highest to lowest value3+ distinct valuesYes
Nearest Neighbour ("nearest")Identify which feature is closest to a reference4+ valid recordsYes
Blind Zoom ("blind_zoom")Canvas zooms to a feature; name it2+ records

Map Hunt and Blind Zoom are excluded from HTML export because they require QGIS canvas interaction.

3. Difficulty Levels

LevelTimerChoicesTolerance
Easy60 s30.40
Medium30 s40.25
Hard15 s60.10

Tolerance governs the acceptable error ratio for distance guesses and attribute slider estimates. A tolerance of 0.25 means the estimate must be within ±25% of the true value.

4. Jokers

Three Joker Types, Each Usable Once Per Quest

Default joker pool: 3 total (configurable 0–9).

5. Scoring Engine

Points are computed per answer as:

Timed-out answers are automatically wrong regardless of correctness. The game ends when rounds are exhausted or lives reach zero. The session summary includes: total score, rounds played, correct count, accuracy percentage, best streak, lives remaining, and total duration.

6. Builder Controls

SectionControlOptions
Source LayerLayer picker, label field, numeric fieldSingle vector layer (layer A)
Second LayerCheckbox toggle, duplicate controlsOptional cross-layer play (layer B)
Challenge Mix8 checkboxesModes auto-filtered by data availability
DifficultyThree toggle buttons (Easy / Medium / Hard)Affects timer, choices, tolerance
Quest RulesTitle combo with presets, rounds (3–60), lives (1–10), jokers (0–9)Preset titles: My Map Quest, City Explorer, Data Detective, etc.

7. Workflow Guide

  1. Open the 02GeoQuest dock from the toolbar.
  2. On the Builder tab, select a vector layer. Optionally add a second layer for cross-layer play.
  3. Choose a label field (for display names) and an optional numeric field (for value-based modes).
  4. Select game modes from the 8 checkboxes. Modes lacking sufficient data are auto-greyed.
  5. Set difficulty and quest rules (rounds, lives, jokers).
  6. Click Start the quest. The dock switches to the Play page.
  7. Questions appear in sequence with the appropriate input widget (multiple-choice buttons, slider, spinbox, or map pick).
  8. The timer bar changes colour at 50% (yellow) and 25% (red). Use jokers as needed.
  9. After the last round or when lives reach zero, the final score is saved to the leaderboard.

8. Class Mode and Student Profiles

Teacher Tools

Student profiles: Create named profiles with emoji avatars (10 choices: map, cityscape, globe, compass, pin, mountain, wave, leaf, star, fire). Profiles are stored as JSON in QgsSettings.

Session tracking: Select an active profile before playing; each completed quest is logged with player name, avatar, quest title, difficulty, score, accuracy, best streak, correct count, rounds, duration, and date. Sessions persist across QGIS restarts (last 300 sessions retained).

CSV export: Export all sessions to a UTF-8 BOM CSV file for grading and record-keeping via standard csv.DictWriter.

9. Offline HTML Game Export

Self-Contained, Zero-Dependency HTML

Exports a single HTML file with an embedded JavaScript game engine that fully reimplements the question generation and scoring logic. Excludes Map Hunt and Blind Zoom modes. Features: dark mode with CSS custom properties and localStorage persistence, responsive single-column layout below 560 px, score animation with CSS keyframes, progress dots (violet=pending, green=correct, red=wrong), ranking via Up/Down buttons, results screen with replay, and XSS-safe JSON embedding (angle brackets escaped to Unicode sequences). Zero CDN, zero network calls, zero tracking.

10. Technical Notes

11. Literature

  1. Prensky, M. (2001). Digital Game-Based Learning. McGraw-Hill.
  2. Gee, J. P. (2003). What video games have to teach us about learning and literacy. Computers in Entertainment, 1(1), 20. DOI: 10.1145/950566.950595
  3. Hamari, J., Koivisto, J., & Sarsa, H. (2014). Does gamification work? — A literature review of empirical studies on gamification. Proceedings of the 47th Hawaii International Conference on System Sciences, 3025–3034. DOI: 10.1109/HICSS.2014.377
  4. Kapp, K. M. (2012). The Gamification of Learning and Instruction: Game-Based Methods and Strategies for Training and Education. Pfeiffer.