Building Agoro Road in public

A working log of a game that is not finished. What I decided, what it cost, and the things that came out wrong — including the ones I had already told myself were fine.

Updated 7 October 2026 Newest first In development
The standard this page holds itself to

Everything here was true on the date above it. Concept art is labelled as concept art and screenshots are labelled as screenshots, because on this project the difference between them has been the whole problem. Where a decision reversed an earlier one, the earlier one stays on the page.

Agoro Games is one person, Daniel Duroshola, working with AI agents. Every agent-made piece here is labelled as such, and Daniel is responsible for every word.

Where the road stands

The short version, kept in one place and updated with the log. Every other page and every post starts from this list.

Status 7 October 2026Every surface, with its state
Play free in the browserLiveThe complete Hearthland region, co-op by private code, no account.
GamefoundIn preparationThe preview page is live; follow it now. Agoro Road and Agoro Camp in one Gamefound Express campaign, launch planned for 16 October 2026 at 12:00 (CEST), running until 30 November 2026. Your name in both games €5 · Agoro Road from €12 · both games from €25 · figurines from €25 · You in the game from €250.
iOS · App StoreIn preparationThe app identifier is registered with Apple. The store record and the first build are being prepared now; the date is announced here when the build is submitted.
Android · Google PlayIn preparationSame build. No Play listing exists yet; it follows the iOS record.
The road in 3D (web and desktop)In preparationAll eleven objects are the real ones now, and the view with dusk, night and dawn is in the game. It stays switched off by default until its known faults are fixed.
Figurines, printed hereIn preparationFirst travellers printed in September on the studio's own printer, in magenta — the one colour I can promise today; two more filaments are being tested.
RevenueCat Shipaton 2026In preparationAgoro Games builds in public for it and this log is the hub for those posts. Submissions close 30 September.
Tripothon S1RegisteredRegistered on 14 September. Submissions run 15 September to 5 October. Which game is entered — the road in 3D or the camp at ground level — is being decided.

The browser game was the first prototype. It led to an Unreal Engine version on a tablet, and on 6 October both went into the Tripothon.

The browser game at road.agoro.games is still the first prototype, and it is still free to play. On 5 October it got a switch between the painted 2D view and the 3D view, and four new worlds, painted for the 2D board, joined the journey. Eight worlds now run from First Light to The Crossroads, at four difficulty levels.

What the browser game taught me went into a second build in Unreal Engine 5.8, made from the same Tripo models. On 4 October it ran on a mobile device for the first time: I played the whole Hearthland journey on a Galaxy Tab S7+, start to end, without a crash. In the days after, it got touch controls, a flick that turns a stamp to face where you point, the four difficulty levels, the four new worlds, a two-finger twist that turns the camera, and settings for graphics and resolution. The goat, which had been sliding along the road in its rest pose, walks now.

This build is not public and not finished, and some of it is plainly wrong. On the tablet no graphics setting holds 30 frames a second during a wave yet. The travellers stand by the caravan, but they do not walk the roads and they do not guide the animals off the road yet; that is the next piece of work. The keeper, the woman who guides the animals home, has existed since 6 October as a rigged Tripo model with a walk and guiding gestures, but she is not in the game yet. Both are planned for the mobile app stores as two versions of Agoro Road: the app version of the browser game, and the Unreal version as a separate Special Edition.

On 6 October I entered both into Tripothon S1, Tripo's world-building hackathon. Agoro Road went into the Game track, with a walkthrough filmed on the tablet and in the browser. A second entry, The World You Can Hold, went into the Physical Design track: the same Tripo models, printed as figurines on the studio's own printer. The Demo Day is in Barcelona on 17 October.

Since 7 October the download for the jury holds the Android build and a Windows build. The Windows build was packaged on 6 October and has not been played on a Windows PC yet; the Android build is the one I tested.

The Agoro Road walkthrough · The World You Can Hold

An AI agent drafted this entry from the project record. I am responsible for every word.

What changed — the road is now one game in two builds: the free browser version, and an Unreal version that runs on a tablet but is not public yet. It is also the first time the road was entered into a contest.

Agoro Games now has a Steam account. Nothing is on the store yet, and the first wait is Valve's.

Today I set up the studio's Steamworks account and paid Valve's product fee for the first game: €84.99, including VAT. The fee is per game, so one payment opens the account and buys one place on the store. Agoro Road and Agoro Camp are both headed for Steam, which makes the second game a second fee. Both are planned for the Epic Games Store as well.

I wanted to switch my store to Estonia first, because that is where the company is registered. Steam does not work that way. The store country is where the person paying lives, which for me is Portugal, and the company's own country goes into the paperwork that follows. So the fee went through the Portuguese store, and the studio signed up as the Estonian company it is.

The paperwork is done and it is Valve's turn. Its identity and tax check can take up to ten working days, and until it clears there is no store page to build and nothing to wishlist. After that come two waits nobody can shorten: at least 21 days between the fee and any release, and a public coming-soon page for at least two weeks before launch.

The part that holds this game back is not Valve. Steam asks for at least five screenshots of real gameplay, landscape, 1920 by 1080. Agoro Road does not have them yet. That is the next piece of work, and it will be written here when it is done.

What changed — Steam moved from “nothing filed” to “account open, check running”. The store page, the screenshots and the second fee come next.

The stand-ins are gone and the road has its evening. All eleven objects are the real ones now, and the 3D view is in the game with dusk, night and dawn — behind a switch, not yet the default.

On 19 September the road held sixty frames a second in 3D, but eleven of the things standing on it were stand-ins: the tree, the wall, the sacks, the waymarker, the shrub, the small lantern, the caravan and the four stamps. This week an agent made all eleven again, this time from the concept art, one approved reference picture per object before any model was built.

I looked at the four stamps before the other seven were made, and not all of them passed. The agent's own review found that the garden stamp grew two solid shapes the concept never had and too few herbs, and that the drum's lacing breaks in the version made for a game engine. I chose a working demo over a finished one: they went in as they are, and the garden stamp stays on the list to be made again.

On 23 September the 3D view was merged into the game itself. Every test passes, and the same sixty-frames check still holds with forty travellers on the road. The pictures below are the real game, the same saved journey at Lantern Bend, before and after the new objects — taken before the evening look went in, so the camera there still points straight down.

Later that night the look went in as well: dusk while you build, night while you defend, dawn when the road holds, with a tilted camera, hills and a treeline. I played it on my own machine and decided that this is the version that goes public. It still has faults I can see: the ground and its borders repeat, the tree crowns are coarse, and the dawn light is simpler than the concept. A design review this week also said plainly that the four stamps still differ only in their numbers. What the first release of the road includes is my decision to make, and it will be written here when it is made.

Screenshot of Agoro Road in its 3D view at Lantern Bend: a winding sand-coloured road on a green field, with the earlier stand-in models of a tower, a lantern post, a drum, a planted garden bed, a wall and a leafy tree
Before, with the stand-ins. Screenshot of the game, 23 September. Same saved journey, same camera.
Screenshot of Agoro Road in its 3D view at Lantern Bend after the new models: a timber watch tower, a hanging lantern on a post, a barrel drum on a cradle, a roofed garden stamp, a dry-stone wall and a dark-crowned tree beside the winding road
After, with the new objects. Screenshot of the game, 23 September. The garden stamp is one of the pieces still to be redone.

What changed — I stopped holding the 3D view back until every object was perfect. It is in the game now, switched off by default, with its known faults written down beside it.

A week in one colour. The travellers exist as objects now, and they still carry the marks of how they were made.

Photographs from the studio table, 15 to 20 September. Everyone was printed in the one colour on the spool, magenta: the walker, Amara twice, an orc who is not on the road yet, Daniel with his staff — and a stepped tower that is not a character at all, but the piece that tells the printer how hot to run.

Two of the figures in the row still wear their supports; the strands under the two Amaras are what holds a printed dress up while it is made. The orc kept his pillar and a web of fine threads. He is in the picture because that is what the process looks like on a bad afternoon, and this page keeps the bad afternoons.

From behind, the purple figure shows what the supports leave when they come off: a rough hem, marks down the calves. Sanding helps a little. A different material may help more, so two further filaments are on the list to test. Until they pass, magenta is the only colour I can promise anyone.

The travellers also stood somewhere else this week: inside a Fortnite test island, on a tablet. Forty-one of the studio's objects went into an island in Epic's editor and the private version was played on a Galaxy Tab. The carrier with his pack and the walker in his dark coat stand beside a Fortnite avatar — the avatar is Epic's, because the studio's own cannot be played there; the licence allows these travellers only as characters you meet. A test of the pipeline, not a place the studio is moving to.

And on the studio's own Mac, Unreal Engine 5.8 now runs, and a first-person walker moves through the reconstructed camp on the ground the world reconstruction gives it. That is the ground-level camp this log keeps mentioning as the road's sibling. Nothing of it is a game yet; it is a person standing in a photograph you can walk into.

Six magenta 3D prints in a row on a wooden bench: a small walker, two Amara figurines still wrapped in support strands, a small orc, a stepped temperature tower marked 40 to 120, and Daniel with a staff
The row, 16 September. Photograph. One spool, everyone on it. The two Amaras still have their supports on.
A small magenta 3D-printed orc figure with a tall support pillar behind it and a web of fine printed threads across its body
The orc, same day. Photograph. Pillar still on, strings everywhere. Kept on purpose.
A purple 3D-printed figurine seen from behind on a wooden table: textured hair, a jacket, a rough hem and marks down the calves where supports were removed
What the supports leave. Photograph, 15 September. The hem and the calves after the removal.
Six seconds at the window. Video, 15 September. The printer on its bench, the first two travellers in front of it.
A tablet on a keyboard showing a Fortnite test island: the carrier with a large pack on his back and the walker in a dark coat stand on a grey plaza beside a Fortnite avatar, a white building and a stylised tree behind them
The carrier and the walker in a Fortnite island. Photograph of the tablet, 20 September. The avatar in the middle is Epic's.

What changed — I stopped describing a print that does not exist yet. The pages now say magenta, because that is what is on the table; other colours and other materials appear here when their test prints do.

Epic says you need a PC. I ran their editor on a MacBook — and then hit three walls that had nothing to do with the Mac.

Unreal Editor for Fortnite is Windows-only. The documentation is blunt about it: to use UEFN, you will need a PC. I do not have one here. So Windows went into a virtual machine on the laptop, and the editor opened, and Verse compiled, and the travellers, the cart, a tree and a watch-post stood in a Fortnite island that I then played on a tablet.

That part worked. The three things I learned next are the useful part, and none of them is about hardware.

You cannot be your own character. The player in Fortnite is a Fortnite avatar. The realistic-human system is allowed in the editor, but the licence permits it only for characters you meet, never the one you play. A game whose whole subject is the traveller you are cannot put its traveller in the player's hands there.

The game will not run where the editor runs. Fortnite needs a security feature the virtual machine cannot provide, so the editing happens on the Mac and the playtesting happens on a tablet, by code. That loop works, and it is slower than it sounds.

And the photographed world could not come in. I had rebuilt the rest camp from eight generated views — as a cloud of points it is genuinely good, the best look at this place there is. Converted to the kind of surface a game engine wants, it is confetti: over a million fragments that do not simplify. Cutting it by more than ninety-nine per cent removed a third of them. It is a picture you can stand inside, not geometry you can build on.

What changed — I now ask whether a platform can host my thing before spending a day making my thing fit the platform. Every one of these three walls was published, or measurable, before I started. The detour was not wasted — I came out with a working Windows lane and a reusable route for the studio's own models — but the question that would have found the walls costs an afternoon of reading, and I did it in the wrong order.

The 3D view holds sixty frames a second. It still is not something you can look at.

The second renderer is finished. Same game underneath, two ways of drawing it: the original flat view and a real-time 3D one, sharing one simulation that neither of them is allowed to touch. Both replay an identical recorded run to an identical result — the proof that the 3D view is a view and not a second, subtly different game.

On the test deployment it draws a frame in about 16.7 milliseconds, and the slowest one in a long run took 16.8. That is a locked sixty frames a second with forty travellers walking and roughly seven hundred thousand triangles on screen. Seventeen of seventeen checks pass.

And it is still not shippable, because eleven of the objects standing in it are placeholders — the ones described in the entry below, generated from written descriptions instead of from the concept art. The renderer is done. The thing the renderer draws is not.

What changed — "the renderer is finished" and "the game looks right" turned out to be independent, and I had been quietly treating the first as evidence for the second. A performance number cannot see art direction. I now report them as two separate states, because a green build that draws the wrong objects at sixty frames a second is still the wrong objects.

And — the asset work moved off a person clicking through a web tool and onto something the build can run directly. That removes an entire class of mistake I had been making: the settings in that tool silently reset between steps — privacy, detail level, which animations get exported — and three separate sessions lost work to it. The replacement is not cleverer, it just cannot forget a checkbox.

The obvious setting did nothing. So I measured where the supports actually touch.

Yesterday's two prints (below) failed on one quantity: material left on the figure. The slicing checks had passed both files, because none of them measured that. So the first thing built this morning was the missing instrument: a script that reads the finished toolpath and reports how many square millimetres of support tips touch the model, in how many spots, and whether any support trunk grows out of the figure itself.

Then the setting everyone reaches for. "Supports on the build plate only" sounds like the fix for residue. On Daniel's file it changed 191 mm² in 1,083 spots to 184 mm² in 1,040 — because every one of the seven trunks was already standing on the plate. The residue was never the trunks. It was the tips under the bag, the hands and the chin, and the branches brushing the walls on the way up.

What did move it: thinner trees with a single wall, a wider gap to the walls, a taller gap under the model and a steeper threshold. Daniel 191 → 127 mm² (with the soles cut flat so nothing sits under the feet). Amara 178 → 45 mm², with no struts, no posts and no block — the two curls that still started in mid-air got a hidden 1 mm bridge into the hair mass, two millimetres long, that never has to be removed. Twelve small tilts of each figure were sliced and measured; every one was worse than standing upright. Layer height turned out to be a lever too: at 0.14 mm instead of 0.2 mm the tips on Amara fall to 8.5 mm², for 27 more minutes of printing — sliced and measured, not yet printed.

The printed 80 mm Amara figurine seen from behind: purple PLA, six short post stubs at the nape below the hair, rough support residue between the legs under the dress hem
What the instrument was built to measure. Photograph of the first Amara print: the posts at the nape and the block residue under the hem.
The printed 97 mm Daniel figurine lying on a wooden table: purple PLA covered in fine strings, with rough patches on the shoulder bag and along the walking staff
The same day, Daniel at 97 mm. Photograph. Fine strings over the torso, tree scars on the bag and the staff.

What changed — a print is judged by residue on the figure, measured from the toolpath, not by the share of support in the file. And "find a way" means a different approach on the table next to the tuned one: today's plan is both figures at 120 mm on a base plate (sliced: 5 h 07 and 6 h 17), a support lane that grows its own thin pillars from the plate with pin-point tips instead of the slicer's interface layers, two research passes on how other figurine printers handle supports and layer heights, and the first print of the reworked Amara.

I printed the first two travellers on my own printer. The supports won.

Two figures came off the desktop printer for the first time: Amara Sol at 80 mm and Daniel at 97 mm, in the one purple filament loaded. Each carried a different answer to the same question — how to hold up hands, a pot, a hem and hair curls while they print.

Amara used my own answer: thin struts and pegs fused into the model, snipped off afterwards, plus a solid block under the hem. Daniel used the slicer's tree supports. Both answers were wrong at this size. The pegs behind Amara's hair and under her earrings cannot be reached with cutters at 80 mm. The block under the hem left rubble between her legs. Daniel came off the plate covered in fine strings, with scars where the trees had held the bag and the staff.

Around the print, the pieces that let people watch it went live the same day: a browser view that replays the toolpath as the printer reports its progress, a post every five per cent to the community server, and a "wake the printer" walkthrough for the stream. None of that changes what the prints look like; it changes who can see them.

The printed 80 mm Amara figurine lying on its side on a wooden table, purple PLA, with thin support rods still attached from the dress to the hands and pot
Amara at 80 mm, first print. Photograph. The rods from the dress into the hands were my design — and they do not come off cleanly at this scale.

What changed — struts and pegs fused into a figure under 100 mm are retired; whatever holds the print up has to stand on the plate and touch the figure as little as possible. And every check that said these files were ready is now paired with one that measures what the checks had missed.

I put the renderer's own screenshot next to the concept art. Nobody had ever done that.

The 3D view had passed everything asked of it. The same inputs replay to the same frame over six hundred frames, the frame times are fine on a phone, the fourteen finished meshes stand on the right rings. All of that is true and all of it was verified.

What nobody had done was put a capture of it beside the picture it is supposed to look like. When I finally did, the distance was not small. The ground is one flat green plane with no horizon. The road is a beige ribbon. The carved stone rings — the hero element of every frame in this game — are translucent pale discs at thirty per cent opacity.

None of that is a bug. Every one of those is something that was never built, passing a test that never looked.

The Agoro Road 3D view on 13 September 2026: a flat green ground plane, a beige road ribbon, translucent pale discs for the rings, and the finished meshes standing along the road
The build, 13 September. A capture from the real renderer, at the game’s locked camera.
The concept frame: Lantern Bend at dusk, a winding earth road through an upland valley with carved rings, a watch-post, a lantern post and a garden bed
The concept frame it is judged against. Lantern Bend at dusk.

What changed — the look is now part of acceptance. A capture goes beside the concept frame and gets judged the way an art asset gets judged. A test suite that does not include the look will happily certify a build that does not look right.

Eleven props came out wrong. All eleven are being redone, not the six that failed.

The buildings and props were generated from written descriptions. The concept art for most of them already existed, in the same folder, and was not used.

The drum came back as a black cast-iron cauldron. The lantern came back as a Victorian street lamp. The goods cart came back as a wooden barrow. Judged one by one against the cards they were meant to match: four were the wrong object or the wrong palette, two had no card to judge against, and five were close enough to ship at map scale.

The tempting call was to redo the four and keep the five. Daniel ruled the other way.

we need consistent look across the concept art and props and images and trailersDaniel, 13 September 2026

So all eleven are being made again from the art, not from descriptions of the art. The five that were individually acceptable were not acceptable as part of a set, because a set is the thing actually being made.

Correction, 20 September. Two of the three examples above are right and one is not. When I finally rendered the delivered drum and looked at it, it is a drum — a standing drum on a stand, the correct object. What is wrong with it is the material: lacquered orange, where the card is hide, rope and weathered wood. The "cast-iron cauldron" line came from a written note that nobody checked against the model, and it then travelled through three of the studio's own documents as though it were an observation. The mistake it describes is real; the example was wrong. The original sentence above stays rather than being quietly edited, because the failure it caused — asserting about an image without opening the image — is the same failure this entry is about, and I made it while writing the entry.

The concept card for the Echo Drum: a large standing drum with a hide head and rope tensioning on a carved wooden stand, two beaters on the rim
The Echo Drum as designed. This card existed before the model was made. The model came back a cast-iron cauldron.

What changed — "acceptable in isolation" is not a pass when the job is one art direction. And I inventory the concept art before generating anything, because the picture is a better brief than any description of the picture.

I ran a bake-off that reversed my own recommendation.

Earlier in the week I had recommended one of the AI image providers used for making reference plates. That recommendation had a caveat written into it by the person who made it, and the caveat was the honest part: nothing had ever been compared against the alternative. It said this provider is good enough on the studio's art. It did not say this provider wins.

So I closed the gap: the same jobs through two providers, seven configurations, three runs each — twenty-one images for about forty-seven credits, roughly what a single wrong 3D asset costs to make.

The other provider won, and the plate work moved. I had been about to standardise on the recommendation without ever having tested it.

What changed — a recommendation that has never been measured against an alternative is a preference. If I cannot name what it beat, it has not been decided yet.

Three travellers that came out right, and why they did.

These three went a different route than the eleven. The concept card was turned into a clean standing plate, and the plate — not a description — was turned into the model. Rigged, with idle and walk.

The same person survives all three stages. The scarf, the satchel and the head wrap are still there at the end. The roped bundle on the carrier's back came out as real geometry rather than a painted-on suggestion.

That is the entire argument for driving this pipeline from art instead of from text, and it is why the eleven are being done again.

Concept card for the road walker: a traveller in a hooded cloak over an indigo tunic, with a satchel and a walking staff
1 · The concept card. A drawing.
The finished road walker game asset: the same character as a rigged 3D model
2 · The finished game asset. The same man — the grey-flecked hair, the undyed wool cloak, the indigo tunic, the satchel and the staff all came through. Only the pose changed.

The companion is a bird, and the animation library turned out to have no birds in it.

Kofa is the Sankofa bird. He was built for Agoro Camp and he belongs to the studio rather than to one game — the same bird, the same look, different abilities in each — so bringing him to this road costs nothing to design. His loop is retrieve, reveal, scout, and scout only unlocks on ground whose past you have already retrieved. The future is not visible until the past is known. That rule is the character, not a flavour text.

The gold egg he carries is the read-out for it: empty means this place's past is still lost. That works because the egg came out of the mesh as a genuinely separate object, so the game can actually light it rather than just imply it.

The mesh is finished — textured, with a fifty-six-bone rig. Then I opened the animation library I had planned to take flight cycles from and found it classes a two-legged bird as avian, and its avian section is empty. Not thin. Empty.

So every clip he has will be hand-authored. That is a real cost and it is now in the plan rather than in a surprise.

Update, 13 September. When I went to pose him, he shredded. The rig was not merely missing its animations — its skeleton was in the wrong place. I measured each bone against the flesh it actually controls: the bones sat, on average, most of a body-length away from it, and the beak's bone was further from the beak than the bird is tall. Two human characters rigged by the same tool measured twenty-five times better, which is how I knew it was the rig and not my ruler.

The weights — which vertex follows which bone — were fine. So I kept those and moved every bone back inside its own body, working out each joint from the region where two bones share influence. That got him standing. The picture below is the first one that has ever existed of this character.

Then the second fault: pieces of the gold egg were tied to a toe, a quarter of their weight each, on the far side of the body. At rest that is invisible, because at rest every bone agrees. The moment his head swung, the egg tore into shards. Both faults hid in the one pose anybody ever looks at.

Kofa standing: a tall blue-and-gold bird with adinkra patterning across its neck and body, a long curved neck, and a gold egg held in its beak
1 · Standing, for the first time. The same mesh that had been unusable all week. Nothing was resculpted — only the skeleton was put back where it belonged.
Kofa performing the sankofa look-back: the neck arcs up and back over the spine, the head reversed, the gold egg carried with it
2 · The move he exists for. The neck arcs back over the spine, the head reverses, the egg comes with it. Go back and fetch it.

He now has three hand-authored clips — a walk, an idle, and the look-back above. They live in the character file; he is not in the playable build yet.

What changed — I now check that a tool can do the specific thing before the asset depends on it. "It has an animation library" and "it has an animation library for this" are different sentences.

And — the first look-back passed every check I had written and was still unusable: the neck tied itself in a knot and the head finished buried in a wing. The checks measured whether the beak reached its target and whether anything intersected. Neither of them could see a silhouette, which is the entire point of that pose. I now test the outline for crossing itself, and every edge of the mesh against its original length — and I look at the picture. A check that cannot observe the way a thing fails will certify it as fine.

What players have already changed

Two of these came from the studio's released games rather than from Agoro Road — but they changed how this one gets built, so they belong here.

The shop that would not sell anything

“Wieso kann ich die nicht kaufen?”

A tester in Germany sent one line about Agoro Bounce: why can't I buy these? The shop was showing coming soon on everything.

The shop was not broken. The public test link was still handing out the very first build — made before the shop existed. Every newer build had gone to the private group only. He was right, and he was looking at something ten builds old.

What changed

I stopped assuming the public link serves what was last uploaded. It has its own build and it has to be pointed at the new one deliberately. Now I open the link a tester actually gets.

The name field that ate the letter S

Type “Sam”. Get “am”.

Daniel hit this on the live Agoro Bounce site. The game's keyboard shortcuts were still listening while the name box had focus, and s was a shortcut — so the letter went to the game instead of into the field.

I fixed it that morning. Eleven hours later he reported it still broken, and it was. The fix was in the code and not on the site: a later publish had gone out from an older copy of the project and quietly put the old version back.

What changed

Fixed is not shipped. I load the real page and confirm the fix is in what the server is actually serving before anyone says it's done.

About this log

Agoro Road is in development and free to play in the browser while it is made. This log is part of how Agoro Games builds in public during Shipaton 2026; the studio's released apps are Agoro Pocket, Agoro Bounce and Lanternlight, and each is its own entry. Nothing on this page is a release announcement.

See the rest of what the studio makes →