Ninja Runner

Category: Lifestyle & Game

Project URL: https://app-b8p9nfr2x729.appmedo.com

Inspiration

I wanted to build a simple game that is easy to understand but still fun to replay. My goal was to create a short-session endless runner with clear controls, fair obstacle warnings, useful power-ups, and leaderboard competition.

I also wanted to test how far I could use MeDo to turn an initial game idea into a complete playable project with gameplay logic, UI polish, database saving, assets, and debugging.

What it does

Ninja Runner is a browser-based 3-lane endless runner game. The player controls a ninja, moves between lanes, jumps over obstacles, collects coins, uses power-ups, and competes on a global leaderboard.

Main features include:

  • Three-lane movement
  • Jump action
  • Keyboard controls
  • Distance and coin score tracking
  • Global leaderboard
  • Player run history
  • Game Over summary
  • Guide page for controls, obstacles, and power-ups

The game includes several obstacle types:

  • Stone obstacles block lanes and force the player to move or jump.
  • Green falcons move quickly and require fast reaction.
  • Blue falcons behave more intelligently by moving toward the player’s path.
  • Shuriken projectiles show a red warning first, then fly straight or diagonally toward the player’s captured position.

The game also includes three power-ups:

  • Shield protects the player from one crash.
  • Magnet helps collect nearby coins.
  • Double Coin increases coin value for a limited time.

Each power-up has a duration bar, so the player can clearly see how long the effect remains active.

How we built it

I developed the project through chat with MeDo using an iterative workflow:

  • Planned the gameplay in text first: I described the running direction, 3-lane path, controls, jumping, scoring, obstacles, and power-ups.
  • Let MeDo execute the plan: After the gameplay idea was clear, I asked MeDo to build each part step by step.
  • Uploaded assets later: I added the ninja, background, obstacles, power-ups, and shuriken image after the core plan was ready.
  • Iterated feature by feature: I improved movement, collision, leaderboard, guide page, background, obstacle behavior, and UI/UX polish through focused prompts.
  • Debugged bugs one by one: When issues appeared, I used MeDo chat to fix specific problems instead of rewriting the whole project.
  • Best generated feature: The dynamic obstacle system, especially the shuriken and blue falcon behavior. The shuriken shows a warning first, then flies straight or diagonally toward the player’s captured position, giving the player a fair chance to react.

I used Supabase as the main API integration for the global leaderboard and player run history:

  • Leaderboard logic: The global leaderboard updates only when a player gets a new high score.
  • Run history: Every completed run is saved so the player can review previous attempts.
  • Assets: I used uploaded visual assets for the ninja, background, obstacles, power-ups, and shuriken, then connected them to gameplay through MeDo prompts.
  • Plugins: I did not use a separate MeDo plugin; the main external integration was Supabase.

Challenges we ran into

  • Balancing difficulty: I had to tune obstacle speed, spawn timing, warning duration, and collision distance so the game felt challenging but still fair.
  • Collision feel: Some obstacles looked like they hit too early or too late, so I adjusted hitbox distance to better match what the player sees.
  • Leaderboard saving: I fixed a first-run history bug by changing the save order so the leaderboard row is created before saving the game session.
  • Asset publishing issues: Some assets worked in preview but not after publishing, so I simplified the gameplay background into one full scrolling image for better stability.
  • Prompt workflow: I learned that small focused prompts are safer than large prompts, especially when fixing bugs close to the deadline.

Accomplishments that we're proud of

  • I completed a playable endless runner game from an initial text plan.
  • I built multiple obstacle types with different behaviors instead of only simple static obstacles.
  • I added power-ups with visible duration bars so players can understand their active effects.
  • I connected the game to Supabase for leaderboard and run history.
  • I fixed the first-run save bug so new players can have their runs saved correctly.
  • I polished the UI, guide page, Game Over flow, and gameplay background.

What we learned

  • Game feel depends on small details like warning timing, collision size, movement speed, and UI feedback.
  • Dynamic obstacles are more fun when they are dangerous but still fair.
  • Saving leaderboard and history data needs careful database flow, especially when one table depends on another.
  • Asset handling can behave differently in preview and published builds, so stability matters.
  • Working with MeDo was more effective when I used short focused prompts instead of asking for too many changes at once.

What's next for Ninja Runner

Future improvements could include:

  • More background environments
  • Background music
  • More obstacle patterns
  • More power-ups
  • More sound effects
  • Challenge modes

Built With

Share this project:

Updates

Submission history