Three.js game · Portrait mobile
LANE GUNNER:
A THREE.JS 3D NEON LANE SHOOTER GAME
Lane Gunner is a free Three.js 3D browser shooter. Your ship auto-fires up a neon road: swipe lanes, blast HP drones, fly through +N and xN gates and beat bosses. WebGL, no download.
· Game overview · Hosted by Indie Forge Studio
Phones: swipe or tap left / right · Desktop: arrow keys or A / D · Space boost · P pause · M mute
What Is Lane Gunner?
Lane Gunner is a free portrait 3D arcade shooter for phones and desktop. A blue and white hover ship sits at the bottom of a three-lane neon road under a purple dusk sky and a city skyline. The guns fire on their own, so your only job is picking the lane: line up with red armored drones to shred their HP, slide away from the ones you cannot kill in time, and fly through gates that grow your firepower.
Waves get tougher every six rows, and every 10th wave brings a boss that blocks the whole road. 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, where you can play it at indieforgestudio.com/games/lane-gunner/. It is free with no download.
How to Play Lane Gunner
- Move: swipe or tap the left or right side of the screen to change lanes. On desktop use the arrow keys or A and D.
- Shoot: your ship fires automatically up its lane. Every drone shows its HP, so you can see what you can break in time.
- Gates: pink +N gates add firepower and green xN gates multiply it. Shooting a gate first can raise its number.
- Boost: kills charge the Boost meter. Tap BOOST (or press Space) for a few seconds of faster, harder-hitting fire.
- Survive: a drone reaching you in your lane, a boss shot or a boss reaching the bottom ends the run. P pauses and M mutes.
How Lane Gunner Is Built with Three.js
Lane Gunner is a single self-contained ES module on a self-hosted Three.js build. Everything is made from Three.js primitives with flat-shaded Lambert materials, so it stays light on phones and loads with no model files.
- The road is a dark plane with glowing pink and green edge strips and scrolling dashed lane dividers. A canvas gradient sky, box-built city silhouette and flattened dodecahedron clouds give the purple dusk look.
- The hover ship is a group of a
ConeGeometryfuselage, sweptBoxGeometrywings, an octahedron cockpit and a pulsing engine glow. - Drones are pooled groups (an icosahedron or armored box with a glowing red core). Each one carries a
Spritewith its ownCanvasTexturethat redraws the HP text and bar only when the HP changes. - Gates use the same canvas-texture trick for the +N / xN sign, and bullets, enemy shots and sparks are fixed-size pools so nothing is allocated during play.
- Bullets use swept collision (previous z to current z) against each target lane, so fast shots never tunnel through a drone at low frame rates.
Code from Lane Gunner
Firepower is one number. The game turns it into up to seven visible bullet streams and splits the damage across them, so a huge multiplier stays readable on screen:
function fire() {
const guns = Math.min(MAX_VISIBLE_GUNS, S.power);
const dmg = S.power / guns * (S.boostT > 0 ? 1.6 : 1);
const spread = Math.min(1.1, 0.24 * (guns - 1));
for (let i = 0; i < guns; i++) {
const b = take(bullets); if (!b) break;
const off = guns === 1 ? 0 : -spread / 2 + spread * i / (guns - 1);
b.active = true; b.dmg = dmg;
b.m.position.set(S.x + off, 0.7, SHIP_Z - 0.9); b.m.visible = true;
}
}
From games/lane-gunner/game.js
Flying through a gate either adds to or multiplies that firepower:
function addPower(g) {
S.power = g.type === 'mul'
? Math.min(999, S.power * g.val)
: Math.min(999, S.power + g.val);
}
From games/lane-gunner/game.js
Built for Mobile and Portrait Play
Lane Gunner is designed for one thumb on a phone held upright. It runs in a centered 9:16 portrait frame on every screen, keeps the top of the road clear with small score and wave chips in the corners, and uses pointer events so touch and mouse share one code path. How to Play opens a scrollable help panel that pauses rendering, and the pause menu offers Resume or Main Menu.
To stay smooth on phones the renderer caps the device pixel ratio, every moving object comes from a pool, and the game pauses itself when you switch tabs or apps.
Play Lane Gunner
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 Gunner?
Press Play. Your hover ship fires on its own, so you only pick the lane. Swipe or tap the left or right side of the screen to switch between three lanes, or use the arrow keys or A and D. Shoot red drones before they reach you and fly through gates to power up. Space fires Boost, P pauses and M mutes.
Is Lane Gunner free and does it need a download?
Yes. Lane Gunner is a free Three.js WebGL 3D browser game. It runs instantly on phones and desktop with nothing to download or install.
What do the +N and xN gates do?
A pink +N gate adds N to your firepower and a green xN gate multiplies it. More firepower means more bullet streams, up to seven, and harder hits. Shooting a gate before you reach it can raise its number, but those bullets are not hitting drones.
How is the score counted?
Every point of damage you deal scores a point. Each kill adds the drone's starting HP plus 25 times the wave number, and a boss is worth 1,000 times the wave number. Your best score is saved in your browser.
Is there a boss?
Yes. Every 10th wave is a boss wave. The boss spans all three lanes, fires red shots down the lanes and slowly closes in until you destroy it.
Is Lane Gunner built with Three.js?
Yes. Lane Gunner is a Three.js 3D browser game rendered with WebGL. It uses low-poly flat-shaded meshes, canvas-texture HP labels and gate signs, pooled bullets and a perspective camera framed for portrait phones.
Where can I play Lane Gunner?
Lane Gunner is developed by Shane Brumback and hosted by Indie Forge Studio. Play it free at indieforgestudio.com/games/lane-gunner/.








