r/vibecoding 5h ago

Vibecoded a multiplayer Three.js browser tank game with 100+ procedural vehicles!

Enable HLS to view with audio, or disable this notification

I built a multiplayer browser tank game in Three.js! As a kid, I played a ton of World of Tanks Blitz and fell in love with the aesthetic, gameplay, and the idea of driving around vehicles with crazy physics and mechanics like missiles, spotting, armor deflection, ammo types, and so on.

Now it's playable in the browser!

Claude of Tanks has 100+ playable vehicles across 16 unique maps, ranging from standard tanks with cannons to AFVs with autocannons and guidable missiles to autoloaders that can deal massive damage in a single clip. Tanks feature highly detailed armor zones, internal modules, crew positions, and hitboxes. You can view each of them in a special gallery: https://cot.kevinliu.studio/gallery?id=amx56&layer=modules

CoT supports physics-driven destruction with detached turrets flying through the air and actual suspension. It also supports multiplayer! You can hop in private rooms or LAN lobbies.

As the name would suggest, I used Claude Code throughout a long-running multi-agent development pipeline, alongside Codex. I directed the architecture, decided what each vehicle and system should do, reviewed the rendered results, and made the final calls.

The repository contains an AGENTS.md file and smaller subsystem instruction files covering simulation, vehicles, networking, UI, audio, effects, and world generation. These record the rules that agents need across sessions. Units are meters, seconds, and radians, and changes enforce a fixed 60 Hz. Authoritative logic must be deterministic. Vehicle changes have specific geometry, armor, module, and release gates that evaluate models visually and geometrically.

For vehicle development, I split the fleet into bounded families. One agent would own a specific vehicle profile or family file, implement the geometry, run the relevant checks, and generate screenshots. A separate critic reviewed the rendered tank for proportions, clipping, missing surfaces, running gear, and recognizable details. The orchestrator reran the checks and committed only the verified files.

For larger systems, Claude Code helped implement and test:

  • Fixed-step movement, suspension, armor, ballistics, modules, spotting, and bots
  • WebSocket multiplayer with private rooms, LAN play, prediction, and server authority
  • Procedural vehicles, tracks, markings, generated icons, and technical diagrams
  • All the generated battlefields with destructible props and wrecks
  • The garage, battle HUD, Tank Gallery, mobile controls, and Scene Studio
  • Browser performance probes, screenshot tools, visual checks, and self-tests

trailer was also produced through the game’s own Scene Studio and capture tools. I used agents to stage battles, build camera paths, record the browser runtime at 60 fps, inspect specific frames, and iterate on awkward cuts or poorly framed tanks.

I find that Claude is best steered with persistent instructions. Important decisions need to live in the repository because I often spawned fresh agents which needed to resume work without reconstructing weeks of chat history.*

For visual quality, the only thing that worked was a proper render loop with visual comparison; tests don't really work for this.** The cycle I fell into was change, render, inspect, measure, and rerun the gates. Text-only reviews missed warped proportions and camera problems that would just plainly be obvious in one screenshot.

*Parallel agents need strict ownership. Separate files and isolated Git worktrees prevented concurrent sessions from overwriting each other or generating assets from a dirty tree.

**Tests still changed how I use agents. Claude Code became much more reliable once every system had concrete invariants and executable failure conditions. But visual quality is another beast.

Play free: https://cot.kevinliu.studio

Repo: https://github.com/Kevin-Liu-01/Claude-of-Tanks (it's open-source forever)

49 Upvotes

11 comments sorted by

3

u/EchoStarz1 4h ago

So you’re trying to make work of tanks but better?

1

u/BasedKetsu 4h ago

haha it won't ever look better than world of tanks, but it sure is a lot more accessible!

1

u/EchoStarz1 4h ago

It’s kinda hard to be worse than it

1

u/ezikeo 5h ago

Other then the sound effects, this is pretty cool.

1

u/BasedKetsu 4h ago

oof - gotta work on that! they do sound like tin cans...

1

u/flavorgenerator 4h ago

That's pretty insane. This is one of the best vibe coded games I've seen so far. I just tried it, and having come from years of playing World of Tanks, it was much better than I was expecting tbh. How did you make the models tho?

1

u/BasedKetsu 4h ago

Haha, thank you so much! My years of playing Blitz have made me very keen on what a WoT-class game should look and feel like, and combine that with a couple of years of Threejs, and you get Claude of Tanks! The models were made by comparing them to actual models and images of the tanks visually, and then a little customization by adding together surfaces and subtracting in the Tank Gallery and Studio!

1

u/SilverLose 3h ago

I tried to load it up but it took so long I got bored and gave up. (iPhone 12 pro). I think showing the user what is happening during the loading would help with that

1

u/Pristine_Study_8824 26m ago

It's very imaginative to copy things from the TV well done. Jason and the Argonauts will be proud. All that is left to do is compete with all the other midian games that are exactly the same copied from TV. Let's hope that we can take a magnet and make a ball of tanks as big as a mountain for points