Mobile Eggbert
A faithful C++ port of Speedy Blupi โ the Windows Phone XNA platform game from 2013. Multi-platform, open-source, and developer-friendly.
What is Mobile Eggbert?
Mobile Eggbert is a side-scrolling platform game in which the player controls Blupi through 100ร100-tile levels, collecting treasures, driving vehicles, using power-ups, and reaching the goal exit. The game contains 78 levels organized into chapters, with a tutorial and a final bonus stage.
The codebase originated as the Windows Phone 8 XNA game Speedy Blupi (2013), was decompiled, migrated to MonoGame, and subsequently rewritten in C++ using CNA โ a custom XNA-compatible C++ framework built on top of SDL3.
Quick Facts
Language & Framework
- Primary language: C++23
- Framework: CNA (XNA 4.0 compatible, SDL3-based)
- Build system: CMake 3.21+
- Executable:
WindowsPhoneSpeedyBlupi
Target Platforms
Linux is the primary development target. Web and Android use SDL_Renderer backend.
Game Features
Documentation Map
| Section | Description |
|---|---|
| History | How the codebase evolved from C# XNA โ MonoGame โ C++ โ CNA, and how it relates to Planet Blupi / Free Eggbert |
| Build System | Step-by-step build instructions for Linux, Windows (MinGW), Web (Emscripten) and Android |
| Configuration | LEGACY vs MODERN mode, FPS settings, resolution scaling, time and speed scale factors |
| Architecture | Repository layout, dependency graph, key class responsibilities |
| Gameplay | Phase state machine, vehicles, power-ups, enemies, keys and doors |
| API: Enumerations | All enum types: BlupiAction (88), ObjectType (203+), SoundChannel (93), PixmapChannel (17), โฆ |
| API: Classes | Decor, Game1, Pixmap, InputPad, GameData, Worlds, Tables โ purpose and key members |
| Data Formats | World file text format (100ร100 grid), save data binary layout (640 bytes, 3 gamer slots) |
| Asset Files | All PNG sprite sheets, WAV sounds, world level files โ naming conventions and sizes |
| Cheat System | Hidden unlock gesture, 9 UI buttons, full list of 22 cheat codes |
| Localization | French, English and German UI strings in MyResource.cpp |
| Performance | 4 known O(n) issues in Decor.cpp with suggested fixes |
| Known Issues | Open bugs and TODO items from TODO.md, ENUMS.md, and DOXYGEN_DOCUMENTATION_PLAN.md |
Repository Quick Reference
mobile-eggbert/
โโโ include/WindowsPhoneSpeedyBlupi/ โ all .hpp headers
โ โโโ def/ โ enum headers (BlupiAction, ObjectType, โฆ)
โ โโโ decor/ โ decor-specific enums
โโโ src/WindowsPhoneSpeedyBlupi/ โ all .cpp implementations
โโโ Content/ โ PNG sprites + WAV sounds
โ โโโ backgrounds/ โ 37 background PNGs (32 themes + UI)
โ โโโ icons/ โ 8 sprite-sheet PNGs
โ โโโ sounds/ โ 92 WAV sound effects
โโโ worlds/ โ 78 level text files
mobile-eggbert-libgdx) also exists and shares the same game logic design.