One Dare, Two Architectures: How Claude Built Two Open-World Driving Games From Opposite Premises

One Dare, Two Architectures: How Claude Built Two Open-World Driving Games From Opposite Premises

A single Reddit dare — 'build GTA7 using Javascript, don't make mistakes' — produced two Claude-built open-world driving games that took completely different architectural bets. GTA 7 uses deterministic procedural generation with a pure-core/testable-sim split and shipped 73 community-requested features. CrimeWorld runs on real Google 3D Tiles and OpenStreetMap, making every real city on Earth a level. This case study compares their architectures, build processes, and what each approach transfers to your own AI game projects.

AI Game Dev Case Studies
2026/6/15 · 18:08
1 订阅 · 3 内容
On May 29, 2026, a Reddit user posted a single screenshot of a prompt typed into Claude Opus 4.8. It read: "Let's check Opus 4.8 — how good is it?" The test prompt was simply: "build GTA7 using Javascript, don't make mistakes." 1
The next day, someone named daemon-electricity dropped the result: a playable 3D open-world driving game in TypeScript and Three.js, built from nothing in a single Claude Code session. The thread turned into a live game jam — community feature requests, Claude delivering them, 73 commits later. 2
Around the same time, a developer with zero game dev background built something structurally different: not a procedural world, but a game that runs on Google Earth. Drop into Miami Beach, Paris, or any real city, steal a car, and have cops arrest you at the actual nearest police station according to OpenStreetMap. Claude Code wrote roughly 80% of it. 3
Two open-world driving games. Both Claude. Totally different bets on what the engine of the game should be.

GTA 7: zero-shot to 73-commit game jam

正在加载内容卡片…

The zero-shot starting point

The prompt was the title: "build GTA7 using Javascript, don't make mistakes." daemon-electricity started Claude Code from their projects root directory, which meant Claude could infer the preferred stack — TypeScript and Vite — from the surrounding repos. They had a global CLAUDE.md with TDD principles. The initial output shipped a working third-person 3D driving game: a procedural city, a car, ambient traffic, and a minimap. No explicit spec beyond the headline. 2
The zero-shot version is preserved separately at depixeled-chris.github.io/gta7/zero-shot/ — the current live build has accumulated all the community requests on top. "At the time, I had Max 5x and I bet it was under 3-4% for the zero shot," daemon-electricity wrote when asked about cost. "But I dumped more into it to improve it." 2
GTA 7 driving through the procedural neon city at night, minimap visible, headlights casting pools of warm light on the asphalt
Screenshot of the live GTA 7 build running in a browser — procedural city, headlights, and minimap generated by Claude Opus 4.8. 4

The architectural decision that made it testable

The most deliberate choice in the codebase — and one that appears in the CLAUDE.md as an explicit architectural invariant — is a hard split between the simulation core and the rendering layer: no Three.js imports in any file that contains gameplay logic. 5
This means the vehicle physics (VehicleModel.ts), city generation (City.ts), collision system (Collision.ts), radio tuner model, and procedural noise functions all run in a Node environment with no browser globals. They're unit-tested with Vitest. The rendering layer — meshes, lights, materials, the HUD, touch controls — lives separately and imports Three.js freely.
The concrete consequence: Claude could write stepVehicle(state, input) → state as a pure function over a 2D velocity vector, unit-test the powerslide behavior with fixed inputs, and ship a headless-Chromium end-to-end test that drives the car into a building and asserts the collision response. That's not common in browser game codebases built by a single developer in days.

Community-driven iteration

After the initial post, daemon-electricity treated the Reddit thread as a feature backlog. Requested by the community and built with Claude, in order: streetlights + headlights, parked cars, powerslides, health and WASTED screen, traffic that brakes for pedestrians (with correct physics: cars can't stop inside their own stopping distance), pedestrians who explode into block fragments on impact, a five-star wanted system with steering-behavior police AI, and 7 streaming radio stations of original music. 4
Each feature shipped with tests. The steering-behavior police use Reynolds-style pursuit: they lead the player's position rather than chasing the tail, spread out instead of stacking, and veer around buildings. The radio audio never ships in the repository — it streams from a GitHub Release CDN to avoid blowing the GitHub Pages 1 GB storage limit.
A four-star wanted level police chase in GTA 7 — police car visible from behind with flashing light bar, radio station shown in HUD
The police chase system, added after a community request: steering-behavior AI police that intercept rather than trail. 4
The ROADMAP.md is a public product document. It tracks every community request by ID (R###), assigns status emoji (queued, in progress, shipped, deferred), and links to a docs/research/ directory where Claude has pre-researched how to implement each pending feature before touching any code. R007 (AOI streaming for infinite world), R038 (full police patrol AI with line-of-sight cooldown), and R041 (TypeScript/Rust/WASM portability seam) are in varying states of research readiness. 6

CrimeWorld: GTA on the real planet

Building on the actual Earth

Naveen (@naveenvkt) took the opposite architectural premise: instead of generating a plausible city, use Google's actual 3D Tiles of the real one. The stack is Cesium for rendering Google 3D Tiles in-browser, Three.js for vehicles and characters, Claude Code for approximately 80% of the codebase, Radio Garden API for live local FM, and OpenStreetMap for real police stations, hospitals, airports, and ports. 3
CrimeWorld gameplay in Miami Beach — real photogrammetry buildings, aerial view, police car with badge icon visible below
CrimeWorld running on real Google 3D Tiles in Miami Beach — real street geometry, OSM-driven police, and star wanted level. 7
The game that results is structurally impossible to do with a procedural city: the radio auto-tunes to actual local FM stations based on GPS position inside the game world (NRJ in Paris, Power 96 in Miami). Get killed and you respawn at the nearest real hospital according to OSM. Drive to any airport — every plane on that tarmac is yours to steal. Every coastline is accessible. Every port spawns boats.
The upside is instant geographical authenticity. The tradeoff is that Cesium + Google 3D Tiles requires managing tile streaming, real-world coordinate systems, and the visual clash when simplified game car meshes sit inside high-fidelity photogrammetry streets. The aerial screenshots show that seam clearly: real tree geometry and building facades, cartoon vehicles driving across them.

What the 80% figure means in practice

Naveen built CrimeWorld over a weekend with "zero game dev background" by his account. The Claude Code 80% attribution almost certainly covers the vehicle physics, the OSM data queries and respawn logic, the radio integration, and large parts of the rendering-layer glue between Cesium and Three.js. 3
Cesium's JavaScript SDK for browser 3D Tiles is not a typical target for AI-assisted game dev. The fact that Claude could integrate it alongside a real-time physics layer, coordinate-system transforms for OSM lookups, and streaming media speaks to Opus-class models' ability to work across domain boundaries without pre-existing game frameworks.
CrimeWorld driving in Paris 8th arrondissement — real Haussmann-style buildings in photogrammetry, car visible on historic boulevard
CrimeWorld in Paris, 8th arrondissement — same game, different city, same Claude Code foundation. The minimap shows a real city navigation graph. 7
CrimeWorld has a waitlist at cw.naveen.to and Naveen continues posting development clips on X. The codebase is not open-source as of this writing.

Two bets, two architectures

Both games are Claude-built open-world drivers. The architectures differ on every axis that matters:
DimensionGTA 7CrimeWorld
AI modelClaude Opus 4.8 (Code)Claude Code (~80% of codebase)
World sourceDeterministic procedural generation (seeded simplex noise)Google 3D Tiles + Cesium streaming
City authenticityFictional neon city, always regenerates identically from seedAny real city on Earth, OSM-accurate
TestabilityPure-core architecture; Vitest unit tests + Playwright e2eNot open-source; test setup unknown
Build processZero-shot → community game jam (73 commits, ROADMAP.md)Weekend vibe-code sprint, ongoing build-in-public
Open sourceMIT licenseClosed; waitlist
Tech stackTypeScript, Three.js, Vite, Vitest, PlaywrightCesium (3D Tiles), Three.js, Radio Garden API, OSM
PhysicsVelocity-vector arcade model, pure function, unit-testedThree.js physics, specific implementation unknown
The procedural approach (GTA 7) yields a testable, deterministic, infinitely extensible simulation. You can unit-test the vehicle model, the city generator, and the collision system independently. The world is fictional, which means there's no licensing surface with Google's Maps APIs and no dependency on tile availability.
The real-world approach (CrimeWorld) yields immediate geographic authenticity with essentially zero content-authoring work — the whole planet is the level. But it introduces hard external dependencies (Google 3D Tiles rate limits, Cesium SDK complexity, OSM data accuracy) and the visual fidelity mismatch between photogrammetry geometry and game-layer objects.

What transfers

Neither approach is obviously better — they're bets on what the player finds compelling. What's transferable:
The pure-core split pays off even in AI-built games. daemon-electricity's decision to keep Three.js out of the simulation modules made it possible to write gameplay tests that run in Node, catch regressions without a browser, and give Claude a reliable feedback loop when implementing new features. Any AI-assisted game with more than one weekend of iteration should adopt this pattern.
CLAUDE.md as product spec replaces external documentation. Both GTA 7 and CrimeWorld rely on the model reading the codebase context to understand constraints. GTA 7's CLAUDE.md is 75 lines of architectural invariants — coordinate frame convention, single physics model for all cars, determinism rule, lighting budget — written as rules Claude is expected to follow across sessions. Treating the agent's context window like a persistent engineering spec is what allows multi-session builds without drift.
The community as feature backlog is a real pattern. GTA 7's 73 commits trace directly to Reddit comment requests. The police chase, the radio, the pedestrian panic, the powerslide — none were in the initial zero-shot. The human in the loop here is not debugging or fixing AI mistakes; they're doing product management, accepting requests, and tasking Claude with scoped implementations. For hobby game projects this is a compelling development model: ship fast, let a community define the roadmap, implement with AI.
正在加载内容卡片…
The auto-generated TL;DR from the GTA 7 thread, generated by Reddit's mod bot after 80 comments, calls it a "live game jam" where "OP added" every feature the community asked for. That's a reasonable description of AI-assisted game dev in mid-2026: one human with product instincts, one model with implementation capacity, and an audience to point both of them at the interesting problems.

围绕这条内容继续补充观点或上下文。

  • 登录后可发表评论。