Skip to Content
Rooted Dev Log Week 38: A City, One Block at a Time
Back to News
September 21, 2026 // ID: 80

Rooted Dev Log Week 38: A City, One Block at a Time

Weekly Dev Log

A short look at what I'm building on Rooted, posted every week. See all dev logs.

I am a week late with this one, so it covers two weeks instead of one, and it arrives with what I promised last time: the visuals are back! Since the September 4 dev log the work went mostly into the tools that build the open world: the city, the generators that fill it, the plant library, the vehicles you cross it with, and constant optimisation. The last section covers what all of it lands in. None of this is in the public build.

One thing before we start: almost everything below is shown in its 2080 state, the world as it stood before the collapse. The post-apocalyptic layer, the damage, the overgrowth and the repairs, is a pass of its own and it will get its own dev log.

Vehicles, if you can keep them running

Vehicles spent a long stretch in the background here, behind whatever mattered more at the time. The map settled that: it keeps growing and filling with places worth going to, so the trip between them had to become part of the game instead of dead time. Assuming, of course, that you have something to run them on.

They do not use Unreal's Chaos vehicle component, but a custom setup. Each wheel tests the ground on its own, and the bike gets a chassis solved as one piece instead of two wheels that ignore each other. You feel the surface through it, and you can tell what it is about to do before it does it. The fork diving and the swingarm working are not animation either. That is the suspension doing its job, and the same travel is sent to everyone, so every player watches the same machine work.

The motorcycle during a suspension and handling test. Vehicles are stand-in models. Work in progress.

And the machines you see are placeholders, not the models you will end up riding. They are there to be driven while the handling gets settled, and the final ones are a separate job.

A city, one block at a time

I have been working on city generation since January, and it runs end to end now. I lay out a plan, and what comes back into the engine is a working district: the road network, the blocks, the plots, built and in place rather than sketched, about a hundred plots and two hundred buildings in the current district. The detailed meshes are not made yet, so it is still greybox, but it has collision and navigation. If you are in the alpha, you know the difference: the blockouts in your build are there to be looked at, you cannot get inside them. These ones you walk into.

What is left is variety: different kinds of avenue, squares that are not all the same rectangle, streets that do not read the same from one district to another.

An oblique view of a procedural city blockout iteration, with a common metric grid material and an explicit not-the-game-city label.
A blockout from one iteration of our procedural city system, shown with a common metric grid material. This is not the in-game city. In-engine study; work in progress.
Walking through a blockout iteration of our procedural city system. This is not the in-game city. Actual in-engine capture; work in progress.

What I did not want is a street where every building tells the same story, so I am working on states. A block should be able to say what happened to it: the physical state of the building, whether anybody lives there, what somebody barricaded, what you can still get through. That is what stops a street being filler and lets it carry the story of Rooted a block at a time.

Tools that know what they are building

The project has plenty of generators by now; five of them put up buildings: houses, service stations, bunkers, hangars, and an office building (the biggest of the five, and the least finished).

A house from our procedural building work, shown in a separate study scene. The camera approaches the two-storey facade, then follows the ground-floor openings around the corner. Work in progress.

The office building is the one I have pushed furthest. It generates the outside and the inside in one pass, off the same dimensions and the same grid, so the interiors are not painted on the windows: they are rooms, with a stairwell, a lift shaft and meeting rooms where there is space for them.

Five generated bunker layouts, viewed from above with room ceilings hidden. The camera rises at a constant speed across the sequence. In-engine presentation lighting; work in progress.

Furnishing is a separate tool and a different problem, because it solves a room rather than decorating it. It reads the space, keeps it walkable, puts things where they belong, and recomposes the whole room when you ask for another version.

Native previews from a separate procedural building study: an irregular footprint across several heights and facade layouts, with ground-floor and upper-floor views. Glazing is hidden for interior inspection. Work in progress.

And what comes out is walkable the day it is generated: you go in, take the stairs to the top floor and come out on the roof, in a building that was a set of numbers an hour earlier.

How a place gets made

It does not start with modelling. For a place like the airfield it starts with reading: the state's own aviation rules, the federal circular that governs runway markings, a highway manual for how a service road is supposed to meet a public one, and the published records of real Oregon fields, a grass strip with no lighting here, a runway resurfaced there. The game is set in Oregon, so the places get built from what Oregon actually does.

Historical Cottage Grove airport plan used as a documentary reference
Historical Bandon airport plan used as a documentary reference
Real Oregon airport plans, from 2020 and 2017, inform how hangars, access and service buildings sit together. Reference documents, not game captures. Sources: Oregon Department of Aviation, with WHPacific (NV5) and Century West Engineering.

These are editor tools, not something in the game. Buildings come out of a procedural tool and get cooked into the engine, where I can still select one, change its dimensions and have it regenerate to match. Blockouts start in a modelling package, driven by scripts that assemble them, render the review views and check them, and the technical plans fall out of the same pass.

A short sequence of actual generator rebuilds, with a small excerpt of the working graph. Tool views with preview shading; work in progress.
Procedural hangars in the aerodrome development scene. Work in progress.

Growing the plant library

I started building Rooted's own vegetation library rather than buying one. It has to match the biomes of Oregon, where the game is set, and it has to hold up in an open world in Unreal, where a plant that costs too much is a plant you cannot scatter. Each family has a recipe that assembles the plant organ by organ.

An alternate studio edit with closer views of the species and their variations. The sequence ends with grasses, individual groundcover patches and an assembled patch. Wind animates the supported plants; the groundcover patches remain static. Work in progress.

I am working through it one biome at a time, and I started with the forest, the one that has been the backdrop since the alpha. The catalogue is at twenty-five entries: grasses, ground cover, sword fern, salal, and three Oregon companions carried from concept to integration in one go: California poppy, common yarrow and dwarf Oregon grape.

The conifers are new to the project as well. I redid the way they move: each trunk is re-rigged so the bark does not step when the tree bends, and the whole scatter answers one wind driven by the weather. If you are in the alpha, hold on to that build: not a single tree you have there is still standing in the one I work on.

Optimisation, all the time

Let me be honest about the alpha: performance in it is bad. I know! It is a prototype I opened to every founder at once, and I kept filling it with content instead of optimising it. Building an open world with no prototype phase and no pre-production, while people are already playing it... let us call that ambitious.

Going into production in January is what changed that. This time the tools came first, so performance is something I hold from the start rather than a fire to put out. Anything new goes through the same pass before it stays: several conditions rather than one, what it costs the processor, what it costs the graphics card, and how it holds up over the network.

I capture a run outside the editor, find what actually costs, fix it, capture the same run again and compare.

Often the answer is no. A lighting option that looked like a free win measured worse, so I kept the original. A compression mode for the grass lost coverage, so I dropped it.

And in the game

The valley airfield is a place you walk into, with hangar gates that run from a control box, stop halfway when you ask, deal with a vehicle standing in the doorway and stay where you left them.

The airfield at golden hour, with the hangar door opening. Work in progress.

Gardening runs end to end, sow, water, run a pump, harvest, compost, and a garden reads from the outside: the hoses, a gauge and a status light tell you about a dry reserve or a stopped pump before you open anything. On the wildlife side one animal is carried end to end, a bald eagle that takes off, feeds, breaks off when a human gets close, and can be field dressed once it is down.

There is a bolt-action rifle whose scope magnifies inside the lens while the rest of the screen stays at normal scale, and whose bolt runs when you release the aim, so you can hold on target and watch the impact land first.

Also this week

The game's text is compiled in twenty-five cultures, with the fonts that Cyrillic and Chinese need. The way rendered light becomes the final image changed, with same-scene comparisons to check colours and highlights. And the character got a pass on realism: how they behave against the weather, and physics on the backpack and whatever is strapped to it.

The same development scene and crop, before (left) and after (right) the colour adjustment, with more of the vegetation in view. Work in progress.

That's the production side of the last two weeks!

Mat

Enjoyed this article? Give it a like.

Comments

/

Share Transmission

Wishlist on Steam

Don't Miss Launch

Get notified the moment we launch, and be among the first into Early Access.

Wishlist Rooted

Join 1M+ players who've already wishlisted Rooted

1M+ players have wishlisted Rooted. Get notified at Early Access launch.
We use cookies

We use cookies to enhance your experience, analyze site traffic, and for marketing purposes. Learn more