Games

Frontier Domain

An idle merge tycoon: choose what to build and what to merge on a cramped domain, and the mercenaries go out and fight on their own. The design was thrown out and restarted in August 2026.

2026In progressAI-assisted

Screenshots

3

I threw the design out

In August 2026 I stopped what I was building and started over. Before that it was called Alchemy Workshop: send mercenaries out for ingredients, then wire up a production line. The more ingredients and recipes I added, the more there was to do, and the less there was to decide. The recipes had already settled what to make; the player only walked the steps.

Now it is Frontier Domain. You choose what to build and what to merge on a cramped plot of land, and the mercenaries your training halls raise walk out to the battlefield on their own, fight, and come back. The player never fights.

Three things are deliberately scarce

There is nothing here to rush you: no timers, no energy, no daily reset, no login rewards. Decisions come from scarcity instead.

  • Tiles are scarce. The domain starts at 4×4, and you buy the empty ground one tile at a time until it reaches 7×10. There is always more you want to build than room to build it.
  • What you drew disappears. One draw gives three candidates. Draw again before you have used them and the leftovers are thrown away.
  • You cannot have both numbers and strength. One training hall raises exactly one mercenary. Merge two and it gets 2.8× stronger, but your headcount halves.

That last one is the scale the whole game balances on. Set the merge multiplier above 4.09× and merging is always the right answer, so the decision dies. It is pinned at 2.8.

Placement is the combat

Support buildings project their effect onto a rectangular block of the grid. A forge covers 3×3, an inn 5×3, a watchtower a vertical 1×5. Every shape is different. When several cover the same hall, the second and later ones stack at 0.7 → 0.5 → 0.35.

So the player asks one question, over and over: how many does this building cover? Piling two forges onto one hall, or spreading them so several halls get one each, shows up directly in what happens on the field.

You never touch the fighting. Because you never touch it, it has to move in a way that makes sense unattended, so I cut the rules down to four. Ranged projectiles chase nothing. They fly the way they were fired, hit the first body they meet, and miss outright if the target turns. What the shooter does instead is aim ahead of a walking target. Homing would be easier, but then ranged classes quietly get stronger and a number appears that is nowhere in the balance table.

Where it stands

I built drawing, merging and placing before any art or chapters. All six stages of the validation build are in: domain grid, training halls and mercenaries, the field and its automatic combat, influence range, the draw, and stage switching with a marker for what broke first. On 29 August I opened all 16 buildings and the six effects that were still stubs, and moved into the expansion stage.

What is not done, plainly. It has not passed the 20-minute judgement. The pass criteria have not been measured yet: does the player hold back a merge they could make, do they move a building after seeing what broke. Opening all sixteen buildings at once also made same-kind pairs harder to collect, and that is unfixed. Saving, sound and localisation are deferred until the screens settle, and the code written for the old design is still there: deleting it before the judgement would leave nowhere to fall back to.

How it is built

Godot 4.6 and GDScript. The pixel art is not drawn by hand. A Python generator emits 118 sprites: 16 buildings × 3 tiers of appearance, 30 mercenaries, 33 monsters, 7 tiles. That keeps art time out of a prototype, and it comes with a check that does not need eyes (if the pixel count between two frames is zero, there is no motion).

Numbers live in JSON, not in code, split across buildings, mercenaries and stages. Nine headless probes check parsing, boot, combat, range and balance before I look at anything.