Skip to content

Arcade › Sunny Dodger

Sunny Dodger

  • 3d
  • arcade
  • dodge
  • survival
  • endless
  • low-poly
0
Remix it Discord

9 plays

How to play

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

Discussion

Nobody has said anything about Sunny Dodger yet. Play it, then tell Oleg Sidorkin what you would add next.

Make your own game

Sunny Dodger was built by Oleg Sidorkin 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 Sunny Dodger 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 Sunny Dodger

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-based 3D arcade survival game titled “Sunny Dodger.” Use Three.js (or an equivalent real-time 3D engine) with a slightly elevated third-person camera looking toward a small arena around the player. The world is a bright sunny field: a large flat green grass-colored floor approximately 40 by 40 units, with a subtle dark-green checker/grid overlay for spatial readability, blue daytime sky/background, soft shadows, warm directional sunlight, and gentle ambient/hemisphere fill lighting. Keep the arena playable area bounded to roughly ±11.5 units on the X and Z axes.

The player is a small blue glowing-looking spherical orb, about 0.65 units in radius, initially centered on the ground. It should cast a shadow. Move it horizontally with WASD or the arrow keys; normalize diagonal movement and use a normal movement speed of about 9. Allow jumping with Space: jump only on a rising edge of the key while grounded, with a strong upward impulse and gravity so the orb arcs and lands back on the floor. Allow a directional dash with either Shift key while a movement direction is held: make it a brief fast burst (about 0.13 seconds at roughly 21 units/second), with a cooldown of about 0.65 seconds. Clamp the player within the arena. When hit, apply a small horizontal knockback and briefly blink/hide the player to communicate roughly 0.8 seconds of invulnerability.

The main hazards are red-orange solid cubes, about 1.2 units on each side, that spawn at random X/Z positions inside the arena and high above the ground (roughly Y=10–16). Give each a random initial rotation and continuously spin it as it falls vertically. Their downward speed starts around 6–10 units/second and ramps up gradually over time. Spawn them about every 0.8 seconds initially, then progressively more often, down to a minimum interval around 0.22 seconds. Remove cubes after they fall below the arena. Use sphere-versus-axis-aligned-box collision: a falling cube contacting the player costs one life, unless the player is invulnerable. Start with 3 lives; after each hit grant the brief invulnerability window. End the game when lives reach zero.

Also spawn collectible golden-yellow faceted stars (low-poly icosahedron-like shapes with a warm emissive glow) at random positions in the arena, hovering around Y=1.35 and bobbing up and down. Spawn one about every 3.2 seconds initially, with the interval gradually reducing toward about 1.6 seconds. Rotate them continuously, award +25 score on player contact, play a collect sound, and remove them; otherwise despawn them after about 10 seconds. Stars should be visually distinct from the red falling blocks.

The survival score increases continuously at +1 point per second, and collecting a star adds 25 points. Difficulty ramps continuously with elapsed time: falling-block spawn intervals decrease and block fall speeds increase; star intervals also decrease modestly. Track score as an integer display while allowing time-based fractional accumulation internally. The camera should smoothly follow the player, staying elevated around Y=10.5 and behind/forward around Z=16, looking at a point near the player and ground. Use a perspective view around 60 degrees with responsive resizing.

Place a readable HUD over the 3D scene near the upper-left: rounded pill-style panels showing “Score: 0,” “Lives: 3,” and “Time: 0.0s,” updating continuously. Beneath them show the instruction line: “Move: WASD/Arrows • Jump: Space • Dash: Shift • Click/press any key to enable sound”. The visual UI should use translucent light panels, dark blue text/borders, rounded corners, and a clean system sans-serif font. When all lives are lost, pause gameplay and show a centered translucent “Game Over” panel with “Press R to restart,” final score, survived time, best score, and a “Restart (R)” button. Support restarting through R after game over or the button, resetting lives, score, time, player position, timers, and all spawned objects.

Implement simple synthesized browser audio using Tone.js or an equivalent: the first click or keypress initializes audio because of browser autoplay policy. Include subtle sounds for jumping, dashing, block spawning/impact-like clangs, star collection, player hits, restart, and game over. The finished game should feel like a quick, readable arcade dodging game with a sunny low-poly 3D presentation rather than a menu or static demo.

More free browser games

Browse the whole Arcade →