Development November 2025

Road Rogue

A browser-based 3D car chase game built with Three.js — weave through a low-poly city while police cars close in, with a survival score that ramps up the tension.

Role

Solo Developer
& Game Designer

Timeline

November 2025
Self-Directed

Tools

Meshy Codex Three.js JavaScript

Platform

Browser-based (runs in any modern web browser)

Road Rogue gameplay screenshot

A vibe-coded 3D chase game, built with AI tools

Road Rogue is a 3D car chase game inspired by Smashy Road, built as part of a design course exploring AI-assisted creation. The brief was open: use AI tools to design and build something interactive. The result is a browser-based car chase — drive a getaway car through a low-poly city while police vehicles pursue you, survive as long as you can.

The project was fully vibe-coded: 3D assets generated with Meshy (text-to-3D AI), game logic scaffolded and debugged with Codex (OpenAI's coding model), and the whole thing wired together with Three.js. The workflow was more like directing than programming — describing what you want, evaluating the output, steering toward something that feels good.

Meshy + Codex + Three.js — the vibe-coded stack

The tools shaped the process as much as the concept did. Rather than modelling assets by hand or writing every system from a blank file, the workflow leaned into AI generation at each stage:

  • 3D assets via Meshy — the player car, police vehicles, and low-poly buildings were generated using Meshy's text-to-3D pipeline. Prompts described the shape, style, and level of detail; Meshy produced GLTF meshes that could be loaded directly into Three.js. Several iterations per asset were generated and the best selected — closer to art direction than modelling.
  • Game logic via Codex — driving physics, police AI steering, collision detection, and the score system were scaffolded through Codex. The approach was to describe a system in plain language, evaluate the generated code, identify what was wrong or missing, and re-prompt with more specific constraints. Codex wrote the first version of most modules; the final code was the result of directed iteration.
  • Driving controls — velocity and friction-based car movement that gives the driving a sense of weight, not just direct position updates. Acceleration, braking, and steering all feel distinct.
  • Police AI — pursuit vehicles track the player using basic steering, spawning progressively as the score climbs to ramp up pressure over time.
  • Procedural city layout — modular road and building blocks assembled at runtime, so each playthrough has a different layout.
  • Score and difficulty — survival timer drives the score; police speed and spawn rate increase as it climbs.

What vibe-coding actually teaches you

Using AI tools throughout the build changes the nature of the work — less typing, more deciding. The challenge shifts from "how do I write this" to "is this the right thing to build, and is what was generated actually correct." Codex can produce plausible-looking game logic that has subtle bugs; catching those requires understanding the system well enough to evaluate the output, which means you still need to understand the domain.

Meshy's text-to-3D output is stylistically unpredictable — the same prompt can produce wildly different geometry across generations. Treating it like a creative tool rather than a reliable fabricator worked better: generate many options, pick what fits the aesthetic, discard the rest. The low-poly city style emerged partly from what Meshy does well rather than from a fixed upfront vision.

The honest conclusion: vibe-coding gets you to a working prototype much faster, but the quality of the result still depends entirely on how clearly you can articulate what you want and how critically you can evaluate what you get.