Gameshard

ChatGPT vs Gemini: the rougher game is the better one

One brief: invent an addictive game in one HTML file. ChatGPT's can drop a wall 0.16 s in front of you; Gemini's never spawns one within 250 px. We still preferred ChatGPT's.

August 2026 · tested August 14, 2026

GPT 5.6 Sol (Extra High)vsGemini 3.7 Flash (High)

Two arcade scoreboards facing each other across a VS mark, a blue orbit field for ChatGPT 5.6 and a purple one for Gemini 3.7 Flash, a player silhouetted between them
Quick result

No single winner

No winner recorded: every requirement here is met by both entries, and what separates them is how they play. Our preference is in the review, and it is not the tidier game.

ChatGPT

GPT 5.6 Sol (Extra High)

Technical score
100
Web app completion time
not recorded
Requirements met
11/11
gpt-5-6-sol-extra-high.html11.4 KB
Gemini

Gemini 3.7 Flash (High)

Technical score
100
Web app completion time
not recorded
Requirements met
11/11
gemini-3-7-flash-high.html59.5 KB
The exact prompt

Word for word, as both models received it

Prompt · verbatim
Create the most addictive browser game you can make in a single HTML file.

Constraints:
- The core mechanic must be understandable within 5 seconds
- A game should last between 30 seconds and 3 minutes
- The player should immediately want to try again after losing
- Include scoring
- Include increasing difficulty
- Include a high score
- Include satisfying visual feedback
- Keyboard or mouse controls
- HTML, CSS and vanilla JavaScript only
- No external assets or libraries

Do not make Snake, Pong, Flappy Bird, Tic-Tac-Toe, Breakout, or another obvious clone.

Invent an original mechanic.

Return only the complete HTML.

Scroll inside the box for the rest of the brief.

Automated test results

Requirements met

All 11 cleared by every entry
RequirementChatGPTGemini
Everything in a single HTML fileMetMet
No external assets, libraries or CDNsMetMet
Rendered with HTML5 CanvasMetMet
requestAnimationFrame game loopMetMet
A score the player can see while playingMetMet
Difficulty that climbs with the clockMetMet
High score kept in localStorageMetMet
Playable from the keyboardMetMet
Playable with a pointer as wellMetMet
Sound generated in code, no audio filesMetMet
Responsive: viewport set and canvas resizesMetMet
Measured, not judged

Automated checks

GPT 5.6 Sol (Extra High)

GPT 5.6 Sol (Extra High) · web app

Total size
11.4 KB
Files produced
1
Outside requests
None
Technical score
100

Gemini 3.7 Flash (High)

Gemini 3.7 Flash (High) · web app

Total size
59.5 KB
Files produced
1
Outside requests
None
Technical score
100

Timings are measured in each provider’s consumer web app, so they include network and interface conditions — they are not model inference latency.

Editorial review

What the numbers leave out

The two title screens are the round in miniature. Orbit Shift opens with one line — “One button. Two orbits. No brakes.” — and a button that says TAP TO BEGIN. Nexus Sling opens with a three-panel tutorial: GLIDE, TETHER, SLING, each with a paragraph under it. The brief asked for a core mechanic understandable within five seconds. One of these needed six words to explain itself and the other needed a manual.

Orbit Shift is 264 lines. You travel round a circle on one of two rings, and one button swaps which ring you are on; gems sit on the rings and red arcs block them. Nexus Sling is 1,868 lines. You steer a core with the cursor, hold to whip-orbit the nearest anchor, release to sling — a tether game, and a genuinely more ambitious idea than the first one.

The ambitious one is the harder one to hold. The tether grabs the anchor nearest the ship rather than the one nearest the cursor, so the thing you are aiming at and the thing you get are two different choices. And the two control schemes the brief allows are not the same game: steer with the mouse and the core covers 671 px in a second; hold an arrow key and it covers 112. The keyboard branch of the movement code is scaled by the frame time and the mouse branch is not, so one of them is roughly six times the other and the faster one also changes with your refresh rate.

Orbit Shift's problem is its spawner, and it is the first thing you meet. The opening set puts a hazard anywhere from 0.48 to 1.23 radians either side of the first gem, and the ring turns at 1.7 radians a second — so a wall can be 0.16 s in front of you when the run starts, and in a quarter of runs there is one in your own lane inside the first second. Nexus Sling's spawner refuses to place a hazard within 250 px of the ship. Same brief, seven minutes apart: one model wrote that guard and the other did not.

There is a second one further in. After eighteen seconds Orbit Shift may add a hazard behind the first, and that one is placed without the separation check the first one gets — it can land on the gem's own angle, in the gem's own lane. We ran its spawn function two hundred thousand times per sample: from twenty seconds in, about 2.3% of sets contain a gem you cannot take without dying, which at that spawn rate is one roughly every thirty to forty seconds of play.

And we would still rather play Orbit Shift. It is the rougher of the two and a seventh of the length, and it is the one that reads in a glance, restarts instantly and asks one thing of you. Both faults above are the kind you can fix in an afternoon — a minimum distance on the first spawn, the same separation check on the second — and neither is a fault in the idea. Nexus Sling's difficulty is not in its spawner; it is in the mechanic, and that is the harder thing to move.