Devlog · May 14, 2026 · 4 min read
Designing reusable platformer levels with ScriptableObjects
How Hard Jumper uses data-driven level definitions to support procedural layouts, four biomes, progression, and multi-jump mechanics.
Hard Jumper needed to support multiple biomes and a progression curve without turning each new level into a separate programming task.
Moving configuration out of gameplay code
ScriptableObjects hold level and biome configuration so content can be adjusted without rewriting the systems that assemble it. Forest, city, snow, and sand environments can share generation rules while keeping their own assets and obstacle combinations.
Movement as the constant
The single, double, and triple-jump controller is the stable core of the experience. Procedural layouts vary the challenge around that movement vocabulary, while validation rules keep generated jumps achievable.
Progression without duplication
A structured unlock system introduces harder stages over time. Because level data is modular, difficulty can be tuned through spacing, obstacle selection, biome rules, and collectible placement instead of maintaining duplicated scene logic.
The result
The architecture made content iteration faster and kept the codebase easier to extend. It also provided a useful exercise in separating reusable runtime systems from designer-facing configuration.