Skip to content

Arcade › GLB Quest Lab

GLB Quest Lab

  • 3d
  • collection
  • arcade
  • custom-avatar
  • third-person
0
Remix it Discord

8 plays

How to play

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

Discussion

Nobody has said anything about GLB Quest Lab yet. Play it, then tell Christopher Queen what you would add next.

Make your own game

GLB Quest Lab was built by Christopher Queen 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 GLB Quest Lab 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 GLB Quest Lab

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 playable browser-based 3D collection arena titled “GLB Quest Lab.” Use a Three.js-style third-person follow camera: the camera sits above and behind the player at roughly (0, 8.5, 10.5), smoothly follows the player, and looks toward the player’s upper body. The scene has a dark navy background and fog, a flat circular dark-green arena about 31 units across, a visible teal floor grid, and a ring of small teal boundary pillars around the edge. Use soft sky lighting plus a strong directional light with shadows.

The player starts at the center of the arena. Provide a built-in bright mint-green capsule-like test avatar with a dark visor and a small yellow forward arrow. The avatar is normalized to the play area and rotates toward its movement direction; include a facing offset that initially points the model correctly and a “Flip facing” control that rotates the avatar 180 degrees for imported models whose forward direction is backwards. Allow the player to replace the built-in avatar by choosing a local .glb or .gltf file, or by entering a public GLB URL that supports CORS. Normalize loaded models to about 1.7 units maximum dimension, center their X/Z position, place their lowest point on the arena floor, enable mesh shadows, and use the loaded model as the player. Include a reset-model button to restore the built-in avatar. Local files are runtime-only and do not persist after reload.

The goal is to collect all 8 glowing yellow-orange faceted orbs within 60 seconds. Place the orbs in a ring-like arrangement around the arena, alternating between approximately 7.5 and 11.5 unit radii. They float around y=0.72, slowly bob up and down, rotate, emit a warm glow, and have small point lights. When the player comes within about 1.05 units of an orb, hide it and its light, increment the score, and show an “Orb collected!” message. On collecting all eight, stop the round, show “All orbs collected — you win! Press R to replay.” and gently rotate the avatar. If the timer reaches zero first, stop gameplay and show “Time’s up. Press R to try again.” Press R to reset the round, returning the score to 0, time to 60 seconds, player position to center, and all orbs to visible.

Add five low-poly dark blue-gray dodecahedron rock obstacles at fixed positions approximately (-4.5,-4.2), (4.7,-2.6), (-6.1,3.2), (2.4,5.2), and (0.5,-8.2), with varied scales and flattened vertical shapes. Rocks block the player using simple circular collision push-out. Keep the player inside a circular radius of about 14.1 units. Movement should support WASD and arrow keys, with normalized 2D X/Z input, smooth acceleration/deceleration, and a base speed around 8.5. Pressing Space triggers a short dash lasting about 0.16 seconds, increases movement speed by about 2.35x, and has a 0.65 second cooldown; ignore dash input while unavailable. On touch devices, provide a square virtual joystick at bottom-left and a large round “Dash” button at bottom-right. The joystick should control the same movement input.

HUD: show a fixed translucent dark glass panel at the top-left with “Orbs: 0/8,” a one-decimal “Time: 60.0s,” and desktop help text “WASD / arrows move · Space dashes.” Put a fixed “GLB Menu” button at top-right. The menu opens a translucent glass panel with the heading “Use your own GLB,” explanatory text about choosing a local .glb or pasting a public GLB URL, a mint “Choose GLB” file button, a secondary “Reset model” button, a URL input with placeholder “https://example.com/model.glb” and “Load URL” button, an animation clip selector and secondary “Play clip” button, a “Flip facing” button, and a status/message area. The menu can be hidden so it does not obscure the arena. Use a dark navy/teal/mint visual style, bold white typography, cyan/teal borders, translucent panels with blur, mint action buttons, yellow glowing collectibles, low-poly rocks, and responsive mobile controls.

If a loaded GLB contains animation clips, create an animation mixer, list clip names and durations in the selector, and automatically choose clips by name: idle/stand/loop for idle, walk/run/move/locomotion while moving, and dash/sprint/run/jump/attack during a dash. The Play clip button should manually preview the selected clip for at least its duration before automatic switching resumes. Status messages should report loading, errors such as unavailable/CORS URLs, successful model loading and animation count, reset, facing flips, and collection progress. Expose game state functions equivalent to getGameState and setGameState for score, timer, game-over/win state, player position/velocity, facing offset, loaded-model state, dash cooldown, current animation, and input inspection.

More free browser games

Browse the whole Arcade →