← ~/work2025

apple-catcher

JavaScriptPhaser

// problem

Apple Catcher addresses the challenge of creating an engaging arcade experience using simple mechanics and minimal controls. The game requires players to catch falling apples while managing an increasing game speed that gradually raises the difficulty. As the pace accelerates, players must rely on quick reactions, spatial awareness, and precise movement to keep up with the growing challenge. The primary gameplay problem is balancing the collection of valuable apples with the avoidance of rotten ones. Catching a rotten apple results in the loss of a life, making careful positioning just as important as fast reactions. To help players survive longer, the game rewards consistent performance by granting an additional life for every 100 apples caught, up to a maximum of three lives. By combining progressively increasing difficulty, risk-and-reward decision-making, and a life-based survival system, the game encourages players to improve their reflexes and achieve higher scores through repeated play and skill development.

// approach

  1. 01The approach taken for Apple Catcher was to create a simple but engaging arcade experience using Phaser.js, focusing on responsive controls, increasing difficulty, and a clear risk-and-reward gameplay loop.
  2. 02The game was designed around a minimal control system where players move a basket horizontally to catch falling apples while avoiding rotten apples. The gameplay gradually becomes more challenging by increasing the speed and frequency of falling objects, requiring players to improve their reaction time and accuracy as they progress.
  3. 03A life-based scoring system was implemented to add an additional layer of strategy. Players lose a life when catching rotten apples, while successfully catching 100 apples rewards an additional life, up to a maximum of three lives. This encourages players to balance aggressive collection with careful decision-making rather than simply catching every falling object.
  4. 04The game was developed using Phaser.js to manage the game loop, object interactions, player movement, collision detection, and dynamic difficulty scaling. Pixel-art visuals and simple mechanics were used to create an accessible arcade experience while maintaining replayability through score improvement and skill progression.

// media

img_01apple-catcher-game.jpg
A screenshot of the Apple Catcher home screen on a mobile browser.

A screenshot of the Apple Catcher home screen on a mobile browser.

img_02apple-catcher-image-in-game.png
A screenshot of the Apple Catcher game being played on a dekstop brwoser

A screenshot of the Apple Catcher game being played on a dekstop brwoser

// outcome

  1. Developed a fully functional arcade-style browser game using Phaser.js, featuring responsive player controls, falling objects, collision detection, and dynamic difficulty progression.
  2. Created an engaging gameplay loop where players must balance speed and accuracy by catching normal apples while avoiding rotten apples that reduce their remaining lives.
  3. Implemented a life-based survival system that increases player engagement by rewarding consistent performance with an additional life for every 100 apples caught, up to a maximum of three lives.
  4. Designed a progressive difficulty system that increases the challenge over time by accelerating gameplay, requiring players to improve their reaction time, timing, and decision-making skills.
  5. Produced a simple and accessible user experience through minimal controls, pixel-art visuals, and straightforward mechanics while maintaining replayability through score improvement.
  6. Gained practical experience developing interactive game features in Phaser.js, including game states, object movement, user input handling, and gameplay balancing.
// ready

Ready to start your own project?

$ ./start-conversation