Fafense Adventure
A practical joke turned fully-fledged web platformer, built from scratch to explore the fundamentals of 2D game mechanics, level design, and WebGL deployment
2 min read
Overview
Sometimes the most complex projects start for the simplest reasons. Fafense Adventure began as a practical joke aimed at a friend, but quickly escalated into a serious opportunity and excuse to explore the end-to-end game development pipeline. I wanted to see what it actually took to transition from a consumer of games to a creator, building real mechanics, art, and level design entirely from scratch.
Mechanics & Level Design
As a beginner to Unity, a 2D platformer provided a structured foundation to learn the engine’s physics and scripting. I built a custom player controller that moved away from basic presets, focusing instead on tight, responsive gameplay.
The core gameplay loop features:
- Custom Physics: Granular control over running momentum, variable jump heights (short taps vs. long holds), and a fluid wall-jumping mechanic.
- Thematic Progression: A structured 5-level campaign where each stage introduces distinct art directions and new environmental interactions.
Technical Implementation
Developing this solo over a single month meant I had to balance programming with entirely unfamiliar disciplines.
- Engineering vs. Art: While writing the C# scripts for state machines and movement logic felt natural, animating sprites frame-by-frame in Adobe Photoshop was a massive, time-consuming challenge.
- WebGL Deployment: The target platform was strictly the browser. Compiling the Unity build to WebGL and successfully bridging it with a production HTML environment was a major technical hurdle that almost derailed the final release.
A Nod to Retro Game Design
Because the game was designed exclusively for web browsers, relying on traditional local save files was unreliable. Drawing inspiration from classic console eras, I implemented an old-school Password Save System.
When a player finishes a level, they are given a unique code. If they close the browser, they can simply input that code later to load directly into their current stage. It solved a modern browser constraint using a nostalgic, retro mechanic.
Retrospective
Building Fafense Adventure was a crash course in project scoping. I started without a clear functional or artistic vision, relying heavily on trial and error to find the game’s identity.
While that lack of planning made the process overwhelming at times, it was incredibly rewarding. I learned that designing a good level is an entirely different skill from programming one. Ultimately, this project left me with a playable web game and a profound respect for the multi-disciplinary engineering required to build the games we play.
Project Gallery
