Hey devs, Ishant here ๐
Quick question before we start:
Why does every web game need to be 200MB?
And why does my phone start sounding like a jet engine the moment I open them?
So I did something irresponsible........again!
In ~6 hours, fueled by coffee and poor decisions,
I built Metro Runner โ a full 3D endless runner that runs entirely in the browser.
No Unity.
No Unreal.
No Godot.
Just Three.js, React, and audacity. ๐
๐ฆ Size Flex (Chrome Users Donโt Know This LOL)
Hereโs the funny part.
Metro Runner is a PWA.
Which means:
- Chrome already ships the engine
- Three.js is shared
- Assets are all CSS and magic
๐ Actual download size: a few hundred KBs
Yes.
KBs. Not MBs. Not GBs.
You can literally:
- open the site
- install it
- and boom โ game on your home screen ๐ป๐ฑ
Chrome users donโt even realize they already downloaded half the engine when they installed Chrome. (I was one of them ๐๐)
๐ฎ What Even Is Metro Runner?
Itโs a 3D endless runner with:
- Three-lane movement
- Jump / slide mechanics
- Increasing speed
- Coins
- Power-ups
- A shop
- Multiple biomes
- And a UFO abduction event (weโll get there ๐)
Think Subway Surfers, but:
- browser-native
- actually 3D
- and way more unhinged.
๐ Play it here: https://metrorunner.vercel.app/
๐ง โDid you use a game engine?โ
No ๐
This is:
- React Three Fiber (Three.js)
- Custom game loop
- Manual collision logic
- Fake speed via world movement
- Delta-time based motion
The player barely moves forward.
The world rushes toward you.
Classic illusion.
Still undefeated.
๐ Trains, Ramps, and a Bug That Became a Feature ๐
Hereโs where it gets funny.
At high speed, sometimes:
- the player hits a train ramp
- trips
- gets launched
- and dies ๐
I tried fixing it:
- Sweep collision
- Alignment tweaks
- Debugging at speeds that felt illegal
Did it work?
No.
So I did what every sane developer does:
If you canโt fix a bug โ promote it to gameplay.
๐ง Lore Update:
Some train ramps are slightly misaligned with coaches.
Which means:
- at high speed
- sloppy jumps
- bad timing
๐ You get knocked off and game over.
Now itโs not a bug.
Itโs โskill-based punishment.โ ๐ค
๐ Train Systems (a.k.a. pain generators)
- Regular trains (static + moving)
-
Triple Train Ramp sections (~10%)
- All lanes blocked
- Ramps on top
- Huge coin reward
-
Train Hopping sections (~10%)
- Jump between trains across lanes
- Miss once = back to menu ๐
Trains have real collision.
No ghost clipping.
๐ฝ Alien Abduction Event (I Lost Control Here)
Random event during runs:
- UFO appears
- Green lights
- Tractor beam
- Screen fades
- You teleport to a new biome
- +25 free coins
- Temporary invincibility
Is it realistic?
No.
Is it funny watching a runner game suddenly turn into sci-fi?
Absolutely. ๐ธ
โก Power-Ups (Yes, Those Particles Are REAL)
| Power-Up | Effect |
|---|---|
| ๐งฒ Magnet | Pulls coins |
| ๐ Super Boots | 2.0ร jump |
| ๐น Hoverboard | One free crash |
| ๐ Headstart | Rocket boost |
| โ๏ธ Multiplier | Double coins |
| ๐ Jetpack | Fly above obstacles |
And yes:
- those particles
- wind streaks
- speed lines
Theyโre not โvisual effectsโ.
Theyโre selling the illusion of speed.
Jetpack particles come from the jetpack, not vibes ๐คก
๐ช Shop System (I Went Too Far)
- Buy power-ups with coins
- Upgrade magnet duration (up to 6 levels)
- Choose starting power-ups
- Inventory persists via
localStorage
Close the tab.
Reopen later.
Your grind is saved. ๐ค
๐ Biomes
- ๐ Subway
- ๐๏ธ City
- ๐ฒ Forest
Biome switches are forced, so runs donโt feel copy-pasted.
๐ฅ Easter Egg
Click the game title in the menu.
Thatโs all Iโll say ๐
๐ง Tech Stack (a.k.a. bad decisions)
- React + TypeScript
- Three.js (via React Three Fiber)
- Custom collision logic
- Particle systems
- PWA (installable, offline-friendly)
- Saved state via
localStorage
No engine.
No physics library babysitting.
Just math, timing, and vibes.
๐ง Why I Built This
I wanted to see:
Can a real 3D game live comfortably in the browserโฆ and still feel good?
Turns out โ yes.
And it fits in KBs.
Which still feels illegal.
๐ Feedback / Roasts Welcome
If you play it:
- tell me where you died
- tell me which ramp betrayed you
- tell me if the UFO jump-scared you
Now excuse me while I pretend this was โjust a quick experiment.โ
โ Ishant ๐ค



Top comments (0)