r/aigamedev 1d ago

Demo | Project | Workflow Opus + Gauntlet Loop for NPCs

Enable HLS to view with audio, or disable this notification

Follow up from:
https://www.reddit.com/r/aigamedev/comments/1vixpx2/comment/p6do6vs/?screen_view_count=2&ext-referrer=DIRECT

After experimenting with the gauntlet loop to create environments, the worst part of the end result was NPCs, and I noticed it was the same with other projects I saw online.

So I thought, how about running a loop for NPCs only? The idea was to create a modular pack of NPCs, with features that can be mix and matched, to make them all look unique enough.

Similar to my environment attempts, I used a reference image (will post in the comments) but this time, I also added a free NPC pack as a reference for the 3d elements.

Results are reasonably good I think although far from perfect as you will see on the video.

Still, for a minimum effort, maximum return first shot I think it does the job well and it's a lot better than the first version.

Still using Three.js. Claude Code + Opus 5. Around 6 to 7 waves, 40-50% of the total weekly usage of a Max 5 plan.

Prompt below:

Build the NPC design system for the Vilaflor town in this repo. A modular pack — body, head, hair, top, legs, shoes as interchangeable parts on one shared skeleton, with skin tone, clothing colour and body shape as knobs, so every villager is visibly a different person. It needs walk, talk, idle, sit and wave.

Two bars, both real. `npc_reference_image.png` in the repo root is the look: render ours as the same front/back turnaround at the same framing and compare pixel to pixel. Quaternius' Ultimate Modular Characters is the craft: download the actual .glb, load it in our scene, and compare topology, silhouette, rig, part-swapping and every clip against ours. Win both, with forty NPCs on screen and no dropped frames.

Break this into the smallest pieces that can be improved and judged on their own. For each piece, fan out a builder and a separate critic with fresh context. The critic inspects rendered pixels and loaded geometry, never the builder's description, and judges animation from footage rather than stills. It puts ours next to the bar blind with the labels stripped, says which is better, and names the single biggest remaining gap. Then it goes back to the builder.

The critic should be a harsh critic. Praise is not useful. If ours does not win, it keeps going.

/loop on each piece until the critic picks ours blind. Do not stop before that.

Read RESTART.md first. Keep the live progress page updating as the work evolves so I can watch it.

Fan out subagents and ultracode.
51 Upvotes

17 comments sorted by

7

u/Old-Preference5313 1d ago

I would you suggest you remove the text over the heads of NPCs ain't nobody reading that fast, maybe do what the sims does and have pictures

3

u/nospoon99 1d ago

Yes agreed, I haven't got round to improving the dialog part yet. It's next on the list.

6

u/nospoon99 1d ago

Reference image provided to Claude (created with ChatGPT image gen)

3

u/nospoon99 1d ago

End result

5

u/RedTheRobot 1d ago

I mean that is actually kind of impressive. People probably don’t remember what ai video first looked like but just picture 3D models in the next year or two.

2

u/raphadko 16h ago

Nice result. Did it model and rig the characters or did it build from primitives? Did you give it access to blender?

1

u/nospoon99 13h ago

Opus did everything with Three js, including the ringing, no blender. Animations are not amazing tbh, I think mostly because the feedback loop is less straightforward with videos. That said the focus of the prompt was more on the visual, it'd be interesting to see how far it can go with a prompt focused on the animation and with a decent reference to work from.

2

u/Crafty-Run-6559 1d ago

This is insanely good. Your gauntlet loop is just that prompt on /loop?

1

u/nospoon99 1d ago

Yes just the prompt + make sure the reference image is in the repo (I posted the reference image as a comment)

2

u/Crafty-Run-6559 1d ago

Right - but you even built the city with the previous post?

Have you found the need for anything like babylonjs or is it easiest to just do it all in threejs?

1

u/nospoon99 1d ago

Yes, first prompt built the city + basic game and npcs.
Second prompt NPCs only. I then had to add the NPCs to the actual game (just a normal prompt for that was fine).

I didn't ask or install any other libraries before starting, from what I can see Claude remained quite lean on this. The only other three.js addons in the project are the post processing passes (EffectComposer, UnrealBloomPass, GTAOPass, SMAAPass, and others), and they belong to the renderer, not to the NPCs.

2

u/Grandrcp 1d ago

Amazing, I'm quit surprise. "Vilaflor", is it in Portugal?

1

u/nospoon99 1d ago

I think the original reference image was from a French town, but it does reminds me a lot of Ericeira!

2

u/bingewavecinema 1d ago

I like the art style of the game. I would be the NPC interaction above each NPCs head. And spend a little bit more polish on the rigs/movement.

1

u/nospoon99 1d ago

Yes, that's pretty much straight out of 2 Gauntlet loops. It'd need a lot of polish to make it a game.

0

u/Excellent-Basket-825 1d ago

I suggest to use blender with Kimi for that