An interactive educational game built with Godot 4.4 that teaches children basic arithmetic and cognitive skills through animal-themed mini-games using the scientifically-proven spaced repetition of gamified challenges.
Safari Paths guides young learners through a series of progressively challenging tasks led by two animal characters — Monkey and Elephant. Children earn points by completing math problems, sorting exercises, and pattern-matching tasks, reinforcing foundational skills through play.
Welcome Page → Monkey Level (2 tasks) → Level Transition → Elephant Level (2 tasks) → End Scene
- Four Educational Mini-Games — Addition, Subtraction, Fruit Sorting, and Letter-Color Matching
- Two Themed Levels — Monkey Level and Elephant Level, each with unique tasks
- Progressive Scoring System — earn up to 1,400 points across all tasks
- Audio & Visual Feedback — background music, sound effects, and animated character expressions
- Restart Support — replay the entire game with a full state reset
| Task | Level | Type | Description |
|---|---|---|---|
| Addition | Monkey | Math | Solve random addition problems (numbers 1–5) with multiple choice |
| Fruit Sorting | Monkey | Classification | Identify and pick ripe fruits from a grid |
| Letter Matching | Elephant | Pattern Matching | Match 5 letters to their corresponding colors |
| Subtraction | Elephant | Math | Solve random subtraction problems with multiple choice |
- Engine: Godot 4.4
- Language: GDScript
- Rendering: GL Compatibility
- Testing: GUT (Godot Unit Testing)
- Resolution: 1200 x 650 px
- Godot 4.4 or higher
git clone https://github.com/lastiroko/Safari-Paths.git
cd Safari-Paths- Open Godot 4.4
- Click Import and select the
project.godotfile - Press F5 or click the Play button to run
Tests use the GUT addon (included in addons/gut/). Open the project in Godot and run the test scenes from the GUT panel.
├── scripts/
│ ├── globals/
│ │ └── GameManager.gd # Global state manager (points, audio, game state)
│ ├── levels/
│ │ ├── Welcome_Page.gd # Main menu
│ │ ├── Monkey_Level.gd # Monkey level controller
│ │ ├── Elephant_Level.gd # Elephant level controller
│ │ ├── level_transition.gd # Between-level transition
│ │ └── end_scene.gd # Game completion screen
│ └── tasks/
│ ├── addition_task.gd # Addition mini-game
│ ├── fruit_sort_task.gd # Fruit sorting mini-game
│ ├── Match_Letters_Task.gd # Letter-color matching mini-game
│ └── Subtraction_Task.gd # Subtraction mini-game
├── scenes/ # Godot scene files (.tscn)
├── assets/ # Audio, images, fonts
├── tests/ # Unit, integration, system, and performance tests
├── documentation/ # Project documentation (PDFs)
└── project.godot # Godot project configuration
The game follows a scene-based MVC architecture with signal-driven communication:
- GameManager (Singleton) — global state, points, and audio management
- Level Controllers — manage character animations, HUD, and task loading
- Task Scripts — self-contained mini-game logic that emit
task_completedsignals - Scenes — UI layouts defined in
.tscnfiles
The project includes a comprehensive test suite:
| Type | Coverage |
|---|---|
| Unit | Individual task logic, GameManager state |
| Integration | Scene transitions, audio system, multi-system interaction |
| System / E2E | Full gameplay flow (0 → 1,400 points) |
| Error Handling | Null references, edge cases |
| Regression | Known bug fixes |
| Performance | Benchmark validation |
Detailed project documentation is available in the documentation/ directory:
- Project Documentation
- Requirements Documentation
- Architectural Documentation
- Test Documentation
- User Documentation
- Acceptance Documentation
Developed by SDI Blue Whales — Software Engineering, SoSe 2025