Appearance
Arcade › Grit Rush
Click the game above and it runs right here in your browser. No download, no installer, no account needed. Matthew Johnson built it with Cinevva, so it works on a phone or a tablet too.
Nobody has said anything about Grit Rush yet. Play it, then tell Matthew Johnson what you would add next.
Grit Rush was built by Matthew Johnson 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 Grit Rush 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.
Recreate "Grit Rush" as a playable 2D top-down arena shooter rendered with Three.js and an orthographic camera. The game view is a dark, gritty rectangular arena: nearly black charcoal floor, subtle dark-red/gray square grid lines, foggy edges, and scattered low-contrast black floor stains. Keep the camera centered on the active player (or midpoint of two active players), with a fixed top-down view and a visible playable world bounded by the arena edges. The primary player is a small clean top-down character sprite near screen center: dark gray/black body, tan head, dark cap/helmet, a red horizontal accent, a shadow underneath, and a clearly separate held gun pointing in the aim direction. Include a visible gun body, barrel, grip, and brief orange muzzle flash/smoke when firing. Player 1 starts with 100 health, a Rust Pistol, a 12-round clip, and 48 reserve rounds. Player movement speed is about 8.5 world units per second and is clamped inside the world. Aim toward the mouse cursor on desktop; on touch, the Fire button uses the last aim/movement direction. Fire continuously while the fire input is held, subject to the weapon cooldown. Bullets travel across the arena and disappear after a short lifetime or at the world boundary. Place the HUD as a top-screen overlay in a bold distressed/industrial style. At minimum show a PLAYER HEALTH panel at upper left with a dark red backing and a bright orange-red horizontal health fill, an AMMO panel at upper right showing the current clip and reserve (initially "12 / 48"), weapon label/status, and wave information. Show a compact instruction strip near the top reading the equivalent of "WASD / joystick to move · Mouse / right stick aim · Left-click / Fire to shoot · R reload". In the bottom corners, show a large translucent circular virtual joystick on the left with a smaller draggable center knob, and on the right a dark red rounded RELOAD button plus a large dark red circular FIRE button. These touch controls should be usable, not decorative. Add a subtle red damage vignette/flash when the player is hit. When the run ends, show a game-over overlay with final wave, survival time, and enemies destroyed, plus a restart control. Support controls: WASD and arrow keys move Player 1; mouse pointer aims; left mouse click or Space fires; R reloads. The left virtual joystick moves, Fire fires, and Reload reloads. Also support gamepad 1 with left stick movement, right stick aiming, a trigger firing, and the reload button. Reload takes about 0.8 seconds, fills the clip from reserve ammo, and should not work when already full, empty reserve, dead, or game over. Firing an empty weapon produces an empty click and initiates reload. Implement four weapons with distinct fire behavior and HUD labels: Rust Pistol (12 clip, one pellet, rapid .12-second cooldown, damage 1); Sawed-Off (6 clip, six pellets, broad spread, .48-second cooldown); Street SMG (24 clip, one slightly spread bullet, .055-second cooldown); Nail Rifle (8 clip, very tight spread, .22-second cooldown, damage 2). Weapon pickups are floating red/brown rectangular gun icons with a dark gun silhouette, slight bobbing/pulsing, and a limited lifetime. Start with a Sawed-Off pickup around the upper-left area of the player and an SMG pickup toward the lower-right. Picking one up automatically equips it, refills its clip, adds weapon-specific reserve ammunition, and briefly displays a pickup notice. Enemies can randomly drop pickups, and the Nail Rifle and SMG are guaranteed drops when a boss dies. Use endless wave progression. Enemies spawn from the four arena edges, chase the nearest living player, and adjust their distance: approach when far away, slow/hold distance when moderately close, and back away when too close. Regular enemies are red/dark hostile shooters with visible green guns; use animated 3D Spacesuit character models when the asset loads, while retaining the red sprite-like visual as a fallback. They have about 3 HP, move around 1.45–1.9 units/second plus wave scaling, fire small bright green projectiles at players from range, and deal contact damage on a cooldown. Enemy bullets can hit either living player. On hit, show red particles; on death, show a larger burst of red particles and a red blood-splatter sprite on the floor that slowly fades. Wave 1 targets 12 regular enemy kills. As waves progress, target count increases (regular wave target is 10 + wave number*4 after advancing), spawn rate becomes faster, enemy count can rise, and enemy speed scales slightly. Between waves show a short break/countdown and a wave HUD such as "WAVE 1" plus kills/target and live enemy count. Every fifth wave is a boss wave with one large enemy: use an enlarged orange/red spacesuit shooter with a visible gun, high health (32 + wave*9), larger collision radius, slower movement, heavier 18-point contact damage, and stronger 8-damage projectiles. Show "BOSS WAVE" and live boss HP in the HUD. Trigger screen shake and a "BOSS ENTERED" notice on boss entrance. Boss death creates multiple blood splatters, screen shake, guaranteed weapon drops, and extra reserve ammo. Add two AI SWAT squadmates that follow Player 1 (or the surviving player in co-op) in offset positions. They should use animated SWAT character models, stay visibly separate from the clean player sprite, follow their anchor, find nearby enemies, and automatically fire Nail Rifle-like bullets at enemies within range with visible muzzle smoke. They should not replace or overlap the player silhouette. Support optional local two-player co-op. Player 2 joins with Enter on keyboard or a second Xbox/PlayStation-style controller join button. Player 2 is a blue-tinted version of the same top-down sprite and gun, starts with a pistol, 100 health, 12/48 ammunition, and uses controller 2 left stick to move, right stick to aim, trigger to fire, and X/Square-equivalent reload. Show a second blue health/ammo/weapon HUD panel when active. Center the camera between living players. Players share the arena and pickups; the nearest living player collects a pickup. End the game only when all active players are down. Player-down state should remain visible in the HUD. Use gritty procedural audio after user interaction: layered noisy gunshots, empty-fire clicks, reload start/finish sounds, enemy hit/death sounds, player hurt sound, pickup sound, and a low game-over sound. Add modest screen shake for weapon recoil, damage, and boss events. Keep the visual palette restrained—black charcoal arena, muted gray player, red/burgundy enemies and blood, orange health/muzzle accents, bright green enemy bullets, and red UI controls—with crisp readable HUD typography and no unnecessary scenery or invented objectives. The core objective is simply to survive the endless escalating waves, destroy enemies, collect better weapons, and continue until all players are defeated.