Skip to content

Arcade › Null Lab VR

Null Lab VR

  • 3d
  • vr
  • webxr
  • fps
  • shooter
  • arena
  • physics
  • sci-fi
0
Remix it Discord

3 plays

How to play

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

Discussion

Nobody has said anything about Null Lab VR yet. Play it, then tell sqild what you would add next.

Make your own game

Null Lab VR was built by sqild 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 Null Lab VR 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 Null Lab VR

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.

Rebuild a browser-based Three.js/WebXR game titled “Null Lab VR,” an original dark sci-fi training-bay arena shooter with a desktop FPS/shoulder-camera fallback and standalone Quest-friendly VR mode. The game should open in a nearly black, blue-black 3D arena with fog, a square metallic floor, a fine perspective grid, four enclosing dark metal walls, subtle yellow-orange ceiling light strips, and four raised cylindrical spawn plinths around the arena perimeter. Use restrained industrial colors: charcoal/navy environment, white HUD text, muted blue lighting, and amber/yellow emissive accents.

Set up a 32-by-32 playable arena bounded approximately from -16 to +16 on X and Z, with a 40-by-40 floor, five-unit-high walls, and a camera/player starting near the center. Include eight movable physics-style wooden/brown crates placed around the arena at varied positions (roughly [-4,-2], [-2,3], [3,-1], [5,4], [-6,6], [7,-5], [0,7], [-8,-6]). Crates should be pushable by the player’s body and knocked/accelerated by energy shots, with friction-like damping and bouncing/clamping at the arena boundary. They are simple blocky crates, optionally upgraded with a matching crate asset.

The player is a synthetic humanoid avatar made from simple geometric parts: dark hips, a light gray/white capsule torso, small amber chest plate, light spherical head with a dark visor, light cylindrical arms, dark legs, amber hands, and light rectangular feet. Make this body visible in shoulder-camera desktop view and in VR; hide the head in VR/first-person as appropriate. In shoulder view, place the camera offset to the player’s right and behind/above the avatar, looking toward the arena. In FPS mode place the camera at about 1.6 units high and use mouse pitch/yaw. Toggle between shoulder and FPS desktop views with V.

Core loop: show a start state with Wave 1 enemies already present but inactive until the player presses Start Run or Enter/E, then clear escalating robot waves. Wave count starts at 1; each wave spawns min(3 + wave, 8) enemies around a radius of about 13.5, distributed around the arena perimeter. Enemies are stylized blue/metallic humanoid robot/mech models (use an animated mech asset if available, with a simple blue glowing capsule-like fallback). Each enemy has 45 + 10 times the current wave hit points, moves toward the player at about 1.65 plus a small random amount plus wave scaling, faces the player, and attacks with a punch at close range. After an initial eight-second grace period/shield, enemies attack when within about 1.65 units, dealing 6 + current wave health damage about once per second. During the grace period they can approach but remain idle rather than damaging the player. When all enemies die, automatically increment the wave and spawn the next wave. Killing an enemy awards 10 score; show death animation or sink/fade it down before removing it.

Desktop controls: clicking the canvas locks the cursor; WASD or arrow keys move, Space jumps, mouse movement looks, left mouse button fires, and V toggles shoulder/FPS view. Enter or E starts the run. R restarts after death. Use gravity around -20 and a jump velocity around 8.4, with movement speed around 7.8 (optionally 10.5 while Shift is held). Keep the player inside the arena. Fire small glowing energy spheres from the camera forward direction, with a short 0.16-second cooldown, about 18 speed, 2.2-second lifetime, and bright amber/yellow emissive material. Each hit inflicts 18 damage and a small impulse; shots can hit crates or robots. Include a brief red damage flash and a metallic impact sound when shots hit if audio is available.

VR: provide a visible Enter VR button using WebXR with local-floor reference space and Quest/standalone-friendly operation. Add tracked controller models, a small amber blaster attached to each controller, and a short translucent white aiming beam. Use the left controller stick for smooth movement at about 4.2 speed and the right controller stick for snap turning in roughly 30-degree increments with a short cooldown. Support room-scale movement. Controller trigger/select fires from either hand, with cyan/blue emissive projectiles, about 20 speed and the same short cooldown. Pulling a trigger after death restarts the run. In VR, display the avatar’s arms/hands following the tracked controllers.

HUD/UI: overlay the game with translucent black rounded panels and a clean modern sans-serif style. At upper left show “NULL LAB VR” with VR highlighted amber and subtitle “Original physics sandbox shooter — desktop now, with standalone Quest WebXR support and tracked controllers.” At upper right show live rows for Health, Score, Wave, and Enemies. Start values are Health 100, Score 0, Wave 1; update enemy count to alive enemies. Center the screen with a small white crosshair in desktop mode. At bottom center show a rounded status pill with start instructions initially, then “Run live — clear the arena,” wave-clearing messaging, or death/restart instructions; while active, append the remaining grace shield time. At lower/right area provide a prominent amber Start Run button before starting and a Restart Run button only after death; hide these appropriately in VR. Include a full-screen subtle red radial damage flash. The HUD should visually match the supplied screenshot: almost black upper background, faint blue grid horizon/floor, compact white stat panel, amber accents, and minimal sci-fi presentation.

Death occurs when health reaches zero: stop active gameplay, display “You were dropped. Press R or Restart Run.” on desktop or “You were dropped. Pull a trigger to restart.” in VR, and allow a complete reset to health 100, score 0, wave 1, centered player, reset crates, and a newly spawned Wave 1. Ensure the game is an actual playable interactive 3D shooter rather than a slideshow, with animated enemies, projectile collisions, wave progression, jumping, crate physics-like responses, and both desktop and WebXR input paths.

More free browser games

Browse the whole Arcade →