Played ✓
EXP-01of 10Roguelite
One More Floor
The elevator only goes down. Clear ten floors, stack upgrades, pick your route and take down the core.
One brief went to frontier models. Here's what each of them built. Pick a version and play.
Played ✓
Played ✓
Played ✓
Played ✓
Played ✓
Your 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.
572 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, 3D gameplay programmer, and game designer. Inspect the current repository, then implement a complete, polished browser game called One More Floor. Work in the existing stack and preserve unrelated features. If the repo is empty, set up Vite, TypeScript, and Three.js. Use Three.js directly for the game world; do not substitute a flat HTML game or a screenshot mockup.
Game
Create a single-player, isometric 3D action roguelite. The player is trapped in an impossible tower and must descend ten floors. Each floor is a compact arena. Clear encounters, collect upgrades, choose a route, and defeat the tower’s core on floor 10. Aim for an 8–12 minute run. Replayability should come from responsive combat, changing room layouts, seeded runs, varied enemy combinations, and meaningful upgrade choices. Do not use loot boxes, pay-to-win systems, time-gated rewards, or artificial streak pressure.
Play
Use WASD to move, mouse to aim, hold left-click to fire, Space to dash, Q for an available ability, E to interact, and Escape to pause. Normalize diagonal movement and raycast the cursor onto the arena ground plane. Give the player 100 starting health, a responsive pulse pistol, and a dash with a short cooldown and brief invulnerability. Make shots, damage, dashes, pickups, and defeat immediately readable.
Implement three enemies: a fast telegraphed melee Skitter, an aiming ranged Sentry with visible projectiles, and a slow armored Bulwark with a charge attack. Encounters must be completable; the elevator activates after the room is cleared. Add visible and fair hazard telegraphs. Floor 10 has a boss health bar, at least two behavior phases, and distinct attacks. Include a mid-run elite if scope allows.
After a cleared floor, let the player choose among three clearly described routes: a standard encounter with a reward, a safe sanctuary with healing or an upgrade, and a dangerous hazard or elite route with a better reward. A shortcut may skip a standard encounter but should offer fewer upgrade opportunities. Generate ten floors from a reproducible seed. Change architecture and lighting across industrial, overgrown laboratory, and cosmic-machine zones. Implement at least eight run upgrades with distinct effects and show the chosen upgrades in the HUD.
Look and finish
Use a premium, eerie retro-futurist art direction: impossible elevator shafts, brutalist architecture, worn metal, dark stone, restrained cyan, amber rewards, and coral danger accents. Use procedural geometry, intentional silhouettes, PBR or stylized materials, floor markings, emissive trim, atmospheric particles, and small moving machinery. The 3D scene is the main experience; overlay crisp HTML/CSS menus and HUD.
Implement title, controls, active gameplay, floor clear, route selection, upgrade selection, pause, defeat, victory, and restart states. Show health, floor/zone, ability cooldown, upgrades, objective, and boss health when relevant. Make every button functional. Add mute/volume and reduced camera shake/flash settings. Save settings, best result, and recent seed locally.
Use WebGLRenderer as a reliable baseline. Import Three.js add-ons explicitly. If using post-processing, use EffectComposer and keep bloom restrained; provide a lower-cost option. Handle resize, pause/resume, focus loss, WebGL failure, and cleanup of Three.js resources. Avoid external assets that are not present in the repository.
Done means
A player can start a run, fight and defeat enemies, clear floors, choose routes, gain upgrades, reach and defeat the boss, see victory or defeat, and restart without reloading. Run the project build and relevant checks, fix errors, and smoke-test the main path. Update the README with setup and controls. Report what was implemented, how to run it, checks performed, and known limitations.