Skip to content

Arcade › Street Rumble

Street Rumble

  • 3d
  • action
  • brawler
  • survival
  • wave-based
0
Remix it Discord

11 plays

How to play

Click the game above and it runs right here in your browser. No download, no installer, no account needed. Madyson Roney built it with Cinevva, so it works on a phone or a tablet too.

Discussion

Nobody has said anything about Street Rumble yet. Play it, then tell Madyson Roney what you would add next.

Make your own game

Street Rumble was built by Madyson Roney 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 Street Rumble 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.

Read the build brief for Street Rumble

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 browser-playable 3D Three.js action brawler called “Street Rumble.” Use a third-person, slightly elevated perspective camera looking toward the player from behind, with a compact square outdoor lot at night. The camera is a 58-degree perspective camera initially around (0, 8.5, 12.5), follows the player subtly as they move, and looks toward the arena center. Render a dark blue nighttime atmosphere with exponential fog, cool moonlight, warm streetlamp pools, shadows, and a low-poly/blocky visual style.

The arena is a dark gray paved square lot approximately 26 by 26 world units, with the playable player/enemy bounds clamped to a 12-unit radius square. Surround it with a light gray sidewalk ring, a broad dark green grass field, and chain-link fence silhouettes around the perimeter. Add six simple low-poly trees around the outside: brown cylindrical trunks with dark green spherical foliage. Add four tall metal streetlights near the lot corners, each with a horizontal arm, glowing warm yellow lamp, and warm point-light pool. Place two simple wooden benches outside the arena, one to the left and one to the right. The pavement has several small pale rectangular lane/center stripes across the middle. Keep the scene visibly dark, with blue ambient/moon lighting and warm highlights from the lamps.

The player is a lone stylized block-built 1950s greaser fighter, centered in the arena at the start. Build each fighter from boxes: a dark jacket torso, bright/off-white shirt panel and collar, blue-gray pants, brown-black boots, a cuboid skin-colored head, dark hair cap/back, pompadour, and sideburns. The player uses a near-black jacket, white shirt, blue-gray pants, medium tan skin, and black hair. Make the model cast shadows. Enemies use the same silhouette and proportions but vary among three dark jacket, pale shirt, gray/blue pants, skin, and hair palettes. Animate arms and legs with a simple alternating walking stride; the player’s arms should pull into a punch pose briefly during attacks. Fighters face their movement direction, and enemies face toward the player.

Core goal: survive increasingly crowded waves of incoming rivals, defeat them with close-range punches, and score as high as possible. Start with three enemies. Enemies spawn at random points along one of the four arena edges, about 10.5–12.3 units from the center. Each enemy has 3 health initially, increasing by 1 every two waves, and moves directly toward the player at roughly 2–2.8 units/second plus a small wave-based speed increase. Enemies stop approaching within about 1.45 units, and if within 1.55 units can hit the player every roughly 0.75–1.1 seconds, dealing 8 health damage. Include a brief player damage cooldown of about 0.3 seconds so contact does not drain health every frame.

Controls must be exactly: WASD or arrow keys to move; Space to punch; Shift to dash; R to restart after game over. Movement is normalized diagonal movement at 6.5 units/second, with the player clamped inside the square arena. The player faces the direction of movement. Space performs a punch lasting about 0.22 seconds, with a short attack cooldown. The punch only affects enemies within 2.15 units and within a forward cone of about 1.2 radians around the player’s facing direction. Each successful punch removes one enemy health and knocks it back about 0.9 units forward. When an enemy reaches zero health, remove it and add 100 score. Shift activates a quick dash for 0.16 seconds at about 16 units/second, with a 1.2-second cooldown; enemies cannot damage the player while the dash is active. Do not add weapons, ranged attacks, pickups, jumping, combos, or other mechanics.

Wave behavior: continuously spawn enemies while the game is active. The target enemy count is min(4 + wave*2, 16), and spawn intervals shorten from about 1.7 seconds with increasing wave, never below 0.5 seconds. Increase the wave by 1 whenever score reaches wave*600. The game ends when health reaches zero; stop gameplay updates and show a prominent message reading “You got jumped.” followed by the score and “Press R to restart”. Pressing R in this state resets score to 0, wave to 1, health to 100, player position and timers, removes all enemies, and starts with three new enemies.

Provide a prominent HUD across the top in large clean white text, matching the visible layout: title “STREET RUMBLE,” then “Health: [value]   Score: [value]   Wave: [value]”, and a controls line reading “Move: WASD / Arrows · Punch: Space · Dash: Shift · Restart: R”. Health starts at 100 and should never display below zero. Use a dark translucent/very dark header area so the HUD remains readable over the scene. Add basic synthesized audio feedback through Tone.js: a short triangle-like hit sound on punch, a brighter tone when an enemy is defeated or dash is activated, and a lower warning tone when the player is damaged. Initialize audio on the first click or key press. Expose game state functions for live inspection and control: window.getGameState() should report player position/velocity/health/attack timer/dash cooldown, score, wave, gameOver, enemy count/details, and setting metadata; window.setGameState(patch) should allow updating player/score/wave/gameOver/health and refresh the HUD.

More free browser games

Browse the whole Arcade →