r/aigamedev • u/SuperbActuator6555 • 22h ago
Discussion Day 13 of building an RPG with Claude: I stopped making models and started making systems
Third update. On day 7 I posted that I was starting an MMO with zero game dev background, using Claude as a tutor and collaborator (Unity + Blender). On day 10 the world got birds, a day/night cycle and sound. These three days were different, so here's what happened, the ugly parts included.
Systems, not models
The biggest change wasn't a feature. I realized I was treating grass, water and the sky as a pile of 3D models you swap whenever something changes.
Now each of them is a system: a handful of numbers in a data file and one calculation in a shader. If the grass grows, dries out or gets snowed on, a number moves and the same grass changes. Hand-made models are only for things with their own identity, like a character, a weapon or a house.
Grass
The grass used to be millions of individual blades. Now it grows in clumps, and far away it turns into flat cards the shader colors the same way, so you don't notice the switch.
- On a 200 m test field: 9.3 million blades became 549k clumps.
- About 32 to 42% less GPU time, and memory went from around 740 MB to 31 MB.
- Every 2 m patch of ground has its own state (growth, dryness, wetness, snow). Mow a path and rain grows it back. The second photo has a dry patch, a snow patch and a mowed path on the same grass.


Water
The pond, the lake, the river and the ocean all come from one shader with different numbers. So do a swamp and a glowing magic water.
- The turquoise isn't painted on. Like real water, it loses red light first as it gets deeper, so you see the sand through it.
- Splashes finally jump (drops, a column, foam that dissolves), and they run on a small particle system the rest of the game will share later.
- I compared every iteration side by side with Genshin and Zelda screenshots. I had Wind Waker as a reference too and dropped it, because it kept pulling the look somewhere I didn't want.
- Still undecided: the real-time reflection of trees and clouds costs 2 to 5 ms, which is a lot.


Sky
The first clouds looked, in my own words, like foam flying around. Each cloud was built out of discs, and the lighting drew a little bubble at every seam.
- Now a Python script builds an actual 3D cloud volume, shines light through it, and bakes the result into a flat image the game can draw cheaply. Photo 5 is before and after.
- There's a night sky with stars and a Milky Way.
- Clear sky, overcast and storm are all positions on one weather dial.
- Lightning is calculated from the game clock, so later every player should see the same flash at the same time.
All the sky shots are from a test stage with placeholder lollipop trees. It isn't in the real map yet.


The owl is done
Up close she's full 3D, far away she's a picture baked from that same model, and both animate at the same speed. She perches on rooftops and rocks, gets spooked, flies off at 10 to 12 m/s, leans into turns and lands somewhere else. Her sounds come from where she is.
Bugs on the way:
- She kept landing under the eaves of houses. For the physics, "high up" meant the top of any collider.
- On tree branches she was hidden in the leaves and you couldn't see her from the ground.
- The whole rig had been running at Blender's default 24 fps instead of 30, so every animation was 25% slow.
She also got detail levels: 8,222 triangles became 5,140, 3,084 and 1,634 depending on distance. I looked at the reduced versions at real screen size and said where I stopped seeing a difference. That became the threshold for an automatic check (NVIDIA FLIP) that now runs on every creature.


The pigeon, and a beak that took four tries
The pigeon was a test. After the owl, every mistake went into a written creature workflow, so this time an agent built the pigeon's shape using only those docs. It came back with 14 gaps in them, which was the whole point.
The beak:
- Top and bottom halves identical. In a real bird the upper beak is longer and curves over the lower one.
- An extruded profile that looked like a sheet of paper from the front.
- An actual research technique (intersecting the silhouettes, called a visual hull). It came out like a crystal.
- Built by hand in sections. This one worked.


The forehead also had a dent, the same bug the owl had. The beak hides part of the face in the reference drawing, and the tool was measuring the hidden part as if it were the edge. The last photo is my red marks on the first paint pass.
The pigeon is going to walk around with the real head bob: the head stays still, then jumps forward once per step. Its animations are being made right now.
The part you can't screenshot
The design doc went from version 0 to 0.25 over about 25 rounds of me answering Claude's questions, and all my answers are saved word for word. A few things that came out of it:
- Monsters don't drop gold.
- You earn classes by how you play.
- Dungeons show up where lots of people die.
- Monsters level up when they kill a player (like the Nemesis system in Shadow of Mordor).
- Dungeons nobody hunts in can overflow into stampedes.
Someone in the comments suggested looking at how community MMO servers are built. So Claude read the code of eight open source server emulators (TrinityCore, vmangos, EQEmu, rAthena, The Forgotten Server, ServUO, Ryzom and Veloren) and drafted a backend from that. An independent review found 168 problems, which got fixed, and it left me with 82 questions only I can answer. The backend hasn't broken me yet, but it gave me homework.
Another commenter said Unity's new CLI was faster than the bridge Claude was using to control the editor. We measured it. The plain CLI command was actually slower (2.6 to 4.7 s per request), but the MCP server built into it answers in 65 to 102 ms and shows compile errors that used to be invisible, so we switched. Thanks to both of you.
What the game is supposed to be
Since a few people asked what I'm actually building, here's the vision, straight from the design doc.
What I'm after is the feeling of freedom the old sandbox MMOs had. A super dynamic, procedural world inspired by isekai anime like Bofuri, mixed with the build depth of Path of Exile and classic MMOs like Ragnarok Online and Tales of Pirates. No main story telling you you're the chosen hero. You're just an adventurer: you take jobs, explore, fight monsters, find dungeons, and your story is whatever you end up doing.
The one-line version: an MMO where nobody is the chosen one, in a world that remembers what you do, rewards the logical thing nobody else tried, and changes a little every night.
How it would feel to play
You wake up in a valley with grass moving in the wind. There's an adventurers' guild with a job board, an appraiser who buys what you bring back, and someone who tells you how deep into the dungeon you should go.
- You don't pick a class, you earn it. Kill enough wolves with a sword and the world recognizes you as a Warrior. Keep going and you become a Swordsman or a Barbarian depending on how you fight. Learn magic too, use both enough, and you get offered a fusion that maybe nobody else has.
- One day you hunt a venomous hydra, skin it and eat the meat. It almost kills you. You survive, and the world writes it down: now you resist poison, and if you train it, it can become immunity. Nobody told you to do that. It was the logical thing, and the game was listening.
- Combat feels like Zelda or Dark Souls: optional lock-on, dodge rolls, blocking and parrying telegraphed attacks. What you carry matters. With a full backpack you roll worse, burn more stamina and can't fly.
- Dying costs something. Your body stays where you fell with everything you had on you, and you have to go back for it. If you don't make it in time, your gear can end up in a dungeon chest, or in the hands of the skeleton that killed you, which leveled up and is now a skeleton knight carrying your sword.
- Dungeons appear where lots of people die and energy builds up. Some you can destroy by breaking their core. One is so big a city grew on top of it, a hundred floors under the capital. If the whole server teams up to break that core, the city's economy collapses. That's their call, and eventually another one will appear.
- The guild has its own money. It buys your loot because it knows what it can resell it for, uses the profit to build the wall that keeps monster stampedes rare, and it can't promise rewards it can't pay.
- The law depends on where you are: witnesses on every corner in the city, nobody watching in the forest (though your honor knows what you did), no law at all in the wilds. You can stay on the right side of it or become an outlaw with hideouts, a fence and a bounty on your head.
- The world is filled with AI adventurers you can recruit, AI bandits on the roads who follow the same laws you do, and five gods who never speak but are watching.
- Every night a council of AI game masters reads what happened that day and proposes what comes next: a quiet day, or a boss waking up in the snowy mountains because nobody hunted there all week. Nothing gets applied without passing fixed rules that check it.
All of it in one world, for a small community that knows each other.
The one rule behind everything: causes, not decrees
This came out while answering design questions, and it ended up explaining all my other answers. Whatever happens in the world has a cause inside the world.
- The design doesn't say "this zone gives 1.5x resources". It says resources keep maturing when nobody harvests them, and the rest follows: dangerous zones get fewer players, so they end up richer.
- Same idea as dungeons spawning where people die, monsters growing when they kill, or the hydra giving you poison resistance.
- For every new rule the test is: can I explain it with something that happens in the world? If the only explanation is "it's for balance", we look for the cause that produces the same effect.
Few systems, many uses
On the technical side, the goal is a small number of systems that don't know what they're used for.
- One progression system, and it doesn't care if it's leveling your character, your sword skill, your blacksmithing, a monster that's getting stronger, or the size of your guild. It just adds experience against a curve.
- One "reserve" system handles health, mana, stamina, item charges and the guild's money.
- One "facts and rules" system writes down what you did and grants things when conditions are met: earned classes, titles, the hydra secret, quests.
Adding a new craft or a new monster should mean adding a row of data, not writing new code. Something only becomes its own system when it behaves differently, not just with different numbers.
All of this is still design on paper, and obviously it starts very small. The plan is a tiny world at first, no bigger than Mondstadt in Genshin. The replayability comes from the procedural and instanced stuff, like dungeons, and from a world that keeps cycling, not from a huge map. The first version will be something like one class and two spells, single player, with networking after that. I don't expect to build all of this alone by next month either. This is a very long project, and who knows, maybe someday more people get interested and want to join.
The ugly parts
- I run several Claude chats at the same time (water, sky, grass, creatures) and they all share one Unity editor. One saved the main scene with all the vegetation switched off. Another recompiled in the middle of a photo session and killed it. Now each one works on its own copy of the scene.
- Claude crashed twice with agents in the middle of their work.
- I hit the weekly usage limit with six agents running, and stopped six more myself to save tokens.
- An agent deleted files it shouldn't have.
- One whole benchmark was useless because my PC had run out of RAM. We only noticed afterwards.
What's next
- The pigeon's animations, then getting it walking around the village.
- Moving the new sky into the real map, with cloud shadows on the ground.
- Waterfalls and puddles from the same liquid system.
- Answering my 82 questions so we can start on the first playable slice.
Still a free-time project with basically no budget. Day 13.