Three.js game · Portrait mobile

LANE RUNNER DROP:
A THREE.JS 3D RUNNER GAME

Lane Runner Drop is a free Three.js 3D browser game. Swipe across three lanes, grab gems, dodge barriers and build combo multipliers. Built with WebGL.

· Game overview · Hosted by Indie Forge Studio

Lane Runner Drop: a blue hooded runner sprints down a three-lane road past gems and striped barriers in a low-poly canyon (Three.js 3D browser game)

⚒ By Indie Forge Studio

Phones: swipe left / right, or tap the left / right half of the screen · Desktop: ← → or A / D · P pause · M mute

What Is Lane Runner Drop?

Lane Runner Drop is a free portrait 3D runner for phones and desktop. Swipe between three lanes, scoop up gem lines, dodge striped barriers and keep your combo alive as the road gets faster. Your best score is saved on your device.

It is a Three.js game that runs as a 3D browser game on WebGL, developed by Shane Brumback and hosted by Indie Forge Studio. It is free with no download or sign-up.

How to Play Lane Runner Drop

  • Switch lanes: swipe or tap left and right to move across the three lanes.
  • Collect gems: every gem is worth 10 points times your multiplier.
  • Build combos: 5 gems in a row raise your multiplier, up to x10. Skip a gem line and the combo resets.
  • Avoid barriers: one hit ends the run. Tap anywhere to restart instantly.
  • Go faster: the road speeds up the longer you survive.

Controls: Phones: swipe left / right, or tap the left / right half of the screen · Desktop: ← → or A / D · P pause · M mute

How Lane Runner Drop Is Built with Three.js

Lane Runner Drop is plain JavaScript with no build step. It loads Three.js r160 as an ES module from a local copy of three.module.min.js and draws everything with a single THREE.WebGLRenderer. All the 3D models are built in code from Three.js primitives, so there are no 3D model files to download. Here is what the game code actually does:

  • The road, sand and lane markings are PlaneGeometry and thin BoxGeometry meshes, with THREE.Fog hiding where the road ends.
  • The low-poly canyon is built from simple shapes: DodecahedronGeometry rocks, OctahedronGeometry crystals, cylinder-and-icosahedron trees and ConeGeometry mountains, all randomly scaled.
  • The runner is a THREE.Group of box meshes for the torso, head and limbs, so the whole character moves between lanes as one object.
  • Textures such as the barrier stripes are drawn into a CanvasTexture set to the sRGB color space, so no image files have to load.
  • Sound effects are made on the fly with the Web Audio API (AudioContext oscillators) instead of audio files, and your best score and mute setting are stored in localStorage.

Code from Lane Runner Drop

These short snippets are copied straight from the game's source code.

Changing lanes

The runner's lane index is clamped to the three lanes (0 to 2).

function move(dir) { if (S.mode !== 'play') return; const n = Math.max(0, Math.min(2, S.lane + dir)); if (n !== S.lane) { S.lane = n; beep(660 + dir * 60, 0.05, 'triangle', 0.04); } }

From games/lane-runner-drop/game.js, lines 205–205

Swipe detection

A swipe is detected once the pointer has moved more than 28 pixels sideways, then the runner moves one lane in that direction.

frame.addEventListener('pointerdown', (e) => {
  if (e.target.closest('.icon-btn')) return;
  audio();
  touch = { x: e.clientX, y: e.clientY, used: false };
  if (S.mode !== 'play') primaryTap();
});
frame.addEventListener('pointermove', (e) => {
  if (!touch || touch.used || S.mode !== 'play') return;
  const dx = e.clientX - touch.x;
  if (Math.abs(dx) > 28) { move(dx > 0 ? 1 : -1); touch.used = true; }

From games/lane-runner-drop/game.js, lines 212–221

Built for Mobile and Portrait Play

Lane Runner Drop is designed for phones held upright. The game runs in a 9:16 portrait frame, and on desktop it plays in a centered portrait frame. Input uses pointer events, so the same code handles touch and mouse, with keyboard controls on desktop.

To keep it smooth on phones, the renderer caps the device pixel ratio, and the game pauses itself when you switch tabs or apps. Phones that support it give a short vibration as feedback.

Play Lane Runner Drop

Free, in your browser, no download. Hosted by Indie Forge Studio.

More games: Browse all 3D games

Frequently Asked Questions

How do I play Lane Runner Drop?

Swipe left or right (or tap the left or right half of the screen) to switch between the three lanes. On a keyboard use the arrow keys or A and D. Grab gems and avoid the striped barriers.

How does the combo multiplier work?

Every gem you collect in a row adds to your combo. Each 5 gems raise the multiplier by one, up to x10. Letting a gem line pass in another lane resets the combo.

Is Lane Runner Drop free and does it work on phones?

Yes. It is free, needs no download and is built portrait-first for phones. On desktop it plays in a centered portrait frame.

Is my best score saved?

Yes. Your best score is saved in your browser with localStorage, so it is still there next time you play on the same device.

Can I turn the sound off?

Yes. Tap the speaker button or press M to mute. Your choice is remembered.

Is Lane Runner Drop built with Three.js?

Yes. Lane Runner Drop is a Three.js 3D browser game rendered with WebGL, so it runs in any modern web browser on desktop or mobile with no download or install.

Who hosts Lane Runner Drop?

Lane Runner Drop is developed by Shane Brumback and hosted by Indie Forge Studio. You can play it free on its game page.

Can I learn to make a game like this?

Yes. Browse the free Three.js tutorials.

Browse Games by Genre

Free browser games by Shane Brumback, grouped by genre: FPS, Educational, Arcade, Board game, Sport, Fantasy and Simulation. Each game keeps its release category too.

FPS Games

Educational Games

Board game Games

Sport Games

Fantasy Games

Simulation Games