Cold Takes/14 - Free Factories For All

From Zero-K
Revision as of 17:49, 15 September 2024 by RandomX (talk | contribs) (Init. transfer)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Cold Take #14 - Free Factories For All

Error creating thumbnail: File missing


Every game has to start somehow, and strategy games start with players acting before they know what their opponent is up to. I call this phase the setup, and in it, players tend to build up their base and deploy some forces, all without any outside interference. To be clear, the setup is everything that happens before contact with the enemy, or in other words, before you can make decisions in response to your opponent. Under this definition, giving player a free scout can make the setup relatively short.

Games with more of an economic focus tend to have relatively long buildup periods, but mitigate it with the aforementioned scout. Total Annihilation-style games are on the more economic end of the spectrum, but lack this mitigating factor. They start players with a lone slow commander, which often has to build up some economy before it can afford to make a factory and a scout. This makes for a long setup, which was disliked by the Complete Annihilation developers, so we set out to shorten it.

Before looking at solutions, we should first dig into what we were trying to solve, and ideally tease out the problematic bits. We also need to know how to measure success, which motivates the following question: just how long is the setup in any given game? The answer is a bit fuzzy due to the nature of "outside interference". Consider a 1v1 in modern Zero-K, technically you could plop an Airplane Plant and immediately send a Swift across the map, all in about 20 seconds. Both sides now have a good idea of what the other is up to, so they have left the setup.

File:7a0c71cfa4e7925b2ed81b25055b0a8331a144fd.png

But hold up, what about when a Swift doesn't fly over your base 20 seconds into the game? In this case, your opponent did not plop air and yeet a Swift, which is technically information. So, have you left the setup? No, because I want to get more out of this definition than that. The key is that Airplane Plant into Swift reveal is a terrible opening, so almost nothing is learnt by not observing it. In general, negative observations should be treated in terms of degrees of certainty. Seeing nothing for 30 seconds is fairly normal, so reveals essentially nothing. Seeing nothing for three minutes is much more concerning, and might warrant some blind anti-cheese measures. Likewise, if people invariably put a turret in a particular position, then scouting that turret means nothing.

In short, the setup is about as long as it takes to narrow down the other side's behaviour from "they could be doing almost anything". As for what people spend this phase doing, it boils down to the following.

  • Deciding what they want to have at the end of the setup.
  • Executing that decision as optimally as possible.
  • The execution part raises some red flags in the context of Zero-K design, since in the absence of an opponent, failures of execution are caused by fighting the UI. As an aside, this is why orders can be queued before the game, and why factories automatically play their unpacking animation. The time spent unpacking gives players a chance to click on their factory and tell it to build something, without worrying about wasted time.

This analysis of the setup reveals an aspect that we wanted to retain: the decision making. Ideally these decisions embody strategy, creativity, and customisation, which are important to Zero-K. Being "natural" is also important, and a brief setup phase is much more organic than some sort of pregame force deployment menu. The fuzzy boundary between the setup and the rest of the game is also quite neat. So the goal was to shorten the setup without removing the decisions.

File:5f6c62f79082a45a8d9231417b495f8e7a0cf643.gif

Our first solution was the Boost mechanic. Commanders were given a personal supply of resources that was spent at a high rate, represented as a depleting red ring. This let players quickly boost out a factory, a bit of economy, and a few units. It sped things up, but was too creative. Players would transport allied commander across the map to boost out turrets in the enemy base. Other strategies involved teaming up to boost out a sizeable army from a single factory, which was very effective against teams which had spent most of their boost on other things.

Boost rushes hammered home something we already knew about team games: factories are a waste of resources. What are the chances that an eight-player team needs all eight factories, when there are only two or three natural fronts? Very low, but spending the whole game assisting an ally factory is boring, so very few people did it. It would happen in tournaments, or be "abused" by the occasional clan stack, but people in public games decried it as "cheap", and it got old quickly.

The general principle here is that people will optimise the fun out of games. In response, games need to have fun solutions to their goals, to encourage people to play in fun ways. The goal of competitive RTS is to win, so good strategies should also be fun strategies. The standard TA approach of having each player spend their valuable initial resources on a factory, just to have fun, violates this quite badly, and boost made it worse. So we went back to the drawing board.

File:Ce6d300183a3fa59a952911bafff0cfaade09c14.png

The boost rush cemented a new rule for design, that factory ownership is a requirement for fun, so our next experiment was to just give everyone a free factory. This turned out to be enough, and as such the "Facplop" coupon has existed unchanged for something like 16 years. It mostly solved the setup problem, although we also increased innate commander income. A bit over one mex and two solars "moved into" the commander over time, making it easier to use your factory from the very start of the game.

Facplop did not completely kill assist rushes, as they would still crop up from time to time, but now in the form of players reclaiming their free factory. We could not just make factories cheaper, reducing the amount of metal from reclaim, because that would work counter to factories as factions. We were also unwilling to make the free factory unreclaimable, or to give it a reduced reclaim value, as that would be arbitrary.

Thankfully, the new assist rushes tended to be just barely on the edge of viable. Nerfing them was mostly a matter of balance tweaks, and sometimes we could even just wait for a counter to be popularised. The new rushes were so much worse because reclaim costs buildpower, only yields metal. This meant that energy structures had to be built to spend the extra metal in a timely fashion, sapping the rush of most of its power. Only Paladin rush required a notable change, which is how the Strider Hub ended up with a grid requirement.

File:44d67480fbd5ebad639d4ccd69f204b5aeb1d21d.png

Looking back at our reasons for shortening the setup, I sometimes wonder whether we made it too short. We may have missed the utility in giving newer players more breathing room, or in enforcing a form of break between matchmaking games. I even find fun in the execution challenge of the first ten minutes of an Age of Empires game, although I would not want to grind it competitively. The overall trend in RTS seems to be agreeing with Zero-K, particularly with the way the buildup phase of Starcraft 2 was shortened over the course of its expansions. Perhaps it all goes back to respecting the players' time. If we assume Zero-K shortened its setup by one minute, which seems like an underestimate, then doing so has personally saved me four whole days. The savings must be immense over the whole community.