Appearance
Arcade › Penalty Shootout
Click the game above and it runs right here in your browser. No download, no installer, no account needed. vishvap417 built it with Cinevva, so it works on a phone or a tablet too.
Nobody has said anything about Penalty Shootout yet. Play it, then tell vishvap417 what you would add next.
Penalty Shootout was built by vishvap417 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 Penalty Shootout 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 simple third-person 3D penalty-shootout game titled “Penalty Shootout,” viewed from behind and slightly above the stationary soccer ball/shooter, looking straight down a green field toward a goal. Use a low-poly, clean Three.js-style presentation: bright sky-blue background with light fog, flat dark-green grass pitch, basic white field markings, simple directional/hemi lighting, and soft shadows. The camera starts at approximately (0, 3, 12), uses a perspective view, and looks toward the goal around (0, 1.5, 0). The field should be a large flat plane extending toward the goal, with a white center line and a simple rectangular penalty-area outline in the distance. Place a white circular penalty spot under/around the ball near the foreground (the ball starts at z≈8), though the visible ball itself is a small white soccer ball with a simple dark pentagon/ring-like pattern and a circular white spot beneath it. At the far end, build a basic full-size goal centered on the field at about z=-18: two white vertical posts, a white crossbar, a translucent light-gray net plane, and visible gray vertical/horizontal net lines forming a grid. In front of/inside the goal at about z=-16, place a blocky goalkeeper facing the shooter: blue rectangular torso, blue rectangular arms, a tan spherical head, and two dark legs. The goalkeeper idles with a subtle side-to-side sway, and once the ball is traveling it tracks the predicted ball x-position with lag, clamped to roughly x=-2.8 through 2.8; animate the arms with a slight reactive oscillation. The core mechanic is a five-shot penalty challenge. The player aims left/right and charges shot power, then kicks the ball toward the goal. Before charging, aim horizontally using mouse movement across the canvas or touch movement; map screen x to a limited aim angle (roughly -0.9 to +0.9 radians). Also support ArrowLeft/ArrowRight or A/D for continuous aim adjustment, with keyboard limits around -1.1/+1.1 radians. To shoot, hold Space or hold the mouse button (and support touch press); while held, charge from zero toward full power at about 1.6 charge units per second, with a minimum resulting power of 0.6 and a maximum of 1.0. Release Space, mouse, or touch to kick. The launch direction should be based on the aim angle: horizontal component sin(angle)*0.6, a small upward component of 0.15, and a strong forward component -1, normalized. Multiply this direction by power*22 and add a small random horizontal variation for realism. Simulate the ball physically after the kick: integrate position from velocity, apply gravity around 18 units/s², make the ball bounce on the grass when its center would fall below y≈0.22 with about 55% vertical rebound and horizontal/forward damping, and stop it once the bounce is weak. Apply light air drag to x and z and visibly rotate the ball based on its velocity. While the ball travels, subtly move the camera to follow it: move camera z forward from 12 toward a value based on the ball’s distance, and look toward the ball/space ahead; restore the original behind-the-shooter camera once the ball stops. Resolve the shot when the ball reaches the goal region. A goal is possible if the ball is near the goal plane (around z=-18), between y=0.1 and 2.6, and within x=-3.5 to +3.5. If it is inside that region but within about 1.4 horizontal units of the goalkeeper’s current x position, the keeper saves it; otherwise show a goal. If the ball goes too far beyond the goal, rises above y=4, or travels wider than x=±8, show a miss. Use large centered result text with these exact Portuguese-style messages and colors: “GOOOOOOL!” in bright green (#00ff88), “Defesa!” in red (#ff5555), and “Fora!” in orange (#ffaa00). Show the result briefly, then reset the ball to its starting position and reset goalkeeper x/aim for the next attempt. After the final attempts, show “Fim de jogo! [score] gols” in white and replace the instructions with “Pressione R para jogar novamente”; pressing R resets score, attempts, ball, aim, and game state. Build a fixed HTML HUD over the canvas with pointer-events disabled except where needed. In the upper-left, show large white text with dark shadow reading exactly “Gols: 0 / 5” initially and update the score after goals. At the bottom center, show a 240x16 dark power bar with a 2px white border; fill it left-to-right in yellow (#ffcc00) while charging, then clear it after the kick. Initially display a semi-transparent black rounded instruction panel near the bottom center reading: “Segure ESPAÇO ou CLIQUE para mirar e chutar” on one or more lines, followed by “Setas ou mouse para ajustar direção”. Hide this instruction panel as soon as charging begins. Keep the overall aesthetic sparse and arcade-like, with no menus, crowds, stadium, extra players, sound requirements, or additional power-ups.