Inspiration 🌟📚🎮
We grew up on platformers and Saturday-morning quiz bees—so we mashed them together. EduQuest was born from a simple “what if?”: what if learning felt like exploring Hyrule or Paldea? We wanted a game where curiosity is the power-up, not just a score. We also wanted creators/teachers to ship content without AI or cloud dependencies—just CSV + sprites and go. The result is a cozy, retro-feeling adventure where a wrong answer doesn’t punish you; it opens Wikipedia and nudges you to level up IRL.
What it does 🗺️🧠✨
Lets players walk around subject-themed worlds (Maths, Science, History, CS).
Talk to NPCs with unique dialogues (e.g., “Hey Pikachu”, “Barb jatt”, “KAMEHAMEHA!!!”) before a mini-quiz.
Supports MCQ, True/False, and Fill-in questions via CSV files (no AI, no internet needed to play).
On mistakes, it opens the relevant Wikipedia topic—instant feedback loop 🎯.
Features an Options screen with an NPC count slider (1–5) and subject toggles (choose the worlds to play).
Runs a sprite check before each world and, if anything’s missing, shows a helpful guidance screen.
Plays selected subjects sequentially, tallies a total score, and shows a victory screen 🎉.
Comes with an Instructions page (press I) that explains controls, sprite naming, and CSV format.
How we built it 🛠️🐍🎨
Stack: Python + Pygame (no external ML/AI).
Architecture:
Game controller manages states: menu, options, instructions, world, missing, success.
World scene renders background, player, NPCs, proximity detection, and quiz lifecycle.
QuizOverlay handles dialogue → question flow, input handling for MCQ/TF/fill, and correctness checks.
Filesystem-first content: assets/quizzes/.csv for questions; assets/.png/.jpg for sprites & backgrounds.
Data contracts:
CSV headers: question, answer, type, topic.
Sprites: player.png and npc__.png (e.g., npc_computer_science_1.png).
UX niceties:
Soft overlays, clear prompts, and gentle resets.
Consistent font sizing and color-coded themes per subject.
Safety rails:
Missing-sprite detector with actionable instructions.
Fallback questions if CSV is absent, so the build never feels “broken.”
Challenges we ran into 🧩🐛💥
File naming & portability: Ensuring cross-platform path handling and enforcing lowercase/underscore file rules.
Flexible content without code changes: Designing CSV and sprite conventions that are simple yet expressive.
Input juggling: Supporting smooth keyboard input for movement + answering + overlay interactions without ghosting.
State orchestration: Seamless transitions between dialogue → quiz → scoring → next NPC → next world.
UX for failures: Turning “missing sprites” and “bad CSV” into helpful experiences (instructional screens, fallbacks).
Accomplishments that we're proud of 🏆🎯🌈
A fully offline, creator-friendly pipeline—drop CSVs and PNGs, and you’ve got a game world.
Wikipedia-as-teacher loop that transforms mistakes into discovery moments 🌐✨.
A polished Instructions hub (press I) that reduces friction for new creators and players.
Clean, extensible code: adding a new subject is as simple as adding a CSV and sprites.
Thematically fun NPC dialogues that make subjects feel personable and memorable.
What we learned 🧭💡📈
Good learning games reward curiosity, not just correctness—instant referencing beats pop-up scolding.
Frictionless authoring (CSV + sprites) unlocks collaboration with teachers, parents, and clubs.
Clear constraints (naming, folders) + great documentation save hours of support questions.
Minimalistic game states and separation of concerns in Pygame make iteration fast and safe.
“Small polish” (tooltips, overlays, consistent fonts) matter enormously for perceived quality.
What's next for EduQuest: The Adventure of Knowledge 🚀📚✨
Co-op or classroom mode 👥: hot-seat turns, shared scoreboard, teacher dashboards.
Level progression & badges 🏅: streaks, mastery tiers, hidden collectibles tied to topics.
Timed challenges & boss quizzes ⏱️🐉: escalate tension with time-limited puzzles.
Creator toolkit 🧰: a GUI to validate CSVs, preview sprites, and build worlds with drag-and-drop.
Rich question types 🧩: ordered lists, image-based questions, categories/subtopics with weights.
Accessibility & localization 🌍: remappable controls, dyslexia-friendly fonts, and multi-language CSVs.
Exportable reports 📊: summarize performance by topic and suggest Wikipedia reading paths.
Log in or sign up for Devpost to join the conversation.