<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Groundwork devlog</title><link>https://www.jostavo.net/</link><description>Recent content on Groundwork devlog</description><generator>Hugo</generator><language>en</language><lastBuildDate>Wed, 23 Sep 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://www.jostavo.net/index.xml" rel="self" type="application/rss+xml"/><item><title>A working line</title><link>https://www.jostavo.net/posts/2026-09-23-a-working-line/</link><pubDate>Wed, 23 Sep 2026 00:00:00 +0000</pubDate><guid>https://www.jostavo.net/posts/2026-09-23-a-working-line/</guid><description>&lt;figure class="clip"&gt;&#10; &lt;div class="player"&gt;&#10; &lt;iframe src="https://www.youtube-nocookie.com/embed/Ow5SA7wtp70?rel=0" title="Laying out a full line: belts, inserters and the cutter, with the blueprint preview in blue."&#10; loading="lazy" allow="accelerometer; encrypted-media; gyroscope; picture-in-picture; fullscreen"&#10; referrerpolicy="strict-origin-when-cross-origin" allowfullscreen&gt;&lt;/iframe&gt;&#10; &lt;/div&gt;&lt;figcaption&gt;Laying out a full line: belts, inserters and the cutter, with the blueprint preview in blue.&lt;/figcaption&gt;&#10;&lt;/figure&gt;&#10;&#10;&lt;p&gt;&lt;strong&gt;The inserter became a little gantry crane.&lt;/strong&gt; Four legs, a rail with a stop at each end, a trolley&#10;running along it and a claw on a line that pays out as it lowers. It goes down, grabs, lifts, rides&#10;across, lowers and lets go, one motion after the other. For that I rebuilt the animation system so&#10;each moving part can pause and carry on by itself, and hand over to the next part when it reaches&#10;the end of its travel.&lt;/p&gt;</description></item><item><title>Inserters</title><link>https://www.jostavo.net/posts/2026-09-22-inserters/</link><pubDate>Tue, 22 Sep 2026 00:00:00 +0000</pubDate><guid>https://www.jostavo.net/posts/2026-09-22-inserters/</guid><description>&lt;p&gt;Belts move goods along, but something has to put goods onto them and take them off. Today was&#10;mostly design, for a piece called the inserter.&lt;/p&gt;&#10;&lt;p&gt;The rules I settled on:&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;The inserter is the only bridge.&lt;/strong&gt; A belt never feeds straight into a machine or a stockpile.&#10;Between stockpile and belt, and between belt and machine, there&amp;rsquo;s always an inserter. It makes&#10;every hand-over visible.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;It reaches exactly one tile&lt;/strong&gt; behind it to pick up and one tile ahead to drop off, in a&#10;straight line.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Machines take up to three inputs&lt;/strong&gt;, from behind, left and right, and give out one product at&#10;the front.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;Every raw good gets its own input stockpile.&lt;/strong&gt; A new stockpile starts empty and belongs to&#10;whatever arrives first, so wood and iron never mix.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Factory floors also grew to 20 by 20 tiles, because the old floor already felt cramped.&lt;/p&gt;</description></item><item><title>Inside the factory</title><link>https://www.jostavo.net/posts/2026-09-21-inside-the-factory/</link><pubDate>Mon, 21 Sep 2026 00:00:00 +0000</pubDate><guid>https://www.jostavo.net/posts/2026-09-21-inside-the-factory/</guid><description>&lt;p&gt;The gallery filled up: houses, a farmhouse, a market stall, stockpiles that visibly fill as goods&#10;arrive, and the pieces for factories: straight belts, corner belts, a cutter and in and out&#10;stockpiles.&lt;/p&gt;&#10;&lt;figure class="clip"&gt;&#10; &lt;div class="player"&gt;&#10; &lt;iframe src="https://www.youtube-nocookie.com/embed/4ILO9EwYJjQ?rel=0" title="A fly-through of the model gallery, 31 models by now."&#10; loading="lazy" allow="accelerometer; encrypted-media; gyroscope; picture-in-picture; fullscreen"&#10; referrerpolicy="strict-origin-when-cross-origin" allowfullscreen&gt;&lt;/iframe&gt;&#10; &lt;/div&gt;&lt;figcaption&gt;A fly-through of the model gallery, 31 models by now.&lt;/figcaption&gt;&#10;&lt;/figure&gt;&#10;&#10;&lt;p&gt;Then the part I was most looking forward to: stepping inside a factory in 3D. Double-click a&#10;factory and you&amp;rsquo;re on its floor, walls around you, laying belts that bend around corners.&lt;/p&gt;</description></item><item><title>Voxels from code</title><link>https://www.jostavo.net/posts/2026-09-20-voxels-from-code/</link><pubDate>Sun, 20 Sep 2026 00:00:00 +0000</pubDate><guid>https://www.jostavo.net/posts/2026-09-20-voxels-from-code/</guid><description>&lt;p&gt;To go 3D I needed models, and I&amp;rsquo;m not an artist. So every model in Groundwork is built from small&#10;blocks, 16 to a tile, placed by code. A small kit of parts (walls, posts, roofs, wheels, crates)&#10;and one fixed palette keep them looking like one set.&lt;/p&gt;&#10;&lt;p&gt;The first try at loading voxel models into the 3D test used models from an older game of mine, just&#10;to prove the pipeline:&lt;/p&gt;</description></item><item><title>The voxel editor</title><link>https://www.jostavo.net/posts/2026-09-19-the-voxel-editor/</link><pubDate>Sat, 19 Sep 2026 00:00:00 +0000</pubDate><guid>https://www.jostavo.net/posts/2026-09-19-the-voxel-editor/</guid><description>&lt;p&gt;Going 3D meant I needed a way to make models. I already had one: my other project, Nimby, has its&#10;own voxel model editor. Today Nimby moved to Godot too, the same engine as Groundwork, editor and&#10;all.&lt;/p&gt;&#10;&lt;figure class="shot"&gt;&#10; &lt;img src="https://www.jostavo.net/posts/2026-09-19-the-voxel-editor/editor.png" width="1724" height="1170" alt="The voxel editor, with a wizard built from layers: torso, arms, head, hat and cape." loading="lazy"&gt;&lt;figcaption&gt;The voxel editor, with a wizard built from layers: torso, arms, head, hat and cape.&lt;/figcaption&gt;&#10;&lt;/figure&gt;&#10;&lt;p&gt;Models are built in layers, and each layer has a connection point it turns around, so an arm can&#10;swing or a saw blade can spin without the rest of the model moving. That same idea ended up driving&#10;every moving part in Groundwork.&lt;/p&gt;</description></item><item><title>Going 3D</title><link>https://www.jostavo.net/posts/2026-09-18-going-3d/</link><pubDate>Fri, 18 Sep 2026 00:00:00 +0000</pubDate><guid>https://www.jostavo.net/posts/2026-09-18-going-3d/</guid><description>&lt;p&gt;Until today Groundwork was a flat, top-down 2D grid with small drawings for buildings. It worked:&#10;citizens walked, farms grew, and two days ago I added factory interiors, where you step inside a&#10;building and lay out its machines and belts. Yesterday belts learned to be dragged out in one&#10;stroke instead of placed tile by tile.&lt;/p&gt;&#10;&lt;figure class="shot"&gt;&#10; &lt;img src="https://www.jostavo.net/posts/2026-09-18-going-3d/before-2d.png" width="480" height="478" alt="The town as it looked in 2D: fields, a river, a lake and the first workshops." loading="lazy"&gt;&lt;figcaption&gt;The town as it looked in 2D: fields, a river, a lake and the first workshops.&lt;/figcaption&gt;&#10;&lt;/figure&gt;&#10;&lt;p&gt;But every time I pictured the finished game, it wasn&amp;rsquo;t flat. So I built a quick 3D test to see how&#10;it would feel: belts carrying crates and barrels, and a small gantry crane moving goods between&#10;them. The pink boxes are stand-ins for models that didn&amp;rsquo;t exist yet.&lt;/p&gt;</description></item><item><title>About</title><link>https://www.jostavo.net/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.jostavo.net/about/</guid><description>&lt;p&gt;Groundwork is a city builder where farms feed people, people work factories, and factories turn raw&#10;goods into everything a town needs. You don&amp;rsquo;t order citizens around one by one: you set up the&#10;town and its factories, and people get on with their lives in it.&lt;/p&gt;&#10;&lt;p&gt;I&amp;rsquo;m building it alone, in Godot with C#. This devlog follows it one day of progress at a time.&lt;/p&gt;&#10;&lt;p&gt;SilentSoulsSr&lt;/p&gt;</description></item></channel></rss>