A 2D pixel art platformer written in C11 + SDL2.
Play it right here in your browser — powered by WebAssembly.
Super Mango is a classic side-scrolling platformer built as a learning resource for C and SDL2 game programming. Every line of code is commented to explain the why, not just the what — making it ideal for developers who want to learn how 2D games work under the hood.
The game renders at 400×300 logical pixels scaled 2× to an 800×600 window, uses delta-time physics for frame-rate-independent movement, and follows a clean init → loop → cleanup architecture.
One-way platforms, float platforms (static, crumble, rail), crumble bridges, and sea gaps with animated water.
6 enemy types: spiders, jumping spiders, birds, faster birds, fish, and faster fish — each with unique behavior.
Spike rows, spike platforms, axe traps, circular saws, blue flames, and spike blocks on rails.
Bouncepads (3 heights), climbable vines, ladders, ropes, collectible coins and stars, lives and hearts system.
Parallax multi-layer scrolling, 5-state player animation, scrolling camera, fog overlay, and pixel-perfect rendering.
Builds natively for macOS, Linux, Windows, and WebAssembly. Play on desktop or in your browser.
Project overview, build instructions for all platforms, controls reference, architecture diagram, and full project structure.
Landing page with quick-start guide, project-at-a-glance, and navigation to all wiki pages.
Startup sequence, game loop phases, coordinate system, GameState struct, and error handling strategy.
Makefile overview, compiler flags, build targets, prerequisites, and adding new source files.
Coding conventions, naming rules, memory safety, and step-by-step entity addition walkthrough.
Player lifecycle, input handling, jump and climb logic, physics update, animation state machine.
Complete file map of all 48 source files with descriptions of main.c, game.h, and game.c roles.
Asset catalog with 57 sprites, player sprite sheet analysis, animation row mapping, and unused assets.
Sound effects catalog, audio configuration, Mix_Chunk vs Mix_Music, and adding new sound effects.
All compile-time constants: window, canvas, timing, tiles, physics, camera, and player locals.
Grab the latest release from
GitHub Releases.
Native builds must be run from the repository root so they can find the assets/ folder.