跳到正文
cryptomanavan ☀️· 来源· @cryptomanavan · X·· 2 天前精选AI 评分68
推荐理由

作者分享了单人利用多账号 Claude Agent 协作开发 Three.js 游戏的完整工作流与工程细节。

正文 · 原文

Long post but wanted to share where this is at and some of the struggles too!

DYSTOPIA dev update: weeks inside the buildings

DYSTOPIA is a noir city you can drive, fly and explore with drones. It’s just me and Claude Opus 5.5, building it in the browser with three.js, WebGPU, TSL shaders, Vite, TypeScript and Rapier physics.

The last couple weeks have been about making the buildings enterable, with interiors that hold up when you get close. We’re not there yet. A lot of the work went into getting the floor plans to make sense.

I run three Claude Ultra accounts. When one runs low, it writes a handoff covering what’s live, what’s half-done and what comes next. The next account picks up from there.

Each account gets roughly 20 hours of full-speed agent work a week, so three keep things moving most of the week. (mostly lol)

Each feature gets one agent to build it and three independent reviewers checking the numbers, realism and hard rules. Then fixes, another review and a final fix. On busy nights there are 10–12 agents running at once.

A scheduled guard watches usage and pauses the lowest-priority work before a five-hour window fills up. Paused agents pick up later from saved logs.

All testing runs in headless Chrome on one laptop: RTX 4080, 12GB VRAM, 32GB RAM. A game session uses about 13GB and can creep towards 20GB, so there’s also a little memory guard keeping the laptop alive. Only one game session runs at a time.

A few things shipped:

• three.js r187 cut cold boot from about 142 seconds to 75 in our A/B test. The upgrade also broke the reflection probes: half of each capture was rendering sky, putting a grey sheen over the wet roads. Fixed now.

• A doorway fix. Some rooms’ windows weren’t being counted by the portal culling, so walking through certain doors could make the city disappear and leave you in a void.

• Better seating models and a simpler loading screen.

Floor plans were the hard part.

The city has 37,491 buildings and about 2.9 million rooms, all generated deterministically from a seed.

The new interior engine works through a population census, floor plans, furniture placement with a constraint solver, and each household’s bedding, curtains and clutter. Web workers turn all of that into meshes, with zero shader compiles after boot.

The original generator tried to squeeze flats into building shapes made for the skyline. It kept searching for layouts until something passed the rules. After three rounds, only about 13% of tower floors had a plan that made sense.

So we switched to plan-first: start with a building type that works and let the building follow the plan.

Floors use whole structural bays. Stairs, lifts and risers come from standard cores. Flat layouts, from studios to three-beds and corner flats, are stored as data. A dynamic-programming pass splits the bays into flats, and kitchens and bathrooms stack over each other by construction.

Our first “100%” result was wrong.

The engine only accepted plans that had already passed, so the final check was just repeating the filter. Claude’s review caught that, plus stairwells drawn two to four times too big and upper tiers being judged as standalone buildings.

Each plan type now gets tested across a full grid of sizes and conditions: bay width, depth, floor height, income level and storey count. Hundreds of thousands of cells per type.

Only combinations where every cell passes go into an admissible table. Those get tested again at values the type wasn’t tuned on. Buildings then pick their footprint from that table in one step.

Four types are in so far: ring, slab, walk-up section and point tower. Together they cover about 8% of the city’s street residential buildings. Still a lot to do.

Around 1,200 buildings are slivers—stair towers and thin setback strips—that can’t hold homes at all. Next up are section towers, slab variants, light wells and shared cores for upper tiers.

The rooms are slowly filling in too.

The furniture catalogue is at 248 entries, one per shape, each with its own collision boxes and attachment points. Radiators, fridges, washers, boardroom tables, made beds, curtains, blinds, rugs and plants have replaced more than 20,000 grey placeholder boxes in test runs.

The windows WREN uses to get inside are always left uncovered.

Our automated QA also reported hundreds of “leaks” in the new rooms. Most came from the audit tool’s own adapter: double-counted ceilings, samples taken inside lift shafts and real windows being treated as holes.

Another bug: two white lines shooting off the drone every time it launched. Dead particle slots were still moving based on their age, sending them about 100 million km into the sky and drawing lines along the way.

And there’s the ongoing juggling of usage limits so nothing stalls halfway through a change.

I had a bit of a realisation this week.

When I sat down and mapped out everything left, it was more than I’d assumed. Every building type needs its own proven plans, then needs checking up close and bringing into the game.

After that there’s underwater, the map redesign, working lifts, the sound remake and a proper performance pass.

Honest estimate: around December 15 to finish. Longer than I hoped, but I want to do this properly. So I’m going to push and see this one through.

Rough plan, likely to shift:

  • Around Nov 10: towers and the starting area using the new interiors (this will be a big visible upgrade to DYSTOPIA)
  • Through late November: other building types
  • Early December: underwater, a map redesign and working lifts
  • Around mid-December: a full sound remake and final release

I’ll keep posting as it goes. If you have been watching this project, thanks for your support!

#gamedev #indiedev #threejs #webgpu #AIart

https://dystopia-noir.netlify.app/

来源:cryptomanavan ☀️ · x.com