Skip to content
Home
Projects
Fafense Adventure — cover
Personal·Game Development2020

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

Languages
Frameworks & Libraries
Infrastructure & DevOps
Tools & Platforms

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

See it in action