Arcade › Urban FPS
Click the game above and it runs right here in your browser. No download, no installer, no account needed. Jason Keller built it with Cinevva, so it works on a phone or a tablet too.
Nobody has said anything about Urban FPS yet. Play it, then tell Jason Keller what you would add next.
Urban FPS was built by Jason Keller 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 Urban FPS 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.
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 first-person shooter titled “Urban FPS” in a dark, low-poly suburban city arena using Three.js-style 3D rendering. Use a first-person perspective with a perspective camera at approximately eye height (player camera starts around y=1.6), pointer-lock mouse look, and a visible blocky pistol held in the lower-right foreground. The scene should have a very dark blue-black night sky/background, fog fading in at medium distance, a broad dark gray ground plane, and pale gray street/road lines extending across the map. Populate the arena with roughly ten spaced suburban building models around the perimeter and interior, arranged at varied rotations and scaled up, plus about twelve groups of stacked wooden/industrial crates as cover. Add approximately six tall street lamps distributed around the city, with warm point lights near their tops, while overall illumination remains moody blue-gray from hemisphere and directional lighting. Use simple low-poly/asset-pack visual styling with shadows. The player objective is to eliminate all enemies. Spawn eight hostile low-poly soldier characters around the city, using seven fixed positions at distant edges and one additional randomized position if needed. Each soldier has 60 health, moves toward the player when within 65 world units, stops when within about 2.5 units, turns to face the player, and moves at roughly 4.5–6 units per second. Hostiles fire visible glowing/projectile bullets at the player when within 28 units, with roughly a 1.2-second fire cooldown; enemy projectiles travel toward the player and deal 22 damage on contact, and enemies also deal continuous close-range damage of about 12 health per second within 2.8 units. Start the player with 100 health. If health reaches zero, stop gameplay and show a centered dark translucent message in red: “Game Over - Du wurdest getroffen.” Implement shooting with left mouse click, a maximum fire rate of one shot every 180 ms, and a 30-round magazine with 90 reserve rounds. Each click when ammunition is available subtracts one round, spawns a fast visible bullet traveling along the camera’s forward direction, and creates a brief pale-yellow muzzle flash. Use a forward raycast at the moment of firing to damage the first intersected enemy for 35 health; two hits should normally eliminate a soldier. Remove defeated soldiers from the scene and enemy list. Press R to instantly reload the magazine from reserve ammunition, filling up to 30 rounds and reducing reserve ammo accordingly; do nothing if the magazine is full or reserve is empty. When all enemies are removed, stop gameplay and show the centered green message “SIEG! Alle Gegner besiegt.” Support WASD movement, spacebar jumping with gravity, and mouse look through an FPS controller; display the instruction text at the top center in German: “Klick zum Zielen | WASD bewegen | R nachladen | Leertaste springen”. Clicking the canvas should request pointer lock. Show a small white plus-shaped crosshair exactly in the center. Place HUD labels in dark semi-transparent rounded rectangles along the bottom: bottom-left “Leben: 100” (dynamically update health, clamped at zero) and bottom-right “Munition: 30 / 90” (dynamically update magazine/reserve ammo). Keep the UI white sans-serif text, with the end-state message centered around 40% screen height in a larger font. On game over or victory disable controls; pressing F should reload/restart the page. Render with antialiasing, shadows, fog, and responsive resizing. Use blocky pistol, soldier, suburban house, crate, streetlight, and small bullet assets where available, with simple gray box/sphere fallbacks if an asset fails to load.