Super Mango

A 2D pixel art platformer written in C11 + SDL2.
Play it right here in your browser — powered by WebAssembly.

WASD / Arrows Move  ·  Space Jump  ·  ESC Quit

About the Game

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.

Platforming

One-way platforms, float platforms (static, crumble, rail), crumble bridges, and sea gaps with animated water.

Enemies

6 enemy types: spiders, jumping spiders, birds, faster birds, fish, and faster fish — each with unique behavior.

Hazards

Spike rows, spike platforms, axe traps, circular saws, blue flames, and spike blocks on rails.

Mechanics

Bouncepads (3 heights), climbable vines, ladders, ropes, collectible coins and stars, lives and hearts system.

Visual Polish

Parallax multi-layer scrolling, 5-state player animation, scrolling camera, fog overlay, and pixel-perfect rendering.

Cross-Platform

Builds natively for macOS, Linux, Windows, and WebAssembly. Play on desktop or in your browser.

Documentation

README

Project overview, build instructions for all platforms, controls reference, architecture diagram, and full project structure.

Wiki — Home

Landing page with quick-start guide, project-at-a-glance, and navigation to all wiki pages.

Wiki — Architecture

Startup sequence, game loop phases, coordinate system, GameState struct, and error handling strategy.

Wiki — Build System

Makefile overview, compiler flags, build targets, prerequisites, and adding new source files.

Wiki — Developer Guide

Coding conventions, naming rules, memory safety, and step-by-step entity addition walkthrough.

Wiki — Player Module

Player lifecycle, input handling, jump and climb logic, physics update, animation state machine.

Wiki — Source Files

Complete file map of all 48 source files with descriptions of main.c, game.h, and game.c roles.

Wiki — Assets

Asset catalog with 57 sprites, player sprite sheet analysis, animation row mapping, and unused assets.

Wiki — Sounds

Sound effects catalog, audio configuration, Mix_Chunk vs Mix_Music, and adding new sound effects.

Wiki — Constants

All compile-time constants: window, canvas, timing, tiles, physics, camera, and player locals.

Downloads

Grab the latest release from GitHub Releases. Native builds must be run from the repository root so they can find the assets/ folder.

Linux
x86_64
macOS
arm64 (Apple Silicon)
Windows
x86_64 (SDL2 DLLs included)
WebAssembly
Play in browser above!