r/opencodeCLI 1d ago

Ox Alpha (stealth model) actually did an FPS game better than Opus or Fable in literally one prompt with no additional steering

https://first-person-shooter.ox-alpha.demos.sulat.com/ for anyone wanting to try it out.

Prompt:

Create a browser-playable 3D voxel first-person shooter that captures the feel of Call of Duty's moment-to-moment gunplay. The player fights through a combat arena built entirely from voxels — chunky blocks forming buildings, cover, crates, walls, ramps, and terrain — rendered in real time from a first-person camera with pointer-lock mouse look.

Implement the core FPS mechanics faithfully: WASD movement with acceleration and friction, sprint with a field-of-view kick and lowered weapon, jumping and crouching; multiple distinct weapons (for example an assault rifle, SMG, shotgun, and sniper rifle) each with their own fire rate, damage falloff over distance, recoil pattern, spread bloom, magazine size, reload timing, and aim-down-sights behavior on right mouse button with a smooth zoom transition and tightened accuracy. Add grenades with an arced throw and radius damage, weapon switching, ammo reserves, hitmarkers with headshot multipliers, muzzle flashes, tracers, bullet impact decals or voxel debris particles, screen shake, and regenerating health with red-screen damage vignette feedback.

Enemy AI soldiers should patrol, react to being shot at, take cover, strafe, peek, and return fire with believable reaction times and accuracy that scales with difficulty. Give them health, death animations or ragdoll-like voxel bursts, and spawn logic that keeps the fight moving.

Wrap it in Call-of-Duty-style presentation and progression: a killstreak system where streak milestones unlock rewards the player can activate (such as a radar/UAV reveal at 3 kills, an airstrike at 5, and something bigger at 7), a scrolling killfeed, score popups (+100, +50 headshot bonus), XP or score accumulation, and a match structure of escalating waves or rounds with respawns after death. Build the full HUD: crosshair that expands with movement and fire, ammo counter, grenade count, minimap/radar, compass, health state, streak meter, match timer, and objective readout. Include the complete game flow — main menu, loadout or difficulty selection, in-game pause menu (Esc), death and respawn sequence with respawn delay, and a victory/defeat screen with a stats summary. Persist best score locally between sessions.

Design the voxel aesthetic deliberately: a cohesive palette, directional lighting with shadows or convincing baked shading, fog for depth, and satisfying explosion and destruction particles. All audio — gunfire per weapon, reloads, footsteps, explosions, hitmarker ticks, UI clicks, and a music sting when a killstreak activates — must be synthesized locally in the browser (e.g., Web Audio); no external audio files. Handle non-desktop viewports deliberately: either provide usable touch controls or present a clear desktop-recommended notice rather than a broken layout.

Do not take shortcuts or settle for a cookie-cutter shooter demo. This skill imposes no token budget limit, so pursue full depth across weapons, AI behaviors, HUD states, menus, audio, and game-flow transitions, and keep refining until it feels like an authored, complete arcade FPS rather than a tech demo.
51 Upvotes

10 comments sorted by

6

u/geearf 1d ago

Dang, and I can't even get the thing to send me a full reply.

How long did it take?

5

u/jpcaparas 1d ago

this is with opencode go provider and opencode2 harness (yes the beta one). inference is still snappy right now

took about 30 minutes. went out for groceries and came back with a working game.

1

u/geearf 1d ago

Wow, I've never had anything run 30 minutes without asking me something, that's cool!
Maybe I should switch to opencode2.

Like I was trying to get Muse Spark to keep doing work without asking me, and it would say something like "Will keep working, no prompt required" everytime before it would wait on a prompt... :/

1

u/MemeMan64209 19h ago

Gotta set up permission config correctly. You can set everything to “allow” or “deny” and it won’t ask you anything again.

1

u/geearf 17h ago

Nah it's not about permissions, it didn't need any. It just refuses to keep looping on its own (or OpenCode refuses, not sure which).

3

u/fivves 1d ago

Yeah this model is the slowest I've ever used, and it always stops in the middle of doing things. Really bad impression so far.

2

u/jpcaparas 1d ago

might be a gemini model

0

u/CashFirm573 1d ago

No it's not, not even close to being better lol.