Played ✓
EXP-05of 10Exploration
Salvage Dive
Swim into a flooded city, grab what glows and make it back before your air runs out.
One brief went to frontier models. Here's what each of them built. Pick a version and play.
Played ✓
Played ✓
Played ✓
Played ✓
Gemini 3.8 Flash
High effort · coming soon
BuildingYour verdict
Which one did you like best?
Play at least two versions, then come back and vote. They open in a new tab.
The brief
Every model got exactly this.
468 words, copied straight from the prompt file. No follow-up hints, no model-specific tweaks.
- Stack
- Three.js, TypeScript, Vite
- Assets
- None. All generated in code
- Controls
- Keyboard and mouse, touch
You are a senior browser-game engineer and 3D exploration-game designer. Inspect the current repository and implement Salvage Dive as a complete playable Three.js browser game. Preserve unrelated project work. If starting fresh, use Vite, TypeScript, and direct Three.js. Deliver a real interactive underwater world rather than a static scene.
Game
The player is a salvage diver exploring a flooded city. Search sunken buildings for artifacts and bring them back to an extraction point before oxygen runs out. The central tension is choosing whether to return safely with current cargo or dive deeper for rarer salvage. Keep sessions short, atmospheric, and replayable.
Use a third-person follow camera with a readable diver silhouette. Controls: WASD to swim, mouse to steer camera/facing, Space for a short burst, E to interact or collect, and Escape to pause. Include an optional mouse sensitivity setting and camera invert option. Make depth, oxygen, cargo capacity, and extraction direction easy to understand. Oxygen drains faster at greater depth or while boosting; surface bubbles and warning tones communicate danger before it becomes critical. Give the player enough time to react and return.
World and run structure
Build a compact, bounded 3D neighborhood with at least three zones: a shallow street, a submerged market, and a deeper transit hub. Use modular buildings, broken windows, underwater vegetation, suspended debris, light shafts, and clear landmarks. Place common, uncommon, and rare artifacts with visible quality cues. Add at least two environmental hazards such as currents, unstable debris, or a patrolling creature; telegraph danger and avoid unfair unavoidable damage.
Each run starts at a safe extraction point. The player can carry a limited number of artifacts. Extracting saves the salvage value; being incapacitated loses some cargo but should not erase all progress. Use earned salvage to unlock sidegrade equipment such as longer oxygen, faster fins, or a brighter lamp. Keep upgrades bounded and balanced. Provide a map/compass and a route breadcrumb to extraction. Generate a reproducible seed and vary artifact/hazard placement.
Art direction and UI
Create a beautiful, eerie underwater atmosphere with blue-green fog, warm lamps in distant windows, drifting particles, caustic-like patterns, soft light shafts, subtle bubbles, and restrained bioluminescent accents. Ensure important objects remain visible despite fog. Add pleasing pickup, extraction, oxygen warning, and near-miss feedback. Use generated audio or local assets, with independent ambience and effects volume.
HUD: oxygen bar, depth, cargo slots/value, current zone, extraction bearing, and salvage objective. Implement title, briefing, dive, pause, extraction/results, upgrade garage, defeat, and retry. Persist settings, best salvage, unlocked equipment, and recent seed locally. Keep controls accessible and readable.
Technical requirements and completion
Use a responsive Three.js scene, efficient geometry/material reuse, bounded effects, and a stable camera. Handle pause, focus loss, resize, WebGL errors, and cleanup between dives. Test movement, oxygen, item collection, extraction, hazard damage, result saving, and repeat run. Run the production build and relevant checks, document setup/controls, and summarize completion and limitations.