Back in the day I used to play Warcraft 2 over Kali. A popular strategy was developed called the “wall-in”. Perhaps you’ve heard of it, perhaps in a more recent game? To execute a wall in, you’d build farms to close the gap between your town – and it’s precious, vulnerable line of gold-mining peasants – and the outside world so that if some punk tried to pull a grunt-rush, you’d be safe and they’d have wasted their time. When you were ready, you just had a peasant chop a tree next to your farm to open it back up to access the outside world to expand.
A similar move has existed in Clockwork Empires for quite some time now. It is possible to build absurdly long, skinny buildings at very low cost due. And enemy AI treated them as untouchable, impassible barriers. So you see the problem here: cheap, invincible walls. At least back in Warcraft 2 the walls were legitimate buildings that would be attacked automatically.
Buildings and the job system have had features slowly accreted onto them over the course of Early Access; almost imperceptibly, at least in a big-picture sense. At the start, it was certainly not possible to make an enemy attack buildings because there was no way to reference the building or a spot on the building through the jobs scripting system, and I certainly didn’t understand the (heh) structure of the buildings scripts enough to make this happen, nor was building deletion robust enough to handle at-will removal. This is clearly impossible!
Then just the other week Daniel was like, hey, you should make buildings destructible. The mind reels! Is this madness even possible? What task would you have me perform next, squeeze blood from a stone? Something about one hand clapping? But why not look? So a look was had and it was discovered that when you take the separate details altogether, wow, lots of interesting script hooks have been added. Deletion has been hardened so that players could order buildings removed properly, non-workcrew building location queries added to allow Chapels and Barbers to operate. When you put it all togtether, not only is this possible, it’s dead-simple to implement. It only took an hour, and the most time was spent setting up how the jobs for various hostile agents actually decided when was a good time to attack.
(I should note that a quick first implementation is not itself a sign that a feature is really easy or complete – it would ignore how much work went into laying the foundation over many months for these job hooks, and the work that is yet to be done, most especially in building UI and honing the UX so that you can see when a building is being attacked, how long it has left, and how to fix it. And of course there needs to be a way to repair buildings. And I bet you there’s some detail I missed that a player will point out. And so on, and so on. So insisting that this is “easy” or “done” is dismissively glib. Point is, I was struck by how simple it was to pull together existing tools into the start of a feature that can so greatly changes the dynamics of the game. Especially for those clever players who have been abusing the building system. 🙂
Want a proper wall? Gotta build gabions. More expensive, yes, but reliable protection shouldn’t come cheap.
Want more defensive and military options? (Of course you do, especially now that your precious infrastructure can be blown up.) Well, we’ve got things in store for you. But that’ll have to be a post for another day.