Arcade › Ball Jumper
Click the game above and it runs right here in your browser. No download, no installer, no account needed. Leannie Martinez built it with Cinevva, so it works on a phone or a tablet too.
Nobody has said anything about Ball Jumper yet. Play it, then tell Leannie Martinez what you would add next.
Ball Jumper was built by Leannie Martinez 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 Ball Jumper 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 browser-based 3D endless runner called "Ball Jumper" using a Three.js-style WebGL scene. Use a third-person perspective camera positioned behind and above the player, initially around (0, 6, -12), looking forward down the track. The world should have a dark blue-gray background (approximately #112233), a dark gray ground plane extending far forward and sideways, and atmospheric fog that makes the distance fade into darkness. Use simple low-detail geometric visuals with basic Phong lighting: soft ambient light plus a white directional light from above/front. The player is a bright emerald-green glossy sphere, radius about 0.6, starting at world position (0, 0.6, 0) on the ground. It continuously rolls and moves forward automatically at a constant speed of 10 world units per second; visually rotate the ball around its X axis as it advances. The camera follows the ball along the Z axis, staying about 12 units behind it, with a slight horizontal follow (camera X is about 30% of the ball's X position), and looks ahead toward the ball and roughly 8 units in front of it. The ground should move/follow with the player so the runner appears endless. The only gameplay objective is to survive as long as possible and maximize the distance score. Display a minimal fixed HUD in the upper-left corner: white score text, starting at "0", using a clean system sans-serif font around 24px with a subtle dark text shadow. Score equals the player's forward Z distance and is displayed as a rounded-down integer, updating continuously. Give the player horizontal movement and jumping. Left/right movement is direct and responsive: A or Left Arrow moves left, D or Right Arrow moves right, at 8 units per second, with horizontal position clamped between -10 and +10. Space or W makes the ball jump only while grounded. Also support touch input: a touch starts a jump if grounded. Implement simple physics with gravity 18 and jump velocity/force 9; the ball lands when its center reaches y=0.6, then vertical velocity resets to zero. The player can avoid obstacles by moving sideways or jumping over them. Place red obstacle blocks on the track. Each obstacle is a solid red box approximately 1.8 wide, 1.2 high, and 1.8 deep, with its center at y=0.6 so it sits on the floor. Spawn obstacles ahead of the ball, starting approximately 35 to 43 units forward, with a random X position between -6 and +6. Begin with five obstacles and continue spawning another whenever the player approaches the latest spawn (when the ball is within about 20 units behind it), so the course continues indefinitely. Remove obstacles once they are more than 15 units behind the player. Use a simple distance-based collision test in the horizontal X/Z plane: if the ball is within about 1.4 units of an obstacle and the ball center is below y=1.5, end the run. This means jumping high enough can clear a block. When a collision occurs, freeze gameplay and show a centered game-over overlay: a semi-transparent black panel with rounded corners, white "Game Over" heading, a final integer score line such as "Score: 123", and a prominent bright green "Restart" button. Restart must reset the ball to (0, 0.6, 0), clear all obstacles, reset score and vertical motion, hide the overlay, and respawn the initial five obstacles. Space should also restart after game over. Keep the canvas fullscreen and resize the camera/renderer with the browser window. Do not add lives, collectibles, weapons, enemies, scenery, lanes, music, or other mechanics; the visible game is a minimalist dark endless ball-jumping obstacle course.