Nano Platformer
A 12-Stage 2D Platformer Game with Upgrades, Boss Fights & Adaptive Difficulty
Deliverables / Skills Utilized
Python
Pygame
JSON
Sprite Animation
๐ The Problem
Wanted to build a complete game from scratchโnot a tutorial clone, but a fully-featured platformer with real game design: progression systems, enemy AI, boss fights, and player-driven difficulty.
The goal was to learn game development fundamentals by shipping something end-to-end: physics, state machines, animation, game balance, and persistence.
๐ก The Solution
A 12-stage 2D platformer with a full campaign arc: escalating enemy types, a shop/upgrade system, a multi-phase boss fight, and an adaptive assist system that adjusts difficulty based on player performance.
Built entirely in Python with Pygameโno game engine, no shortcuts.

๐ ๏ธ Technical Implementation
โ๏ธ Physics Engine
- Custom gravity and acceleration system with configurable constants
- AABB collision detection for platforms, walls, and entities
- Jump mechanics with variable height (tap vs hold) for precise control
- Friction and air resistance for natural-feeling movement
๐พ Enemy AI System
- Walkers: Patrol paths with edge detection and turn behavior
- Shooters: Ranged enemies with projectile spawning and cooldown timers
- Boss: Multi-phase fight with burst-fire patterns, health thresholds, and enrage mechanics
- State machine architecture for clean AI behavior transitions
๐ Upgrade System
- Vitality: Max HP increases and passive health regen
- Blade: Damage multiplier and attack range extensions
- Tempo: Movement speed and jump height boosts
- 3 tiers per upgrade path, purchased with in-game currency from defeated enemies
๐๏ธ Adaptive Difficulty
- Tracks player deaths per stage and cumulative performance
- Activates assist mode after repeated failures: extra HP, damage reduction, extended checkpoints
- Scales back assistance when player improvesโnever feels patronizing
๐ JSON-Based Level System
- Each stage defined as a JSON file: platforms, enemy spawns, collectibles, and triggers
- Hot-reloadable during development for rapid level design iteration
- Supports custom tilesets and background layers per stage
๐พ Persistent Save System
- Player progress, upgrades, and currency saved to local JSON
- Checkpoint system within stages for respawn on death
- Full campaign state preserved across sessions
๐บ๏ธ Campaign & Boss Fights


๐ฏ Key Features
- ๐ฎ 12-Level Campaign: Progressive difficulty from tutorial to boss fight
- ๐พ 3 Enemy Types + Boss: Walkers, shooters, and a multi-phase boss encounter
- ๐ Shop & Upgrades: 3 upgrade paths (Vitality/Blade/Tempo) with 3 tiers each
- ๐๏ธ Adaptive Assist: Dynamic difficulty adjustment based on player performance
- โ Checkpoint/Respawn: Mid-stage checkpoints with instant respawn
- ๐จ Sprite Animation: AI-generated character and environment assets with frame-by-frame animation
- ๐พ Persistent Save: Full progress saved across sessions
๐ Technical Highlights
| Metric | Detail |
|---|---|
| ๐ฎ Campaign Stages | 12 |
| ๐พ Enemy Types | 3 + Boss (Walker, Shooter, Boss) |
| ๐ Upgrade Paths | 3 (Vitality, Blade, Tempo) |
| ๐๏ธ Upgrade Tiers | 3 per path (9 total) |
| ๐พ Save Format | JSON (portable, human-readable) |
| ๐ผ๏ธ Art Pipeline | AI-generated sprites + manual cleanup |
๐ฏ Why This Matters
This project demonstrates:
- โ๏ธ Game Physics: Custom gravity, collision detection, and movement systems from scratch
- ๐ค State Machines: Clean enemy AI architecture with behavior transitions
- โ๏ธ Game Balance: Upgrade pricing, enemy scaling, and adaptive difficulty tuning
- ๐จ AI Art Pipeline: Generating game assets with AI tools and integrating into sprite sheets
- ๐๏ธ Systems Design: Interconnected systems (combat, economy, progression) working together
๐ง Stack
- Python: Core game logic and systems
- Pygame: Rendering, input handling, and game loop
- JSON: Level definitions, save data, and configuration
- Sprite Animation: Frame-by-frame animation with AI-generated assets