Skip to content

Arcade › Neon Drift

Neon Drift

  • 3d
  • endless
  • runner
  • arcade
  • synthwave
  • neon
0
Remix it Discord

13 plays

How to play

Click the game above and it runs right here in your browser. No download, no installer, no account needed. Oleg Sidorkin built it with Cinevva, so it works on a phone or a tablet too.

Discussion

Nobody has said anything about Neon Drift yet. Play it, then tell Oleg Sidorkin what you would add next.

Make your own game

Neon Drift was built by Oleg Sidorkin with the Cinevva game creator: describe the game you want in chat, watch it get built, and play it in your browser minutes later.

Remix Neon Drift opens the real game in the creator and forks its actual files, chat and design doc, so you start from the code rather than from a description.

Read the build brief for Neon Drift

Cinevva's analyzer read this game's design doc and its source, then wrote the brief below. "Make your own" hands it to the game creator as your opening message, so you start from a real spec rather than a one-line idea.

Create a browser-playable endless 3D neon tunnel runner titled “Neon Drift.” Use a Three.js-style perspective camera looking forward down a dark cylindrical tunnel, with the player fixed near the camera and the tunnel rushing toward them. The scene should be almost black with a subtle deep-purple radial/fog glow centered in the distance. Build the tunnel from about 70 evenly spaced, bright glowing cyan-to-purple torus rings, each large enough to frame the play area; recycle rings after they pass the camera so the tunnel is endless. Add subtle ring rotation and exponential fog for depth, plus restrained afterimage/motion trails that become stronger as speed rises or boost is active. Use a synthwave palette of cyan, magenta, violet, and black, with emissive materials and simple lighting.

The player is a small glowing cyan hover-dart: a pointed low-poly cone oriented along the tunnel direction, with a translucent magenta spherical glow around it. It sits at z=0 and can drift in a bounded 2D rectangle: horizontal position x roughly -2.35 to 2.35 and vertical position y roughly -1.85 to 1.85. Implement smooth, inertial movement rather than instant movement: A/D or Left/Right accelerates left/right, W/S or Up/Down accelerates up/down, with velocity damping and a slight visual tilt based on velocity. The camera gently follows the player’s x/y position while looking slightly toward the player, maintaining a forward tunnel view.

The player automatically advances through the tunnel at a base speed of 8 world units per second. Gradually ramp the base speed upward over time (about 0.06 per second), and display speed as a multiplier relative to the starting speed. Holding Space activates a boost while energy remains: multiply movement speed by about 1.65, drain energy at about 40 per second, and make the player glow/trails slightly more. When not boosting, energy regenerates at about 14 per second up to 100. Start with 100 energy. The score continuously increases while alive, approximately speed times 1.35, and should be shown as an integer.

Procedurally spawn objects ahead in depth at z positions stepping backward by 3 units, maintaining a field extending roughly 120 units ahead. Spawn cyan low-poly energy orbs randomly with about 22% chance per slot. Orbs are small rotating icosahedrons, distributed within x about ±2.1 and y about ±1.6; animate a slight bob. When the player reaches an orb depth near the camera and overlaps it, remove it, add 40 score, and restore 22 boost energy, capped at 100. Play a short bright high synth note on collection.

Also spawn magenta neon blocker bars with a chance that increases with speed, starting around 8% per slot and rising toward roughly 30% at high speed. Each blocker is a glowing thin rectangular bar about 1.7 wide and 0.22 high, placed randomly around x ±1.6 and y ±1.2 and slightly rotated in the XY plane. Give blockers a mild drifting wiggle as they approach. When a blocker reaches the player depth and the player’s circular collision radius (about 0.32) intersects its rectangular AABB, immediately end the run; one collision is fatal. Play a low crash/thud sound, stop motion-blur trails, save the best integer score in local storage, and show a centered “Crashed” message with “Score [value] — press R to restart.” There is no win state: the game is endless until collision.

Add a fixed HUD overlay in the upper-left with four translucent dark rounded pills labeled Score, Best, Speed, and Boost, using small uppercase labels, pale cyan/white text, cyan-tinted borders, blur, and soft shadow. Under it show the hint “A/D or Left/Right to drift - Space to boost - R to restart”. Start Score at 0, show Best loaded from local storage, Speed as 1.00x, and Boost as 100. Center the crash overlay only after a collision. Press R to reset all player state, score, speed, energy, tunnel ring positions, and spawned objects for a fresh run. Any click or key press should initialize browser audio. Use minimal Tone.js-like synth audio: a bright note for orb collection, occasional short rising/high tone while boosting, and a low bass thud on crash. Ensure resize support and fill the entire browser viewport. The visual result should match the supplied screenshot: concentric cyan neon rings dominating the frame, a dark purple/black tunnel center, and bright cyan low-poly geometric objects, with magenta accents for hazards and player glow.

More free browser games

Browse the whole Arcade →