





🌟 Special thanks to our amazing supporters:
✨ $10 Tier: [Geeks Love Detail]
🌈 $5 Tier: [Arch Toasty][Benedikt][David Martínez Martí]
This update sports fancy new plasma cannon visuals and an engine update. The engine update is fairly well tested by this point, and should resolve a few rare crashes and improve performance. It might need a bit of time to scan your maps when you first launch the game. In terms of balance, the game seems quite stable and the recent Felon nerf is still being assessed, so we only touched the second-smallest and second-largest turret.
Light units are great at absorbing large amounts of burst damage. A burst, i.e. a single high-damage shot, from a Heavy Laser Turret may evaporate a Flea, but at least it only kills one Flea. Recluse also dies in one shot, and costs ten times more, so Flea is a comparatively efficient absorber (or rather, waster) of burst damage. High burst and wasted damage is used throughout Zero-K, in part to fill a gap left by our no-damage multiplier policy, but mostly to fulfil a desire for big impactful weapons.
Burst is nothing new, since reload time is fundamental to RTS, and most games have at least some variety. Discussions in Zero-K also use "alpha" as a synonym for burst, which a quick search suggests may be due to early cross pollination from Eve Online. In terms of balance, there is a tradeoff between burst and sustained damage (DPS), as burst tends to make a unit more powerful, with the large caveat of wasting damage to overkill. Burst lets units front-load damage, since they start the battle fresh, which increases their effective damage output and limits retaliation. In terms of the feel of the game, large units one-shotting smaller ones reinforces a sense of scale, and the potential for burst adds variety and excitement to battles.
Zero-K likes to explore the extremes of design space, so we have ended up with some quite bursty units. Lance fires once every 23 seconds, significantly more than the six second fire rate of its ancestor in Total Annihilation. Such a long reload time would not be out of place on a manual ability in other games, and Zero-K players often use these weapons as manual abilities. This is done by toggling the hold fire unit state, which lets players take direct control when required, without fighting the UI the rest of the time. Units exist across a range of reload times, with units even as low as 10 seconds frequently being set to hold fire to snipe commanders.
As alluded to earlier, burst can be used to specialise weaponry against heavy units. Raiders swarming a Heavy Laser Turret is the classic example, but this applies whenever a projectile from a heavy tank or artillery piece would deal far more damage than necessary. Conversely, riot units should have low reload times, to deal with swarms of units. Raider against raider is an interesting case, since a bit of burst is quite an advantage, but one that can vary a lot across matchups. The bursty light raiders - Duck and Dagger - have been particularly hard to balance, and are yet to find a really good spot. The problem is not even due to raw overkill, but rather, the more subtle issue of breakpoints.
Burst damage is important even when it is not dispatching foes in one shot. Consider Dagger, a light raider that deals 110 damage every 2.83 seconds. Light raiders have between 200 and 500 health, so the exact damage of Dagger compared to the health of any given raider can be quite important. For example Bandit has 340 health and Glaive has 230 health, letting Dagger kill them in four and three shots respectively. If, for some reason, Bandit needed a nerf against Dagger specifically, we could reduce Bandit health to 330. This would barely affect its other matchups, but would effectively reduce its "health" against Dagger by 25%. Alternatively, we could increase Dagger damage to 114. The current incarnation of Dagger has dealt as little as 95 damage, but no higher than 110, because we do not want to cross the Bandit burst threshold.
Some weapons are so impactful, so ubiquitous, that they warp the rest of the game around them. The prime example is Raven, a bomber with an 800 damage bomb. Bombers shoot one shot before returning to base to reload, so their burst is very important. Raven was the dominant bomber for over a decade, so units lived or died on their interaction with it. The lightest riot unit - Reaver - has 820 health because being sniped by a single Raven leaves its factory too vulnerable to raider follow-up. Mace, which costs nearly twice as much as Reaver, has been plagued by only having 1400 health, and Light Laser Turrets have 785 health to let Ravens clear them out. The Recon Commander Chassis has 3250 base health, because commanders were balanced around how expensive they were to bomb. Factories have 4000 health because it is assumed that a nearby constructor can repair them mid-bombing, allowing them to just barely survive five Ravens.
Other sources of burst damage are important, but not as impactful. Lance deals 3000 damage with its heavy laser, further preventing commander health from dropping below 3000. Similarly, Phantom, a cloaked sniper, deals 1500 damage. Phantom demonstrates how balancing around breakpoints can become a bit silly, since Felon was buffed to 1600 health specifically to avoid being one-shot by Phantom. The Felon is the signature Shieldbot unit, and costs almost as much as a Phantom, the signature Cloakbot unit, so losing it in one shot was too punishing. Tuning Felon health to Phantom burst let us make a change that barely affected other matchups, since dealing an extra 100 damage is not too onerous for most other units. So burst is a good tool for precision-balance, however, overuse can make interactions feel gamey, less "natural".
Imagine a Felon with 1501 health. At a mechanical level, such a unit is fine, but it would look odd whenever it survived a Phantom shot with one hit point. The injunction against Felon having 1501 health is akin to the verisimilitude principle from Aim and Fire, namely, that a "real" Phantom could surely "overclock" its rifle to eke out an extra 0.1% damage. So it is for this reason that we stick to reasonably round numbers for health and damage. A Felon with 1600 health looks more natural, even though 1501 health would achieve the same balance goal.
There is a limit to how close damage can be to health, and that limit seems to be 20. Consider Reaver with its 820 health against Raven. Two other cases are evident in the precise light skirmishers: Moderator and Scalpel. These units deal busts of 460 and 660 damage respectively, and each have 20 more health than their burst. We decided, long ago, that having such units 1-shot each other was far too swingy, and that making units uniquely bad against themselves would encourage more interesting army compositions. Lance does not get the same treatment, since being unable to see as far as they can fire already creates enough counterplay, and artillery should be particularly flimsy.
Revenant vs. Engineer Commander is a notable recent example of balancing by burst breakpoints. Revenant is a tanky gunship that fires a burst of medium damage missiles, and it was a bit underpowered, so we gave it an extra missile. This increased its damage to 1980 (9 missiles, 220 damage each), which let it 2-shot un-upgraded 3800 health Engineers. This went unnoticed for many months, until Engineer gained the blueprint ability, increasing its popularity on the front lines, which in turn increased the viability of rushing a Revenant to snipe commanders. The resulting nerfs included reducing missile damage to 210, for total burst of 1890, leaving Revenant 20 damage shy of 2-shotting Engineers.
Burst creates a threshold effect for health and damage, but it also creates thresholds for time. This is best seen with anti-air and bombers, since bombers only stay in range for a handful of seconds. The result is a sensitive relationship between the reload time of anti-air, and how long the planes hang around in range. A weapon can be good on paper, but be underwhelming in practice if targets tend to leave range just before it reloads. Burst also helps specialise anti-air into anti-plane and anti-gunship. Anti-plane weapons tend to be bursty missiles, with high alpha damage to deal their damage early, while anti-gunships weapons are geared towards high damage-per-second, since gunships hang around to deal their damage, and are likely to kill bursty anti-air before they get off their second or third shots.
Balancing by burst breakpoints runs the risk of filling the game with opaque and unintuitive interactions, much like an overreliance on armour classes can in other games. No player is going to know, without any experience or research, that Revenant can only 3-shot Engineer Commanders. Repeat for the 25-or-so units with reload times greater than five seconds, and there is a potential memorisation problem. Many of these units deal imprecise area-of-effect damage, which fuzzes the breakpoints, while others deal such large bursts that their damage may as well be infinite in most cases. For the rest, there is a part of the interface that shows the combined burst damage of the selected units. This also helps people who happen to have individual burst damages memorised.
Even weapons with nominally precise burst damage are slightly fuzzy in practise. Projectiles can miss, and burst lasers deal damage over the 30 game frames that make up a second. This adds an asterisk to the relationship between Flea and Heavy Laser Turrets (as well as Lance and Grizzly), as a few tightly packed units can all die to the same laser shot. This anti-swarm capability is not ideal for Quant's Rule, but physical beams of death are far cooler, and lets players pull off tricks such as lining up two light turrets to kill in one shot. It would be easier, and more "balanced", to have lasers deal a single instance of damage, but, in the end, feel trumps balance.
Index of Cold Takes
Zero-K technically has "space" combat. This is true of any game where units can end up high in the sky, and where being very high up has any mechanical meaning. In our case, extreme height makes units immune to weapon fire from below. Even missiles with cylindrical range have a fuel limit that gives them a maximum reach. As a result, advances in space travel tend to be patched out, which is notable because we generally err on the side of keeping creative special tactics in the game. But over time, the "Zero-K cannot into space" rule has emerged as a result of space travel being so non-interactive. Viewing space alongside the ground also causes interface issues.
Complete Annihilation saw our only fully intentional foray into space. This was the original Owl, a spy satellite (probably) added by CarRepairer.
[quote]This stealthy orb can serve as a spotter for your artillery or spy on an opponent's base. It uses a lot of energy to stay in the air but is safe from nearly all units. Vulnerable to advanced fighter planes and long range missile towers.[/quote]It flew 5x higher than the highest aircraft (Nimbus), moved slower than the slowest ground unit (Jugglenaut), and had a tiny 300 elmo sight range. It cost 300 metal at a Core Gunship Plant and, as per the description, could only be shot down by the heaviest ground-based anti-air and air superiority fighters. In other words, this unit only interacted with Artemis and the missile-based Raptor equivalent of the day.
Owl did not last, and became the namesake of the term "To Owl" something. It was nerfed to the point of uselessness because the main balance designers didn't have the heart to remove it, but could see how troublesome it would be if it were at all common. If the enemy had a Plane Factory, then it is just dead, but without access to planes it required very expensive anti-air to dislodge. The hard-counters were too hard and too expensive, while there were zero soft counters. So it was soft-removed, and did not survive the transition to Zero-K.
The reception of Owl set the pattern of subsequent space exploration, and the lack of direct support fostered creativity. People would have to repurpose units to achieve their space dreams, with the main culprits being the gravity shenanigans of Newton, Lobster, and Placeholder. Each of these units has been patched to curtail space travel, although Newton has received the most attention, as the oldest of the three.
Newton is a turret that uses gravity guns to attract or repel targets. Units are allowed to aim and fire at anything, provided there is some reason they would want to, so Newton can target allied units. People quickly realised that Newtons could fire units across the map, with terraformed ramps to help aim and angle the shots. These Newton Cannons were the first form of "space" travel, yet they still exist today, which seems at odds with the injunctions above. What makes the current uses of Newton "legitimate", and what else had to be patched out?
Space is a problem when it dominates entire parts of the game, with little or no counterplay. Newton cannons sometimes win games, but they are hardly a source of cheap, unblockable, death from above. Most Newton cannons launch jumpjet units, but these can be seen as they float down, and shot down in the sky or intercepted. It is a fine back-pocket strategy, but can be countered without too much more investment than it costs. It is also quite important that the units barely go to space, i.e., they can be seen at a comfortable zoom level. The worst cases of space travel let units fly so high that the map is merely a tiny square in the distance.
The first dominant Newton cannon strategy was due to Skuttle, which is a troublesome unit that can cloak, jump, and explode for massive damage. The first issue (mentioned last year) was that it used to be able to jump from space to float down, cloaked, onto the enemy base. The only theoretical counter was to hover gunships above everything important, and station overwhelming firepower nearby to kill the Skuttle in the brief proximity decloak window. So we invented jumplegs to stop Skuttle jumping while mid-air. But this did not stop people raining cloaked death from above.
The next issue with Skuttle turned out to be a broader issue with gunships. A gunship can be pushed by Newtons, but cannot crash, which makes it great for safe space travel. A transport with a Skuttle could be shot high into the sky, beyond the range of anti-air, and flown over the enemy base. Then the Skuttle could be dropped onto important targets below, cloaking on the way down. This prompted a few changes. The first was a general nerf to gravity guns such that only 25% of the vertical component of their force applies to gunships. The second was a targeted nerf for transports, namely that they accelerate downwards towards their desired height faster (a buff in any other situation), and they give units a small random push when dropped, to remove the precision of orbital drops.
Gunships can cause issues without the help of Skuttle. After high-flying gunships were blocked, people began experimenting with horizontal "space". Newton cannons can be designed to shoot gunships sideways off the map, beyond the range of ground anti-air. This let transports and Krows sneak around to the back of the enemy base without having to penetrate front line defenses. The tactic has far more counterplay than orbital Skuttle, but by this point out-of-bounds tactics were established as an exception to the usual protection of creativity. So we put a stop to gunship slingshots by pushing aircraft back into the map, with a buffer zone of 400 elmos, which is approximately the turning circle of the most cumbersome aircraft. Planes could be launched off the map too, and the buffer even had to be halved with the more recent addition of Odin.
Another borderline, yet still ultimately removed, tactic was the Flea launcher. Fleas are cheap and very light, which makes them cheap to launch with a basic Newton cannon. The issue here was that sight ranges are cylindrical, or 2D, by default, which made Flea launchers dominate other lategame scouting options. We were happy with the spread and effectiveness of other, more nuanced, forms of scouting, so the Flea launcher was nerfed. The nerf involved dynamically reducing the sight range of launched units, to approximate a form of 3D sight range (the actual shape is a cone twice as high as the sight range). Players are still free to scout by shooting Fleas at fast, low, trajectories, but this requires a much more expensive Newton cannon.
What of Lobster and Placeholder? Both units used to be able to create self-powering floating space stations, arbitrarily high in the sky. Lobster achieved this by continually firing a large enough clump of Lobsters, since it used to be able to shoot while mid-air. Placeholder can target allies, and tends to lift its target slightly above the ground. Enough Placeholders can form a self-sustaining clump that gradually drifts upwards. The major issue here is that disappearing into the sky makes defeat almost impossible, and Zero-K prides itself on having a better draw situation than Chess. Sky bases are also good places to give ballistic weapons a height advantage, although this is a cool ability, provided it does not become unreasonable.
Space Lobstervator and Placestation were removed on the same day, shortly after Lobster's defeat-avoiding ability was showcased. The fix in both cases was to make the abilities of Placeholder and Lobster decay with height. Lobster cannot boost anything more than 400 elmos above the height of the target terrain, and since then lost the ability to fire while mid-air. A Placeholder shot exploding more than 1200 elmos above the ground has no effect. This happens to be the altitude of the old Owl, although the ramp down to 1200 means that in practice the mass will float around 1000 elmos up. So units can still be maintained quite high in the sky, just not arbitrarily high.
The last, and silliest, way to go to space is due to Dirtbag. The idea is as follows: Dirtbags drop a bit of terrain when they die, so why not stack 500 or so on a single position, then detonate them? The result is a very thin, very tall, spike. This became a problem when people figured out how to glitch Crabs up this spike, which let them shoot at absurd ranges due to their ballistic trajectory. This sort of thing is a neat creative way to create instant spires for Crabs, but the spires could be so high that the rest of the map becomes a few distant pixels. We patched this out by limiting the steepness of terrain created by Dirtbags. Such spires are now limited to 800 elmos, which is still significant, but do not turn Crabs into full-map artillery.
That is it for ways to go to space, apart from simple bugs, such as a bug that let players store impulse and release it all at once. That is also about it for creative tactics that have been patched out, since by and large we try to keep them in, with Newton cannons being a prime example. Space is the main exception, since it is too far removed from the terrain and interactions that make Zero-K great. The same can be said of underground units, but since that was only an ability for one chicken, I would not expect an article on mobile burrowing any time soon.
Index of Cold Takes
Strategy games sometimes offer extra ways to detect the enemy, beyond the standard line of sight, with radar being a classic example found in Zero-K. Radar reveals quite a bit about player interaction, but we will also have to flesh out vision itself, since the two systems complement each other. Both systems use the same underlying mechanics, which were covered last time, although the details are not strictly necessary for understanding how the mechanics are used.
Radar is great because it achieves a lot in the design, yet is mechanically just a variant of sight. In Zero-K radar differs from sight in one way: it only reveals the approximate position of units, nothing else. The type of unit is not even revealed, although this information is remembered for previously scouted "radar dots" (to avoid fighting the UI). In terms of how the mechanics are used, the two systems could not be more different: everything has a sight range, while only a few specialist units and structures have radar. Radar can also "see" a lot further, with most radar ranges being around five times that of the average sight range.
The main purpose of radar is to allow for direct interaction outside combat. By direct interaction I mean interaction with a tight feedback loop, where you and an opponent can see and respond to each other in real time. Sight alone limits players to relatively short-range interactions, which are likely to turn into fights. Various forms of dedicated scouting can allow for more out-of-combat interaction, but that risks making information too cheap. Radar admits a middle ground, one where you can respond to large scale army movements, without being overwhelmed by information or cheapening the fog of war. Of course, if you know where the enemy is, then you should be able to shoot at them (again, to avoid fighting the UI), but to expand upon the implications of then we need to take a detour into sight.
The details of sight boil down to the following question: how far should units be able to see? Our answer is, for the most part, "Just a bit further than they can shoot". This is a deliberate reversal of the situation in many other games inspired by Total Annihilation, but the idea was that it is more satisfying to fight visible units than radar dots. A more thorough justification is that vision on the enemy is tactically powerful, and that scout units mostly gate such vision behind fiddliness rather than any significant tactical or strategic decision making. This stems from the fact that scouts are cheap, can see further than the average combat unit can fire, and are fast enough for death to be a Fighting The UI problem. Mixing scouts into an army is often just optimal, since it lets everything see their targets, but giving this job to scouts mostly amounts to giving them an extra way to be stupid. So to skip this whole rigmarole, we just let units see as far as they can shoot.
A notable exception to the above is artillery. Scouting targets for artillery is satisfying, as the scout has to be sent somewhere dangerous. To support this dynamic, artillery cannot see as far as it can shoot. In fact, we have a general rule that units can see 10% further than they can shoot, to a maximum of 660 range, which is is around the range of a Heavy Laser Turret. However, there are many exceptions to this rule. Some are due to technical necessity, such as the granularity of the vision grid requiring that particularly short-ranged units see a bit further. Other exceptions are deliberate design choices, such as the uniquely long sight ranges of Radar Towers, Owl, and Toad. Others, well, unarmed structures have a sight range of 273 for reasons lost to time, and the sight range of unarmed constructors appears to be essentially random.
By this point artillery seems to have two conflicting constraints: that we want to encourage spotting, and that units should be able to fire at radar dots. The solution, revealed paragraphs ago, is to make radar only reveal the approximate position of units. This is implemented via "radar wobble" - a drifting random offset of the radar dot relative to the unit's true position. Wobble discourages pot shots at dots, since they are likely to miss, so spotters have to venture out to gain vision. Radar wobble brings its own problems though, which we try to mitigate with various UI features. The main one is that radar wobble is removed for scouted structures, since structures cannot move. There is also a state toggle to tell particularly precise artillery to avoid firing at wobbly dots, although it is not enabled by default, for reasons that would require a whole extra article.
What about saturation artillery? A few artillery units are far too inaccurate to care about radar wobble. In this case, shooting at radar dots is a feature. An astute reader may recall a principle that comes up in the design of cloaking, namely that it is frustrating to spend all your time telling unit to shoot at unseen enemies that you know to be present. The same issue arises with area-denial artillery, and is mostly solved by shooting at radar dots, because doing so simulates players making guesses about likely targets just outside their vision. Situations without radar, or with jammed radar, can counter this ability, but this is acceptable because the goal is to make units handle themselves in the majority of cases, just enough to alleviate the repetitiveness of always handling saturation artillery targeting manually.
By this point, it is clear that radar is central to Zero-K, and we encourage this further by making radar very cheap. Not only do commanders have free onboard radar, but the basic Radar Tower almost free. This is a great example of balancing relative to how common a unit should be, rather than by absolute usefulness. Radar Towers also perform double duty as artillery spotters, with an unusually large sight range, which incentivises players to place flimsy structures in outrageous locations, which makes for great target practice. Advanced Radar Towers have even more sight, and 250% the radar range to boot, but cost a considerable amount of metal. This makes Advanced Radar much less common, but their utility lies in viewing the enemy base, which we are less interested in encouraging. Advanced Radar also used to reduce radar wobble, however this reduces the importance of spotting for artillery, so the ability was removed.
The most incongruent part of radar is the fact that radar dots have team colour. This leaks information to the enemy, yet team games rest on the idea that ownership within a team has no mechanical importance. This means that, if you know that the orange opponent has heavy tanks, then a slow orange dot is more likely to be a tank. Supreme Commander solves this with grey unidentified radar dots, and there was talk of adding such a thing to Zero-K, but I have been coming around to the idea that perhaps team colours on radar dots improves the game. At least in casual team games.
Team coloured radar dots efficiently tell your team how many opponents are present on each front, and it adds to the community feel to see who you are up against. It helps distinguish the aircraft of enemy air players, although in this case the vertical position of the dot is often sufficient. The principled stance against coloured radar dots would also advocate for removing enemy team colour entirely, turning the opposing team into an anonymous blob, which certainly feels bad for a somewhat social game. In any case, I would like to experiment with truly unidentified radar dots, but I fear the effect might be too far-reaching to measure in a short-term test. In any case, such tests will have to be postponed until the engine supports such a feature.
Index of Cold Takes
Welcome back to Cold Takes for 2025. The goal this year is to post one every three weeks, but to not fight for space with patch notes.
Just about every real time strategy game has fog of war. Without it, you could watch the enemy base and start countering anything they do. This dynamic can work - there are whole genres built around perfect information - but it seems ill-suited for games with incremental real-time decisions that take time to pay off. But before delving into the role of vision, it is worth taking a look at how it works.
Fog of war can be dead simple. All you need to do is draw a circle around each unit and structure, then declare everything within a circle to be visible. Plenty of games stop there, but I suspect the majority take the extra step of considering terraces and trees. A terrace sight system has clearly defined levels of terrain, with units on lower levels unable to see onto higher ones, and games often block sight with opaque static features, such as trees and buildings. And such simplicity works great, up until the simulationists get involved.
Games of the TA lineage are more simulationist than your Starcrafts or Command and Conquers. That is, they care more about mechanics that match reality, or at least seem to match reality. Zero-K often downplays this aspect, but it is still a bit too simulationist to use a terrace-and-tree sight system. For one thing, we care too much about terrain to approximate the expressiveness of hills and mountains by a series of plateaus with ramps between them. This makes the simulationist route attractive, but it is hard to know where to stop without clear guidance from other design goals.
Before thinking about those goals, it is instructive to consider what fully realistic sight looks like. Such a system would involve drawing straight lines between the "eye" of each unit, and everything the unit might want to see. If the line has a clear unobstructed path, then the unit can see the target, and we can even draw lines to the edges of units to see them when they poke around corners. This is a general technique called ray tracing, and it reflects how light behaves in the real world. But would such a system work for Zero-K, what does the rest of the design have to say about it?
To cut the chase, we will appeal to fight your opponent, not the UI. In short, the interface is your friend, it should not get in the way, and it should tell you everything you need to know about your forces. This includes information about what your forces can or cannot see. An interface that fulfils this promise has to be clear and simple, which is a problem for realistic sight. The crux of the matter is that you need to know what you don't know.
Any old sight visualisation can tell you what you know you know. If you can see a giant robot peeking over a cliff, then the UI just has to draw the giant robot. But how do you rule out the existence of a sneaky medium-sized robot? The UI has to tell you whether you would be able to see one if it were present. The standard solution - spooky black fog - is a great representation of the unknown, but it breaks if you try to do too much with it. Fog is inherently fuzzy, so how is it going to tell you that you could spot a giant robot, but not a medium-sized one? Shifts in opacity are hard to make out to any degree of accuracy, and clearer cues such as contouring or colour coding would be quite busy. So Zero-K straight-up avoids having the visibility of a unit depend on its size.
Here is the trick to line of sight, used by many games: units never actually see each other, they only ever see parts of the terrain. The line of sight shader blurs this fact, but vision works on a grid, with the visibility of a square determined by ray traces to the middle of each square. The ray starts at the "eye" of each unit, so tall units are better at seeing over terrain, while the end hovers a fixed distance above the terrain (or the surface of the ocean). Units are visible if they are on visible terrain, which makes the potential visibility of enemy units very easy to tell the player.
Zero-K sight is still a bit janky compared to simple terrace-and-tree. Smooth terrain makes it difficult to precisely predict what one of your own units will be able to see when it reaches a given location, but this is significantly better than not even knowing what it can see once it arrives. To ameliorate this further we tune the heights of the hover ray trace targets to be fairly forgiving, although in theory they represent the height of an "average" unit.
So there you have it, sight detection in Zero-K is based on whether a unit of "average" height would be visible, because doing it this way allows for simple binary fog of war to tell the player everything they need to know. Except, this is only actually true for ground units. It is time to talk about the exceptions.
Projectiles, explosions, and non-landed aircraft ignore the usual sight rules, instead, using a circular sight system called air line of sight. This is a parallel sight system, but we make sure the air line of sight range of everything matches their standard line of sight range. The system is a nod to realism, since it lets you see planes without being able to see the terrain underneath. On the visuals side, it is nice to have projectiles not blip out of vision when they are fired over a ravine. Why not add air line of sight for particular giant robots? Consistency and clear thresholds; a plane is clearly a plane, but there is no clear cutoff between giant and non-giant robot.
Except, that is not quite true either, as giant robots can often be seen by air line of sight. In fact, anything that has fired a weapon in the last few seconds is visible to air line of sight. This is sensible, since muzzle flares are hard to hide, but it also solves a few edge cases. Without this mechanic you would be able to position turrets behind tall cliffs, making them very hard to target, but still able to shoot at approaching units. As a bonus, a giant robot that spots your base over the edge of a cliff is likely to start shooting at you, so it is almost as if it were visible to air line of sight to begin with.
Sometimes I wonder how many people know about air line of sight. It is one of those mechanics that smooths things over in the background, making the game look good and make sense. Being unaware of it seems fine, and there is a cost to making it more visible. I know from experience that varying the opacity of fog does not look great, because air line of sight used to be drawn as a lighter form of fog. The engine default for air line of sight is 150% of sight range, but we override it to match sight range so that we can avoid needing to draw it (see above). I picked a map with good contrast for these images, but in general it is hard to make half-opacity fog of war sufficiently visible on all maps.
Zero-K also has radar and sonar, but they are nothing new to someone who understands line of sight. Radar is just a form of sight, ray tracing to the same points hovering above the terrain, while sonar is a simple circular system. It turns out the engine developers did not want to implement a full acoustic wave propagation and detection system. That is it for sight. Why units would want to see each other will have to wait, but at least there is now a record of how.
Index of Cold Takes
This patch has a slew of balance changes and a new game mode. Shieldball and Phoenix are the focus of the nerfs, but there are many more tweaks that ended up touching most of the factories. Some more notable ones are Bulkhead being worse at short range, and some cost reductions for the surface-only short-ranged ships.
The new game mode is called Tech-K, and it is a look at what Zero-K might have looked like with tech levels. There are infinite tech levels, because anything else would be arbitrary, with each level doubling the cost of units while slightly-more-than-doubling their power. Feedback during testing ranged from "Works surprisingly well" to "Not what Zero-K is about", so give it a try. It could be fun to run it as a tournament or other event.
Tech-K can be enabled in any game type via the Experimental tab in battle options, and more information is available on the wiki. The mode was partially created to motivate improvements to the dynamic unit attributes system, so there are API changes and extensions that mods will want to take into account.
Zero-K pushes the limit of team games in RTS, supporting up to 16 players per side - something that sounds impossible. Your average RTS caps out at 4v4, with a few going as high as 6v6. In Zero-K players regularly play games three times this size, and while such large games are not for everyone, I suggest trying them out just for the experience. There is a real sense of scale in a game with so many players, taking so many actions, in which you can only really zoom in and understand a relatively small part. But it is surprising that such games work at all, so in this article we are going to dive into the design that makes them possible.
The weirdest part of the story is that, for the most part, support for large team games came about accidentally. The rest of the Zero-K design philosophy just happens to inherently let teams have a large number of players. From time to time we added features aimed at large games, but most of the work is done by principles covered in previous cold takes. We could have deliberately removed large teams, but the attempt would warp the rest of the design, and it is not like they are hurting other game modes. Small games, down to 1v1 and 2v2, work fine, and the way I see it, supporting more game modes is good.
The bulk of the work is done by Fight your opponent, not the UI, plus the realisation that players coordinate with their team via the user interface. Essentially, cooperation within a team should be free of artificial limitations or hoops to jump through, in much the same way as any other action in the game. Zero-K contains simple examples of cooperation UI, such as the nuke indicator that tells players where an allied nuke is expected to land, but not fighting the UI goes deeper than that.
Zero-K is the game that designs the stupidity out of units and uses designs weapons using unattainable ideals, and we take the same approach to cooperation. Like units, players have abilities that influence the game, and we consider it a failure if the mechanics of the game force players down the route of boring and arduous use of the UI. So while most games would happily add a nuke indicator, few would go the extra step of excising fundamentally anti-cooperative mechanics to the extent that we do.
We inherited key player abilities, namely the ability to freely share units and resources, from Total Annihilation. This is a fairly standard function for RTS games, but the implications are far-reaching, and Zero-K has a penchant for taking ideas to the extreme and biting the resulting bullets. The issue with sharing is that sharing UIs are invariably some of the worst found in RTS. They tend to resemble big spreadsheets of fiddly buttons or sliders, which is not what we want in an RTS. So contact with this UI should be minimised, which relegates sharing to an almost "theoretical" ability, one that the game is designed around, but which players should rarely manually invoke. This generalises to the principle of the irrelevance of ownership:
[quote]Nothing in the mechanics of the game world is permitted to depend on the details of ownership within a team, because then players would be incentivised to touch the unit sharing UI to gain an advantage.[/quote]
Few games use this principle, since it is automatically violated by player-specific upgrades. Even within the TA-lineage, Supreme Commander lets units of the same player shoot through each other, but not through allies. Even Zero-K violates the principle, since unidentified radar dots reveal team colour, which can let the enemy guess the identity of unseen units. This is something I have wanted to be able to turn off, but it requires engine work, and to walk back the extremism a bit, dot colour may well improve the game.
The principle of irrelevance of ownership sounds restrictive, but it is also quite freeing, and we were not going to add global upgrades regardless. A key implication of the principle is that resource income can be distributed arbitrarily within a team, without any theoretical impact on in-world game balance. In practise this let us fiddle with income sharing to "simulate" cooperation among strangers on the internet, which is part of what allows such large team games to work. For example, income from metal extractors is shared evenly between everyone on the team, which was called communism mode in early Complete Annihilation. Communism evolved alongside the rest of the game, and quickly became integrated with overdrive, since the overdrive formula benefits from shared resources.
The theoretical justification for communism is that securing territory is a shared effort, and much harder than merely building a metal extractor, so the team shares the benefit. The practical justification was more important at the time though, since we all had experience with people arguing over metal spots in Balanced Annihilation, which could escalate to teamkilling. A secondary effect in BA was the limited map pool; players tended to play a small set of maps, where everyone understood the meta of spot ownership, in part to lessen the potential for arguments over resources.
It is worth mentioning that I snuck an assumption into communism: that players want to cooperate. What if people want to keep their income to themselves? This gets at the core of the design: we assume that the team wants to cooperate, teamwork is the default. If players want to argue and destroy each other's buildings, then they might not find support for these actions in the UI. There is also a bit of a paradox here, as anyone who has played a team game with a range of skill levels can tell you: who owns what is actually very important. But instead of trying to judge the worth of each player, we opted to make a game where part of the skill is in being a good teammate, rather than rolling over the weaker members on your team as you grow your own personal empire.
Communism solved the metal spot arguments and opened up the map pool, but it suffered from the free rider problem. Some players would skip building metal extractors all together, hoping that their teammates would pick up the slack. Full communism was also not great at incentivising overdrive, even when it would significantly benefit the team. So we added rebates. For example, metal extractors refund 80% of their cost to the player(s) that built them, over a few minutes, in the form of a slightly increased share of the income. Energy structures offer a similar refund of 60% from their increased metal overdrive income. The numbers have been tweaked over the years, since a higher payback percentage can lead to perceptions of selfishness by energy spammers. We even recently introduced payback for the first few Antinukes built by a team, as a social way to nerf nukes in low-cooperation situations.
Shared metal extractors also helped with the "Tabula Problem" caused by some rotationally symmetric maps. Tabula has high terrain on its North and South, that is easier to take and defend from the North-West and South-East respectively. Before communism, Tabula was typically won by the team that invaded the weak low ground from the strong high groud, before their opponent did the same on the other side of the map. The low ground just lacked the metal income required to mount a defense, without players manually sharing units or metal extractors. Tabula continued to play a bit like this since communism, the low ground still has poor terrain, but the extra income makes the defense fairer and more interesting.
Income sharing alone is not enough to make large games fun. For that we need the rest of Zero-K, primarily its unit and faction design. Our large number of faction-like factories lets players carve out a distinct role and set of units within the team, and factory plop lets everyone build a factory without "wasting" resources. There was concern that the recent addition of factory plates would destroy this sense of having a role within a team, but the fear has not come to pass. If anything they seem to have improved team games by letting players take on a role they are not sure of, with the safety of being able to switch out of it cheaply.
The coordination feature that came closest to breaking the game was shared control mode, where players own and control the same set of units. The campaign has shared control, but it can also be enabled in team games via an invite system. The danger with shared unit control is that it can be powerful, but it is also quite annoying when someone else accidentally uses "your" units. This is the dreaded trade-off, power at the cost of fighting the UI, but the mode is barely used in public games. Tournament and campaign games are different, since people can communicate enough to avoid the downsides, and in these contexts it is a great feature.
As with many automation-type features, it is worth asking whether cooperation has been automated away. I think we are fine on this front; teammates send messages, flank, and otherwise help each other out. People still share the occasional unit to augment fronts that really need it. Mostly we have removed the excess UI interactions, and set a baseline level of cooperation so players can expand as much as they want without worrying about "stealing" metal spots. Perhaps the greatest benefit is too the map pool, as any map can be played with any number of players, for a really wide range of experiences.
This marks the end of the first series of cold takes. Twenty is a nice round number and it is time for a short break. Look forward to the next series starting in January next year.
Index of Cold Takes
This week's cold take is early, unusual, and short because Ludum Dare is this weekend. Ludum Dare is a game jam: an event where individuals or teams of people make games in a short period of time. They tend to run for a few days to a whole week, depending on the jam, and teams are given a short prompt or "theme" to incorporate into the game. There are many game jams these days, I just do Ludum Dare for the schedule and because I like rating other peoples' at the end.
Everyone with an interest in making games should give game jams a go. The actual event only takes a weekend, although a bit of upfront investment to find an appropriate engine goes a long way. The barrier to entry is fairly low, and I even think game jams are a great way to learn certain aspects of programming and design. A jam is a microcosm of project management, where choices made at the start of a project tend to come back to bite you at the end. This process is particularly instructive when there are only three days between the choices and their consequences. And by the end, you get a game out of it.
I especially recommend game jams to anyone working on a long-term game, such as Zero-K, because speedrunning the whole process can clarify your progress on the longer game. It also lets you experiment with new ideas and flex your creativity, which probably helps prevent feature creep. Besides, making games is a matter of practise, and as the Go master said to the game designer: "make your first fifty games quickly".
I got involved in game jams through the Spring Cabal, a group of Spring developers that used Spring in several Ludum Dares between 2015 and 2018. The release pages for most of them were lost in the LD site rework, but builds can still be found in the organisation's GitHub repositories. Dominic (aka Shadowfury333) was also kind enough to document most of them on his YouTube channel.
The diversification of bombers over the past year has been great, but it also highlighted some problems with a few mobile anti-air units. This patch tries to carefully resolve these deficiencies, and to shift things slightly away from Phoenix and towards Magpie. The two bombers finally agree on rearm time.
This update coincides with an AI update and the addition of around two dozen new maps. Try them out, perhaps against the new AI, and give feedback on your favourites. If instead you prefer 1v1, check out Fight Club later today (Saturday) at 1900 UTC, and on every first and third Saturday for the rest of the year.
Zero-K maps set surprisingly few hard restrictions on unit movement. Instead, many of them mainly use terrain to influence the value of locations, as well as how easy they are to reach and defend. There is also plenty of space for huge cliffs and vast seas, but what really sets our terrain apart is the subtle effect of each hill and valley. This is before even considering how explosions and terraforming change the terrain during the game. Terraforming elevates terrain, but it requires a strong foundation of important and nuanced terrain to make any sense. So for now it is time to look at how Zero-K uses terrain.
Maps can be decomposed into three main parts.
Cloaking is awesome. At least, some types of cloaking. Depending on who you ask. Let me start again. Cloaking is polarising. Some love it, some hate it, and being on the receiving end of an invisible strike can feel pretty terrible. To complicate things further, the specific mechanics of cloaking vary wildly between games. Sometimes cloaked units are near-immune to damage and can fight with impunity, while cloaking in another game might be dispelled by the slightest touch. But where it gets really interesting is how a single set of cloaking mechanics can be used in different ways, within the same game. Zero-K has a lot of cloaking, which equates to a lot of ways for it to go wrong. In addition to personal cloak, cloaking fields were added early in Complete Annihilation as a way to differentiate Arm from Core, and we have been nerfing them ever since. Over time, we started thinking about cloaking in terms of two distinct use cases.
it is finally time to talk about weapons, starting with how they are fired. The weapon design space is huge, thanks to projectile physics, and we put it to good use. But such freedom is a double-edged sword, since much of the full design space contains frustrating or incomprehensible mechanics. There are interesting games in this space, but Zero-K is first and foremost a strategy game, which means it needs to be stable and predictable enough to reward planning. So, to combat the full freedom of physics, we installed a few guard rails around weapon design; a loose set of rules that, if followed, limit how badly a weapon can break the game. There are rules for many aspects of weapon design, but those around aiming and firing are some of the most important. The rules consider the following three aspects of our design goals.
This week we're back to Sprung's series on unit improvement mechanics missing from Zero-K. After Mighty Morphing, it's time to tackle veterancy. This one still exists, well, sort of.
Already in Zero-K's oldest ancestor, Total Annihilation, units could gain veterancy via kills. The TA interface was fairly cryptic as to what exactly this meant: it provided no further information beyond adding the single word "Veteran" when mousing over units with at least 5 kills. Those of us who spent days shelling enemy bases with Big Berthas often noticed the improved accuracy. With a lot of effort it was possible to discover a minor increase in health as well. Frontline combat units were out of luck though, with veterancy being quite hard to obtain and having barely noticeable effects.
Zero-K is not constrained by the TA engine though, it runs on Spring (now Recoil), which expanded upon veterancy from early in its development. So by the time Complete Annihilation came around, veterancy did three things:
Revenant was brought back from the dead just over a year ago, but it lurked in the background until the appearance of combat engineers. Killing these newly-popular commanders in two shots let people really explore what Revenant could do, and most of it looked fine, so the Revenant nerfs focus on early game power. One thing that ended up not being fine was Revenant spires, so its missiles now explode after a short time rather than fall to the ground.
With Revenant moving towards a healthy place, it is time to revive another tricky unit. Scallop is the candidate this time and it is a dangerous unit to buff, so the changes are aimed squarely at it being a better riot. It now 2-shots individual Ducks and can stand toe-to-toe with similar riots. On paper it is still worse than Reaver, but knowing Scallop it will break the game anyway, so look forward to it.
The last release was a bit too recent for many features to roll in. A notable fix is for aircraft wing trails, and a notable feature is the random selection of custom music albums, as well as the ability to play mp3s.
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.
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.
Likho has a new model by brunocb, giving it a proper singularity bomb. This update also has many fixes and a few balance changes. Some of the fixes are due to an engine update, such as a decades-old bug that caused reverse-built units to sometimes try to slide off the map. On the balance front, Bulkhead now has a bit more range than Stinger, Duck is a bit better, and Disco Rave Party spins faster.
Zero-K has nukes. This should come as no surprise, since otherwise the genre police would revoke our sci-fi license. Even a few fantasy games have nukes, but wherever they are found, they all work basically the same way:
Players coming from other strategy games often find classic conventions broken and common systems missing. The three focused on improving units - morphing, veterancy, and research - are largely absent from ZK. Today is the first of a series of guest articles by Sprung that will talk about them.
First, let's talk about the unit improvement system that still exists vestigially in ZK: morphing. Morphing is often called upgrading, but I won't use that term to avoid confusion since it can also mean research. Very generally, morphing lets you improve or modify a single unit, as opposed to upgrading all existing and future units of that type, like research does. This can be as little as paying three seconds of time to deploy a Terran siege tank; or as drastic as changing two Protoss Templar into an Archon. Of course you can have morphing as a major part of faction identity and aesthetics, but let's talk gameplay. When to have morph instead of just letting players build things normally?
An easy answer is that sometimes you already decided not to let players build more of the unit. In ZK you only get one commander, and there's a limited number of geothermal spots. Accordingly, they are the only two cases where morphing is just a straightforward upgrade. The astute reader may have noticed that metal spots are also a limited resource, and indeed mexes used to morph into Moho mines for a short period before overdrive was instated. Here morphing lets you decide to get more mileage while working within the limit.
A nice example from another game would be the Chinese Overlord tank from C&C Generals. It has a soft limit by virtue of simply being too expensive to field many of them, but you can add extra weaponry on top for even more firepower. Allocating skill points for WC3 heroes can also be thought of as a form of morphing, and it's no accident that allocating modules for ZK commanders looks so similar.
The flip side of a unit limit is flexibility. RTS is, among other things, about making the correct units to adjust to a quickly changing battlefield. The flexibility of morphing lets players continue making choices about their unit composition in face of a limit. Warcraft heroes, Generals Overlords, and ZK Commanders all present multiple morph choices for this reason. Similarly, in Dawn of War earlygame, forcing the player to choose between Flamers or Bolters for their first tactical marine squad, blindly, would not be good design. Morphing some marines to equip weapons lets players make that choice later, while still having a squad on the field to capture points, scout, and do other tasks that don't yet involve picking a specific unit composition. Then, when you scout Orks? Brother, get the Flamer. The Heavy Flamer.
Back to ZK though, since we don't really put any pressure on the player in the form of unit limits, there is barely any need for the flexibility. Ramping economy means that even the most expensive units can become somewhat affordable over time, and by that point you have all the flexibility in the world anyway. Would it hurt to have a little extra?
The problem with flexibility is that it creates a sort of Schrdinger's unit that occupies multiple spots in design space at once, to be resolved into one of them when observing the enemy. The danger ZK sees here is that a monospammed unit could become a composition thanks to its own flexible morphs. Everything becomes much simpler when you can do Just-In-Time reinforcements of the correct type without having to do lame nerd stuff like "logistics" or "foresight". No travel time from the factory. Less risk of overbuilding a variant. Of course these can be adjusted via other stats, but that would all come with a reduction in flexibility.
What about "inflexible" morphs, where there isn't really a composition to talk about and you just want to add more stats? Say, why doesn't a factory have a +10 Buildpower upgrade? It would be more atomic than a Caretaker, who can also do other tasks such as repair! Or, if I want to upgrade Felon battery recharge rate, I have to either get Convicts and have to pay for buildpower I didn't sign up for, or Thugs with inefficient guns thrown in. Meanwhile, a +15 shield regeneration morph would be atomic while remaining a choice! Part of the answer is that units are physical entities in the world and thus there is more interaction between them. In particular, Convict buildpower and Thug guns nudge the player into using them, which then cascades into the usual complexity of the game when the enemy has to respond in turn. The other part is emergence. Felon wasn't initially designed to work as a standalone unit and get "batteries" added; rather, it was designed to itself be added to a shieldball as a way to spend charge. Batteries are a player discovery, if an extremely obvious one.
An interesting feature of morph is that it provides its own buildpower and can have different tech requirements, which then can be used to adjust the appeal of different options. If you require a unit to be built "normally" then it competes for infrastructure (buildpower, logistics) with other units that you may rather be building. Morphing is a way to avoid this, which makes the unit more attractive, or the usual infrastructure less attractive. To put this in concrete terms: say you want to encourage mobile cloakers, because cloaking is cool. If you require people to build them from a cloaky factory, then sometimes they'd rather build a different factory as a secondary, or if they already have a cloaky factory, they'd rather build a different cloakybot. Morph lets a unit be its own little temporary factory, and the elegance of this is that much like energy requirements, it touches just the infrastructure and not the unit itself. The morphs for mobile cloaker and shield, while originally created just as a way to let them redeploy, fall under this category. We try to avoid this type of morph outside of utility units since infrastructure exists for a reason, and while it is easy to manage it should not be obsoleted.
At the beginning I mentioned Siege Mode as an example of morph. In ZK, a handful of units - for example Crab, Fencer and Emissary - have a soft siege mode where standing still gives them some sort of benefit. They deploy so fast that not doing so would mostly be a matter of not having the APM, so rather than make the players fight the UI by spamming Deploy every time they want to move, the units deploy on their own. To let this happen, there is a deliberate large gap in unit design space where nothing has a deployment mode that would be long enough not to automate, yet short enough to make you miss the automation by being commonly desirable. On the other side of this gap we have Desolator, which can deploy into an armoured form, but it takes long enough to make it a rare decision that can afford to be manual. Thus, unit intelligence, or rather avoiding situations that would create unit stupidity, is what prevents sufficiently cheap morphs from existing.
A final way morph can be used is to randomly change a unit into a completely different unit, apparently for no good reason. Why does Lurker morph from Hydralisk? The answer seems less to do with any explicit unit design, and more with how it just had to be crammed somewhere given there were no empty slots on Larva build GUI. Hydra was the least awkward place to put it. Surely ZK would not do something as silly as, say, let Knight morph into Crab without an extraordinarily good reason, right?
...right?
But that is a topic for another week.
Index of Cold Takes
This is a small patch that was released to fix the settings deployment bug. A few other things we were working on made it in too.
Zero-K units are generally quite simple, with many of them designed around a single weapon or ability. The idea is that the complexity of an army should come from how it combines unit types, rather than having any individual unit be particularly complicated. I call this the principle of atomic unit design, because it characterises units as the building blocks of armies, and simple units are, in a sense, indivisible. Simplicity is a good enough goal on its own, but atomic unit design also has an important role in fighting monospam.
Monospam, i.e. spamming a single unit type, can be a contentious issue in RTS. Many players consider such a strategy "unfair" or "cheap", and games are often designed to discourage it, including Zero-K. This makes Zero-K a bit unusual within the Total Annihilation lineage, since TA had a bit of a reputation for monospam, and many successors dealt with it by culling the "excess" units. Zero-K went the other way, and found ways to balance a large unit roster without the resulting monospam. But before we get to that, we need to pin down what makes monospam powerful in the first place.
Monospam derives a lot of its power from being easy to manage. The logistics are simple. Just set your factory to repeat-build Scorchers, spam Ctrl+Z to keep them all selected, then repeatedly hit your opponent with them. The Scorchers move at the same speed and want to fight the same types of battles. But mix in more unit types, and it becomes much more complicated. Even maintaining the right mix is a challenge, since different units often die at different rates, and reinforcements take time to reach the fight. A mixed army that loses most of one type has to wait for the build ratios to be adjusted, while monospam can rely on a constant stream of appropriate reinforcements.
To skew things further, mixed armies are as bad as their weakest unit across many attributes. For example, mixed armies move at the speed of their slowest unit, and are as vulnerable to attrition as their most fragile. Consider an army of tanky Minotaurs and glass cannon Ogres. Such an army is either going to lose a lot of Ogres, or it is going to avoid taking fights that Minotaurs would weather without hesitation. In many situations, half an army wants to fight while the other half wants to run away. None of this is an issue for an army of a single unit type, with uniform strengths and weaknesses. Essentially, most units synergise best with themselves.
So, why do we want to discourage monospam? In short, because there is no crunch in easy decisions, and Zero-K is largely about deciding what to build and how to use it. This is much more involved when dealing with multiple unit types, both on your side and in the enemy army. And, as mentioned previously, the goal is mixed armies of combat units. Mixing battle tanks and anti-air is fine, but the tactical goals for such an army are often quite simple, depending on the type of enemy that is coming at you.
Now that we know what makes monospam powerful, how can we avoid it? The first principle is that mixed armies are 'allowed' to be much more powerful than monospam. My gut says 1.5-2x as powerful, but there is no definite value. The principle is great for guiding balance discussion though. For example, say we are thinking about how Rover might counter Fencer. Scorcher is a decent suggestion, but then some theorycrafter objects that Scorcher is solved by mixing in a few Rippers. At this point, we can invoke the principle, and say that Scorcher losing to a mix of units is fine. Forcing your opponent into a mixed army is half the battle, with the other half being to wait for them to succumb to the extra complexity. So we are free to focus on whether pure Scorcher beats pure Fencer.
Likewise, the second principle for avoiding monospam is that everything needs a hardcounter. It is not enough for a unit to have bad matchups, it needs some absolutely terrible ones. This because straight-up cost-for-cost fights fail to take logistic and self-synergistic advantages into account, and such fights in a vacuum are an important part of judging counter relationships. So any unit that manages to not lose too badly against anything is a prime candidate for monospam. This is not to say that hardcounters have to feature prominently in how the game plays, they just have to be lurking in the background, threatening players with annihilation if they invest too much into one unit type.
This is where atomic unit design comes into play. A unit that does one thing well tends to have weaknesses everywhere else, so must rely on other units to cover those weaknesses. Atomic unit design is not a strict rule though, as it often fights the Rule of Cool. This is a hard fight, especially when big units are concerned, but we still try to keep the abilities of complicated units pointed towards the same purpose. Sea has struggled the most with the Rule of Cool, since ships want to have multiple weapons, and the disparate weapons of Siren are a remaining nod in that direction. The worst offender was Envoy, which used to have a depth charge that acted as inbuilt riot support against anything on or below the water.
Factory abilities further dilute the idea of atomic unit design. If you count things like personal shields, jumpjets, and spider legs as abilities, then a lot of units have two abilities; one weapon and one utility ability appropriate to their factory. However, this extra complexity is well worth it, as having an ability in common strengthens the feel of factories as cohesive factions. The same could be said of, say, Zerg Burrow. Besides, a "faction ability", one shared by many units, has a much lower complexity penalty than an ability that arbitrarily exists for a single unit.
Atomic unit design also applies to structures. For example, Complete Annihilation had a few types of metal extractor, including an armed metal extractor. This structure was not atomic since it had two distinct abilities, metal extraction and a laser turret, so it was removed in favour of the more interesting method of defending a metal extractor: just make a Lotus. This confers all the subtlety inherent in atomic units, A turret might be built forwards to better protect the mex, or in a more defensive position and use the mex as cover. A weak raiding party might have to choose between killing the turret or the extractor. Armed metal extractors provide none of these decisions, approaching one is the same every time, and a fight with one only has two possible outcomes.
Commanders, being the opposite of simple, are a constant thorn in the side of atomic unit design. They are upgraded a bit like a composition of units, with each module adding a single weapon or ability, but fight like a single unit. A high level commander is akin to a one-unit monospam, with all the logistic simplicity and self-synergy, so it needs strong counters. This is hard to square with the feel of commanders, but that deserves its own whole article.
By now you might be wondering, is this all just Quant's Rule? Yes and no, I would say that the ideas are complementary. Atomic unit design is more of a goal than a method, while Quant's Rule is not so strict about how many strengths a unit can have. Quant's Rule guides us through day-to-day balance changes, while atomic unit design is more holistic. Waffling aside, it is mostly just useful to look at things from multiple directions, and it should not be surprising that many of the principles behind Zero-K lead to the same place. So stay tuned for the third I can't believe it's not Quant's Rule article, where I expect to cover Moonwells and the nature of greed.
Index of Cold Takes
Most player actions in real time strategy boil down to giving commands. After all, these are games about telling units what to do. But there is a subtle difference between RTS and most other genres, in that players tend to act indirectly, by assigning goals to units. The game world itself is only ever affected by units as they try to achieve their goals. This takes a certain level of unit intelligence, and the stakes are high. The fantasy of commanding an army can be shattered by a single unit wandering off in a weird direction. Issuing commands also has to feel good, since it is your primary way of interacting with the game. This implies that common commands should be small and simple, like short words. In fact, commands can be thought of as the language used by players to tell their units what to do. This analogy turns unit control into a communication problem; how can the player communicate their grand plans to the fragile bundles of code that stand-in for the brains of their units? The units of Zero-K are relatively smart. Here are some examples.
The most experimental change of this patch gives Engineer Commanders the ability to build units out in the field. The goal is to make it more than the base building chassis. A much more normal change accentuates the speed of Strike Commanders by reducing the speed of the competing Recon Commander. Planes have been tweaked slightly, with the most notable change being Sparrow stealing Owl's radar jammer. Disco Rave Party has some ludicrous buffs since the newish spin-up requirement had a greater than expected impact on its power relative to Zenith.
For all its weird experiments, this patch is more about tech than balance. The engine has been updated with a new decal rendering system that performs better and will let us do more with explosion scars. Unit selections are drawn much faster and many of their edge cases have been solved. A new ambient occlusion shader gives the everything a bit more sense of depth. This is on top of a bunch of fixes and polish that built up over the last few months.
No Cold Take this week, because there was a lot to do for the patch.
Why does Zero-K have energy? The previous article stopped just short of asking this question, but it is well worth asking. Continuing on, everything costs equal amounts of metal and energy, so it would seem simple enough to drop energy from the equation. Doing so would certainly make the economy smoother. Look at the Command and Conquer franchise, it seems to do just fine with one resource. But hold on, that is not quite right, since C&C has another resource, power, which plays much the same role as energy in Zero-K. Both resources are used to control the pace of escalation in their respective games. Energy in Zero-K is like houses in Age of Empires, or Supply Depots in Starcraft. Fundamentally, these resources act as an expandable limit on some other aspect of the game, while being fairly unlimited themselves. The big difference is that houses limit the size of your army, while energy limits your rate of production. But we can call them both supply resources, and the effect of such a reason is to make it more expensive to build something for the first time, since infrastructure is needed to support it. Or to give it a more positive spin, supply provides a discount for rebuilding something up to its previous size. Many resources fit the supply mould once you see the pattern. Consuming supply is generally a good thing, as units would prefer to do so than cost an equivalent amount of resources. Consider the Supply Depots in Starcraft, which cost 100 minerals and produce 8 supply. Now consider two variations on the Marine, if we ignore things like build times and hard supply caps, which is more powerful?
Zero-K uses a flow expenditure system, which is the system of choice for games of the Total Annihilation and Command and Conquer lineages. However, we break from the rest of the TA-like games by paying particular attention to making the economy flow smoothly, in stark contrast to the unforgiving economies that tend to define the subgenre. This is because Zero-K is about fighting the enemy, not about micromanaging your base, and it also demonstrates how flow economies are not necessarily daunting.
A flow expenditure system works as follows:
Jumping is old, going back to the early days of Complete Annihilation, which predates Zero-K. It is also a very stable mechanic, to the point where a player from 15 years ago would not see the difference just from using it. In part this is due to its simplicity: just give a unit which can jump a jump order, and it will jump to the location once it is in range. But it is also because surprisingly little has changed.
So why write an article about jumping? Well, while there have been a few changes, each one reveals a further refinement in the design of Zero-K. Even more revealing are the ways that jumping has deliberately stayed the same, in the face of potential changes. So here are four mini-articles on the how, what, where, and legs(?) of jumping.
Projectiles in Zero-K are physically simulated, meaning that shots fly through the air and collide with anything that gets in the way. This is standard for games inspired by Total Annihilation, but Zero-K leans into the mechanic hard, and embraces the implications. Not content with taking only one thing to the extreme, Zero-K also has a strong aversion to armour classes and damage bonuses. We completely avoid damage formulas of the type that let pikemen deal extra damage to horsemen, or tanks take reduced damage from rifles. The goal is to create a game world that is visceral and intuitive, something that is best engaged with as a physical space, rather than as an abstract collection of numbers.
Complete Annihilation steadily removed the damage formulas inherited from Balanced Annihilation, and it looks like BAR might head the same way too. These were mostly things like commanders taking extra damage from turrets, and various EMP resistances. Bonuses like these suffer from being confusing and hard to remember, especially in a futuristic setting with no historical precedent or clear notion of infantry to guide intuition. Besides, completely removing damage bonuses is just so elegant, and making it work is a fun challenge. So we saw damage bonuses as a crutch, they solved problems in BA, but we could use physics to come up with better solutions.
To stack hubris on hubris, we also wanted the units of CA to have roles. Roles in the sense of pikemen beating horsemen, which is a bit more detailed than the roles found in Total Annihilation and most of its progeny. The roles in TA tend to be big "theatre of war" style designations, with roles like "bomber", "fighter", "scout" and "artillery". These roles are about dominating air, land or sea, or about projecting force from one domain to another. Artillery even fits this description if you consider bases and open ground to be different domains. In any case, all this theatre-on-theatre action left little room for diversity within a domain. This limits the options for combat within a domain, and in particular, land armies designed to fight other land armies could end up quite similar. The generic "army unit" would change as the game escalated, but at any given point the unit selection felt slim.
Armies in Zero-K should consist of multiple unit types, and it should be possible to exploit deficiencies of enemy armies, all within the ground vs. ground game. So Zero-K is designed around roles. Fast light raiders beat ranged skirmisher, which beat slow beefy riots, which beat fragile raiders. Whether these are "hard counters" or not mostly depends on how you define "hard", but I think they are mostly soft counters. Units can often beat their counters with a slight numbers advantage and a good engagement. We still have the "theatre of war" style roles, since cross-domain interactions are great too, but these counters tend to be harder. Artillery is very good against static defense, and fighters are very good against bombers.
How does Zero-K have such roles, all without any bonus damages? What makes the horseman-equivalent particularly bad against the pikeman-equivalent? In many cases, the answer is physics. Game physics, not real world physics, as the goal is depth rather than realism. Physics means the way units move around the world and interact with each other. It is things like unit positions, ranges and speeds, weapon area of effect damage, and how projectiles move. This is not new, every RTS has physics, and without it they would essentially be spreadsheets. Physics is fundamentally what gives players any reason to care where anything is. Every game with time, space, and simple rules linking them together has some sort of physics.
Not only is physics used by every RTS, it is often a large part of their design and balance. Horsemen counter archers because speed physically counters range, and any arrow-resistant armour is just icing on the cake. Zero-K just takes this a step further, eschewing damage modifiers and relying more on physics instead. This is a design constraint, a rule we have set for ourselves, because it means that units need to be physically different to have different roles. Spearmen can be designed to counter horsemen with physics alone, but it becomes tricky when it is time to implement a physically similar swordsmen. There is still plenty of freedom though, since quite a bit can be done with basic stats such as speed, health, damage and range. On top of this, Zero-K uses projectile physics to a much greater extent than the average RTS.
In most games, units shoot projectiles as a form of delayed damage, and to animate the act of shooting. A standard projectile will hit its target, and nothing else, unless the target does something weird (such as dying or, in some cases, teleporting). In Zero-K, each projectile is an independent entity with its own physics. Plasma cannon shots arc through the air, lasers fire in straight lines, and missiles try to track their target. If a projectile hits something, anything, then it explodes and deals its damage. The visuals are used to convey all this, rather than just being an animation to show that a unit shot.
Projectile physics increases the importance of units' speed and model size. Many longer ranged weapons shoot slow or inaccurate projectiles, which gives small fast units a chance to dodge while closing in. The slow rockets of most skirmishers are tuned to hit large assaults and riot units. In turn, the even slower projectiles of assaults and artillery units give most targets a chance to dodge, with the notable exception being turrets. There is space for soft counters here. Skirmishers can still beat fast raiders, but it is more a matter of creating a blizzard of rocket fire than having individual skirmishers fire at and hit individual raiders.
The whole "Physics vs. Formulas" dichotomy is about which parts of the game are more important. It is about whether a player choosing which unit to build thinks more about how it moves and shoots, or about damage formulas that determine what it counters. Zero-K is on the side of physics because it is cool, and it seems so intuitive. Players can see whether a projectile hits a unit and extrapolate the results for other projectiles and units of a similar speed. On the other hand, formulas are invisible and can be arbitrarily complex, taking into account armour, unit type, weapon type, and upgrades. Enough of a reliance on formulas can make the physics of a battle irrelevant, which is a shame because it is the part of the game that players can interact with moment-to-moment. Exploiting a formula is more down to unit choice than unit usage.
Great mechanics have more than one purpose, and physics of Zero-K has many. A big one is to fight Lanchester's square law, which essentially says that an army of twice the size is four times as powerful. All games have to grapple with this law, that is, unless they are happy with players just rolling a big ball of units around the map. The trick to fighting Lanchester's square law is that the "square" only applies in ideal situations, so to fight it we just need to move away from the ideal. Most games do this via units of inconveniently short range, to limit what can fire, and area of effect damage, as it deals more damage to dense armies - armies which are dense because everything is trying to get into range. Zero-K makes use of these approaches, but uses projectile physics to add even more.
Unguided projectiles act a bit like area of effect damage, because dense forces take more hits. Consider how a large force of Ronin will fire more rockets than a smaller force, but also runs into more rockets. At least, unless the Ronin spread out, but that risks moving some too far away to shoot. This all fights Lanchester's square law, but in a dynamic way where there are tradeoffs between dealing and taking damage. A small force can hold off a large one for a while if the larger army is unwilling to take any damage. It also makes attacking from multiple angles even better, since it reduces your own density. But perhaps the most notable effect of simulating projectiles comes from allied units blocking each other.
Projectiles hit units regardless of their allegiance, and going this far with projectile physics is rare even among games inspired by TA. It means that a dense blob of units loses most of its damage to blocked lines of fire. This further encourages armies to spread out in a line. Density and facing is very important, since a good flank can leave most of an army unable to return fire, even if they are in range. High density is not all bad though, since it concentrates power and prevent units being surrounded by enemy raiders, so there is a constant tradeoff. Still, Zero-K tends to have lower density armies than the average game, which encourage spread out battles across multiple fronts. The advantages of low density even play a central role in the escalation from cheaper to more expensive units.
Projectiles have a lot of parameters, which in turn allows for a large range of weapon types. To cut down on complexity, most weapons fall into one of three categories.
Games in the Total Annihilation lineage almost always have the same two resources, metal and energy. Metal is produced by building Metal Extractors on deposits scattered around the map, while energy comes from power generators that can be built, by and large, anywhere. The more important resource is metal, simply because metal deposits, or "spots", are rarer than free space to produce energy. Metal is the limiting factor, which causes players to expand out onto the map, capture territory, and interact with the enemy. A game without metal would mostly consist of players sitting in their base, building energy.
Many TA style games also have Metal Makers, economic structures that drain large amounts of energy to produce a bit of metal. Supreme Commander calls these Mass Fabricators, but mass and metal are just two names for the same thing. These structures are less efficient than metal extractors, otherwise players would have no reason to leave their base, but they allow players to scale up their economy without capturing more metal spots. The only requirement is space and resources, which makes them useful later in the game when all the metal spots are taken and defended. The early developers of Zero-K liked the idea of a growing economy, but not how it was implemented with metal makers.
Metal makers were removed from Complete Annihilation, the precursor to Zero-K, just about as soon as it forked from Balanced Annihilation. For context, the average 8v8 BA team game had a few players on each team fighting over unclaimed territory, while the rest of the team sat in the back and mostly built metal makers. The back players players were not slacking, they were necessary, because games were rarely won before metal makers became a deciding factor. Any team that ignored metal makers risked being overwhelmed by the compounding income they would eventually provide. Eventually, once a team had enough metal makers, territory no longer mattered. This did not sit well with the CA developers, as they preferred fighting and expanding to sitting in the back.
Metal makers are fundamentally a way to spend resources now to be more powerful in the future. Every RTS needs something like this, some way to invest in the future. Investment can take many forms, from simply increasing income, to upgrades that increase how much power you can squeeze out of your existing income. Investment is vital because it is a dimension of the strategic triangle, with the other two dimensions being aggression and defense. Without investment, there would be no way to outproduce and overwhelm an overly defensive opponent, and there would be nothing for aggressive play to punish. So we knew that CA needed some form of investment. We tried subsisting on advanced metal extractors, another feature of the TA lineage, which are expensive income upgrades for basic metal extractors. These were a bit finicky though, and the ability to invest hits a wall when there is nothing left to upgrade, so we came up with overdrive.
Just as an aside, I recall discussion on the Planetary Annihilation forum about whether it should have metal makers. It ended up without them, and without a replacement, which might be fine, although I lost track of PA so cannot say for sure. I suspect relying on advanced metal extractors works because there is a lot more frontier to defend when playing on a planet, and PA was fairly spammy with its metal spots. So upgrades can carry the investment game, just in CA's case the maps tended to not have a ludicrous number of metal spots.
Anyway, CA went with overdrive, which may have been invented by Licho. I know he at least wrote the first version of the code. The basic idea is that every metal extractor (mex for short) should also be a metal maker, because that links metal makers to territory. A complete system can then be derived by noticing and fixing a few immediate issues.
This update follows the Corsair buff from last month with a wider range of ship tweaks. The largest are that Siren and Envoy are much heavier, and that Reef drones capture units. This should give smaller ships time to shine and make the larger ships more impactful. Many ship hitboxes have been fixed to better match their size and shape, some visual sizes were tweaked, and ship wakes have been improved for look and consistency.
Beyond the shipyard there is an experimental Ronin buff that makes it much faster when out of combat, as well as buffs for Grizzly and Magpie. There are a few more Cloakbots buffs, foreshadowed by the matchup chart in last week's Cold Take. In terms of features, the ingame menu can be brought up over the Victory/Defeat screen in the campaign, and Comet Catcher Redux/Remake has the classic corner start boxes for 1v1.
How many factions are there in Zero-K? I get asked this from time to time and am never quite sure how to respond. It looks like a simple question with a simple numerical, like two or seven, but it is actually quite complex. The questioner may not stick around for the full answer, and I might not have the time to give one, so what am I to do? Finally I have the solution: just link this post. Strictly speaking, Zero-K has one faction, but in many ways it has somewhere around eight to eleven. Many parts of the game are designed to satisfy most of what people want from factions, and it is these desires that lead to questions such as "how many factions are there in Zero-K?". This is why I have such trouble just answering "one", as it gives the incorrect impression that we have nothing to offer people who like games with many factions. The faction-like entities of Zero-K are the eleven factories that produce most of the units in the game. Here is a quick overview of factories.
Many players mention Zero-K's powerful controls when asked what they love about the game. Some even joke that we spoilt other RTS for them. By now there are a few other games with parts of the Zero-K suite of controls, but I know of none that are driven by the same underlying principle. That principle is "Fight your opponent, not the UI (user interface)", and it goes back to the early days of Complete Annihilation. It is as central to Zero-K as Quant's Rule and was possibly coined by Saktoth, an early developer who liked to cite it.
A player is "fighting the UI" when they have a clear idea of what they want their units to do, but the controls make it difficult to tell their units to do it. Zero-K tries to resolve this fight, this conflict between the player and UI. This involves eliminating busywork and making simple ideas require few clicks to implement. The principle is the antithesis of things like clicking every 12s to build a worker, or routine frenzies of active ability targeting. At its most extreme, the principle advocates for a direct telepathic link between the player and game, removing all intervening interfaces. Putting aside the current state of psychic technology, other design goals prevent us from going that far.
The principle is not about removing micromanagement, as the 1v1 community can attest, Zero-K can be fast and frantic. Rather, it is about giving each click as much meaning as possible. Consider line move. Spreading units out along a line requires many clicks in most games, since numerous subgroups have to be selected and told where to go, while in Zero-K a line takes one click. If an "average line" takes 10 clicks to create, then each of the clicks has 1/10th the meaning of the one click required in Zero-K. The effect of this efficiency is not that Zero-K players click 10x less, but rather that they can be 10x more expressive with their unit control. This capacity feeds back into the rest of the game. We can expect more expressiveness from players, so the the game can be that much more nuanced as a result. Basically, Zero-K made surface-level micro easier and found more interesting micro underneath.
We need a more precise definition of UI to know exactly what is being fought. This involves drawing a distinction between the game world, the abilities units use to affect the world, and the UI itself.
The Blastwing rework continues, with most of the feedback suggesting it dealt too much damage, although a few edge cases in its behaviour have also been fixed. There is also an overdue Corsair buff and tweaks to make Disco Rave Party less fiddly. The big feature is a command to split large autohosts with many waiting players, so everyone gets a game, and the big graphics update is darker, faster, and better looking "terrain" beyond the edge of the map.
"Buff strengths, nerf weaknesses." - Quantum, Lead Developer of Complete Annihilation (CA)
Quantum devised the rule above early in CA history, perhaps as early as 2007, and it is still at the core of Zero-K. I don't know exactly when, or even if, Quantum said the rule in its eventual form (I wasn't there right at the beginning). However I do know that Quantum was the lead developer (he responded to the ticket "Your lead developer is a nub" on the issue tracker). In any case, the rule is responsible for keeping the 100 or so units in Zero-K unique, useful, and interesting.
Quant's Rule is about game balance, and vitally it is an active rule rather than an abstract principle. It tells us what to do when a unit is to be made weaker (nerfed) or made stronger (buffed). It was devised to guard against the concern that a balanced game is a boring game. The validity of this concern is up for debate, but if you play enough RTS you will see both extremes. At one end there are games with many exciting tools which barely feature in viable strategies. At the other end there are games that seem balanced, but at the expense of any interesting unit variation.
Original Total Annihilation was towards the "zany but imbalanced" side of things, with tonnes of units, but few that turned out the be viable. Many games were like this in the late 90s. You might say that viability is only a concern for hardcore competitive players, but we think it matters for anyone who really wants to puzzle out the game. In other words, to strategise. No matter the game mode, it is a bit disappointing when the unit roster effectively shrinks as your understanding grows. Some TA mods tried to address this with balance overhauls, and Complete Annihilation comes from that lineage, so the question of how to balance many units was front of mind.
Take Lance as an example of Quant's Rule in action. Earlier this year it was identified as a bit too powerful, so needed a nerf. As per Quant's Rule, its weakest aspects were the first candidates for potential changes. We kept those candidates in mind while discussing and reviewing replays, watching for ways to make them worse that would affect its overall performance, without making it feel terrible to use. Other attributes may be nerfed, but not its main strengths, so Lance was extremely unlikely to lose any of its impressive burst damage. In the end Lance was mainly nerfed on cost and reload time, which are both significant weaknesses, with minor nerfs to range and speed.
Stepping back, what even is a strength or a weakness? It seems like a silly question, but consider that units are made of numbers, and no number is objectively "weak". The answer is that strength is relative, based on comparisons to other units, but here is where it gets interesting. Units can be compared within roles, across roles, across factories, or even across the entire game. There is flexibility here, and it is where unit roles and factory identity are taken into account. Were the minor range and speed nerfs for Lance appropriate? On one hand, artillery is slow and and long ranged. But on the other hand, Hovercraft are fast and Lance has below average range for heavy artillery.
Which attributes are sacrosanct varies by unit and role. Consider Bandit, the Shieldbot raider. As a raider, Bandit is one of the fastest units in the game, but within raiders, Bandit is one of the slowest. The interplay of speed between raiders is vital, which causes Bandit's speed to be judged as a weakness. This means Bandit is very unlikely to receive a speed buff, just like how Lance is not going to have its damaged nerfed. As an aside, Bandit is not going to have a speed nerf either due to another rule dating back to CA.
[quote]Bandit Rule: Raider speed is at least 90 elmos/second.[/quote]
There is a subtlety to Quant's Rule that highlights the difference between balance and design. A designer is like an architect, with a high level idea of how units should feel and interact. The balancer is like a builder, implementing the details of a design, finding numbers that make units behave as they should. The same people often do both jobs, but the mindsets are different. Quant's Rule is a guide for those deep in the weeds of balance, where things are made much simpler by not having to simultaneously think like a full designer.
As a design principal, Quant's Rule is about giving units space to be unique. Consider the design space of units, like the plot above, but with many more dimensions for things like health and cost, as well as for fuzzier attributes like firing pattern. Then realise that this is not a static space, for if Ronin were given more range then it would shift to the right. Balance patches bestow the space with concepts of "movement" and "force". Quant's Rule is a force that pushes units away from each other, since buffing strengths and nerfing weaknesses stretches units out along each dimension. This naturally expands the space, makes units more distinct. A more conservative, or directionless, approach to balance risks units gradually drifting towards each other into a black hole of banality. Quantum presumably saw such a drift towards the average as the default, and created a rule to counteract it.
As good as it might sound, remember that Quant's Rule is primarily about balance. You can interpret it as a design goal, but it works best when telling balancers which types of changes to prioritise, and which are off-limits. But sometimes, balance fails. This recently happened to Blastwing, which previously dealt most of its damage via ground fire, but just lost its ground fire and gained significant direct damage. This change would seem to violate Quant's Rule, if not for the fact it is a design change rather than a balance change. The change was a result of the balancer going back the designer, saying "Quant's Rule has been tried for years and Blastwing isn't working", and asking for a new design. It was then time to don designer mindset and teleport Blastwing to a new point in design space, because the balancer should not be expected to make long treks to more fertile designs by themselves. Almost all the units are in a good spot by now though, so these events are pretty rare.
It would be hard to claim that Quant's Rule is entirely unique to Zero-K. The formulation and centrality, perhaps, but similar ideas seem to have made it into other schools of game design. From time to time I come across mechanics or patch notes that have a definite flavour of Quant's Rule, and the games that do this regularly tend to be my favourites. It is also less demanding than I have made it out to be. In the end, it is a guide, and it is invoked less frequently as we improve at holding the balance and design mindsets simultaneously. It is still great for discussion between developers though, but only if we explain it to newcomers. Good thing there is now a 1000 word post on the subject.
This update adds fancy new flame effects, a Blastwing rework (it still sets things on fire) and a thermite bomb for Odin. It also has balance changes ranging from Metal Extractor to Disco Rave Party, and a bunch of features, fixes, and performance improvements from numerous contributors.
This is the first in a new series of design blogs about Zero-K. We aim to release one every two weeks, when there isn't a patch, and by 'we' I mean me, GoogleFrog (others might contribute later). Expect posts about Zero-K development, design, history, and whatever else comes to mind.
To start us off, why is Zero-K even called Zero-K? It started around 2009 when a mod called Complete Annihilation wanted to throw off the shadow of being "just another alphabet soup mod", the term for games on the Spring Engine that traces themselves back to Total Annihilation. The mod split off from Balanced Annihilation a few years earlier, which forked off Absolute Annihilation, which was based on Uberhack and subsequently ported to Spring. For those of you aware of BAR (Beyond All Reason), it is based on Balanced Annihilation and had the working name BA Reloaded.
Zero-K was picked after much discussion, deliberation, argument, and finally, a vote. We had a site at the time, called CaGov, where developers could create polls and vote on things. We voted on things from whether taking damage should decloak (it does) and whether all bombers should be replaced with laser bombers (only Thunderbird was replaced). The simple version of the Zero-K name is that it won, beating a few other proposals, the only other of which I can remember is Robocracy.
There were a few arguments in favour of Zero-K. The more narratively inclined like the idea of robots fighting pointlessly over the scraps of a universe approaching heat death, or zero degrees kevin. That paid off in the lore for the campaign over a decade later (any more would be spoilers). We also coveted 0 A.D.'s alphabetically superior position on various lists, and thought we could force the shortening 0K. That did not work out.
Most of all, we wanted a unique name that would stand out and win at page rank, as search was all the rage in the late 2000s. We at least won that battle, defeating a book about cryogenics and a brand of dangerously cold single-use towelettes. The towelette company even sent us a sample after a Twitter interaction; the book still makes it to the image search preview in DuckDuckGo.
We may have been a bit too clever with the name. Zero-K stepped out of the shadow of Total Annihilation only a few years before Planetary Annihilation embraced it. Nostalgia aside, the latter is still a more descriptive name, and such names are common for strategy games. Think of all the names to do with armies or conquest. War, command, force, settle, empire, company, division, legion... the list goes on. Generic names indicate genre, which we gave up in favour of being unique. Maybe that sums up Zero-K.
Arguably the best aspect of the name revealed itself years after the decision was made - puns about low temperature - which far outweighs any downside. Zero-K: Nothing is cooler.
Zero-K began its life about 15 years ago as a mod built by volunteers, and development has continued in much the same way way, except now as a full game. Admittedly we have slowed down a bit in recent years, in part due to the greater focus on polish, but also because we've already combined the best bits of RTS into a cohesive whole. Including some things that seem like gimmicks elsewhere, but really just need several years of refinement to get right. Massive online battles and tight 1v1? Done. Campaign, AI, skirmish? Done. Spider-tanks, jumpjets, ships, planes and hovercraft? Done. Terraforming, cloaking, and 3D terrain that really matters? Done. Giant robots and superweapons? Done three times over. And there isn't much to do for the controls either, as we're so far ahead of everything else already. That's just what happens when people play for over a decade and improve what they notice needs improving. Not that there isn't more to do. We release 3-4 major updates a year and don't plan on stopping. Just this month we added two new bombers and tweaked some other aircraft that needed a bit of love. In the last few months we improved the controls for Lobsters and notifications for tacnukes, in Don't Nuke Your Allies. As well as all the extra modding support of the past few years, so things can go full circle. So there is plenty to do, and we plan to do it for as long as we keep playing. [previewyoutube=pHQkctGTm_A;full][/previewyoutube]
This update introduces two new bombers to fill out the aircraft roster. One is a bit like a light Likho, and another is like a heavy Raven, but there is a lot more to each. Other planes have tweaks and buffs, such as an area reveal ability for Sparrow, and a heavier Phoenix. Some gunships even got in on the action, with the most notable being a sizeable buff for Krow.
Other balance changes include a bit more health for light assaults, and better spinning for Disco Rave Party. In terms of features, bombers are well-served here as well, with selection icons for whether a bomber needs ammo, as well as smoother landing paths.
There are a few extra features for modding, such as scaling and tinting, which were technically in the previous hotfix. The campaign has the new bombers, a few features, and a new Records page which displays and aggregates your best stats for each mission. How fast can the campaign be completed, and with how few units lost?
Lobsters have been taught to not fire when it would be redundant, making Lobster balls much easier to manage. Overkill prevention in general has a tweak, and some APIs were extended to make modding easier. The Artefact Control game mode which saw some testing about a month ago is now live. In terms of balance, Redback has a bit of a nerf and some of the least used units - Skuttle, Phoenix and Emissary - have small buffs.
Get ready for the next Zero-K tournament, a 1v1 tournament where dozens of commanders will fight for dozens of dollars. The format is bo1 double elimination but other details have not been fully finalised. Sign up with a comment on the thread and send any questions to Kingstad. If you are more interested in watching, then games can be spectated through the lobby or you can watch one of the commentary streams linked on Discord.
Date: July 8th [Saturday] 2023
Time: (3 PM EDT | 9 PM CET | 1900 UTC)
Countdown to Tournament
Forum Thread
A commentary stream
There was also a minor update this weekend. It is mostly fixes for the previous update, but there are also a few features and balance changes.
The 3v3 tournament finished earlier today with an excellent turnout of 19 teams. The results and videos will be posted in this thread in the coming days. The upshot for this patch is that we are free to make a few balance changes. The aim of these changes is to work on a few of the more maligned units, while nerfing some of the most prevalent strategies. This mostly means buffs for Gunships and nerfs for Lance and cloaked Snitch.
The update also has some exciting features. A big one for team games is that allied nukes and missiles now automatically show where they were aimed, which should halve the number of people that panic when a nuke is fired. Another is the ability to watch any game while waiting for a different one to start without missing out on the chat, as chat from non-started lobbies is now sent ingame. Superintendent has also added a few more tracks to his alternate soundtrack.
This is mostly a fixes and tweaks update as the 3v3 tournament is only in two weeks. Everyone is welcome as each team must have a new player. Sign up in this thread if you are interested.
There are two big balance changes: nerfs for superweapons and shields being disabled underwater. Aspis can now float, to give it some use in sea, and floating has been improved in general. The superweapon changes were motivated by some of the epic games on the large maps added in April. Starlight is much more expensive as it is the best at ending games, but games were ending a bit too early. Disco Rave Party and Zenith were differentiated by leaning into the slow aim and rate of DRP compared to the instant response of Zenith. Thanks for all the feedback in the thread on the forums.
The most notable fixes are for the rare Zenith gathering bug and the Fencer/Bulkhead transition issue. There are also many backend improvements to scripting and the engine (which was updated earlier in the week), some of which are relevant to modding and listed in a section below. More Chinese translations have been contributed and a few campaign missions have been tweaked based on feedback.
Brace yourselves for the exhilarating Zero-K 3v3 Tournament, where battle-hardened veterans and fresh faces unite to claim victory! Gather your forces, for this is your chance to prove your mettle on the grandest stage of strategic warfare.
Date: June 17th [Saturday]
Time: Sunday, 18 June 2023 03:00 (1 PM EST | 7 PM CET | 1700 UTC)
Forum Thread
Challonge Registration
Countdown to Tournament
For this update we looked through the new maps from the wider Spring (now Recoil) community and featured a bunch of them. Some will play better than others, but that's what feedback is for! The update also adds translations for Chinese and Italian, and includes an engine update that was benchmarked to improve framerate by 9%. In terms of balance there are nerfs for Reaver and Lance and a cost reduction for Krow. The unit reply sounds have also been rebalanced.
This update introduces Zeno, the 5th missile for the Missile Silo, which homes onto a target, hits it for a massive dose of slow damage, and then leaves lingering slow in the surrounding area. Another major change is an increase in general unit visibility via a few nerfs for area cloakers. As usual, there are a few months of fixes, features and, contrary to the title, performance improvements.
This patch has an engine update, some superweapon tweaks, and extra gridding. Strider Hub now requires 50 grid energy. This is targeted at rushes in big team games, as every other use of Strider Hub should not have trouble finding 50 energy. The engine update changes how graphics states are handled over multiple games, which should improve load times and performance.
Bertha now requires a grid connection and is a bit better at knocking down walls. Grid for Bertha has been frequently requested for a long time, probably for thematic reasons, as finding 50 energy seems easy for most Berthas. Zenith had a large buff to knocking down walls just over a year ago, which turned out to be too much, so is slightly worse at it. Starlight aims slightly slower to give defenders a little more time.
Commanders are more diverse and generally a bit cheaper to morph. On top of this, each chassis has more effective versions of modules that align with the speciality of the chassis. Weapon and upgrade costs have been reworked at level 4 to make more sense.
Modules were tweaked to buff most types of commander, with nerfs for builds that stack range and speed, as those were a bit too strong. Repeat modules are now limited to 5 rather than 8, and many have chassis-specific buffs. Range and speed modules are more expensive, eating into the cheaper morph cost at level 4, while other modules have the same or greater effectiveness.
Campaign commanders can still stack 8 repeat modules, and gain the benefit of most speciality buffs, because that just seems like fun. There are some non-commander changes too, such as nerfs for Cloakbots, buffs for Spider, and greater restrictions on gunships leaving the map.
We have been testing an engine update since Wednesday, and this time it seems stable enough to adopt. The update corresponds to about ten months of work and mostly involves the graphics backend. As a result, performance has improved for many people and some AMD graphics issues have been fixed, although in testing we found the current beta graphics drivers to be unreliable. Be sure to ask on the forums or Discord if you encounter issues. The engine also has a few new features, with the biggest being the ability to shrink the space factories try to clear of allied units. The update also has some new music tracks from Superintendent and the commander morph rate nerf has been reduced.
Dirtbag cannot go to space, commanders deal a little less damage, and economy coordination is smoother. New music tracks by the player Superintendent are now available ingame in the track list under Settings/Audio. Conjurer cloak has the largest nerfs since its inception, core cloakbots have small nerfs, and the assault vehicles are tankier. Paladin is a little harder to manoeuvre and Krow has a lot more damage, but with Krow being niche for so long it is hard to say how the balance will shake out.
The Rogue nerfs continue, Redback can now beat a Reaver, and Firewalker has its first change in years. Phantom slows to 66% speed to reload its gun (maybe the auto-loader broke?) to make them a bit easier to find, while Blitz and Pyro are a bit tougher in an attempt to bring them into the raider game. The skin swap 'easter egg' is gone, some animations are improved and some GC fiddling resulted in a performance improvement. A few new or remade maps now have start boxes, and the matchmaker map pool has been updated.
This update has nerfs to address the abundance of Lance in teamgames and Rogue in 1v1. It also has small nerfs for Bandit and Dirtbag, buffs for some underused units, and less effective area cloaking in combat. The release is a little early to avoid being too close to the upcoming 3v3 tournament (18:00 UTC, Saturday 9th July, sign up here), so some features didn't make it. We hope to have a fixes and features patch some time in July or August, which would ideally include an engine update, Adv. Options for mods, and some dodge AI.
This release has a few fixes and improvements, and brings us up to date with around four months of engine work. We are keeping pace with the engine, which means each update is relatively small. This one fixes a few uncommon bugs and might improve performance slightly.
In this update we work through the backlog of graphics and performance improvements made possible by the engine update three months ago. Outlines and reclaim highlighting should run (and look) better, although exact results will depend on hardware. Compatibility fallbacks exist for players with particularly old hardware. Many other bits of code have also been tweaked for performance.
Other fixes and features have been worked on in the meantime, the most notable being formation ranks. It can be enabled through the ingame menu, and it is a bit rough around the edges, so send feedback.
In terms of balance, the 1v1 oriented changes are minimal as the pick- and win-rate stats are looking quite good. Shields have a nerf and Hover have a buff, and both sets of changes are partial reverts of buffs and nerfs from 2021. For dense teamgames, Impaler projectiles are slightly slower to cut down on their effectiveness against mobile units.
Most people report significantly better framerate with the engine update, but there are still a few lingering bugs. This update addresses many of them and re-adds commander skins.
There was an engine update for Zero-K this weekend. There are a few lingering bugs as we don't have the coverage in focused testing, which are being patched as we go. The main feature is improved performance, especially for newer graphics cards, and the general promise of more performance once we use more of the capabilities of the engine. Being up-to-date with the engine is also of great benefit to other parts of development. Unfortunately, while we're trying to support as much as we can, graphics cards older than about a decade, or old laptops with integrated graphics, may run into trouble. Players with graphics bugs and performance issues should first try updating their graphics drivers, and then ask for help in #support on the server or on Discord.
This is a balance patch on three fronts. On the ground, hovercraft have worse movement and nerfs to their most generic units, while spiders have cheaper early game units. In the air, light gunships receive some much needed attention and Raven no longer dives. Superweapons now require an energy grid, are much more vulnerable to being stunned, and Zenith swapped its cost with Disco Rave Party again. Other features include more options for line formations, better unit tracking and first person control, APM stats at the end of the game, and some fixes to do with saving campaign missions.
This is a small update with some AI fixes, just in time to take a break over the holidays to wander through the campaign. Perhaps even invite some friends.
The previous patch had a few changes to bring Hovercraft more into the game. It was so successful that we felt the need to make this small followup update. The reduction in while turning seemed to particularly boost Bolas as it likes to dance around at max range, so it has lost some range to compensate. Minimum turn speed was also walked back from 100% to 85% for all hovercraft (other vehicles still turn at 60% speed). Bolas is less adept at poking other raiders.
The November patch is a large one, with four new maps added to the matchmaker pool, numerous balance tweaks, and many other improvements and fixes.
The most notable balance changes are:
[previewyoutube=9ZQzgLy4Pjo;full][/previewyoutube] Here is the Zero-K news for October.
We've finally solved a minor bug that caused anti-air missiles to sometimes penetrate aircraft. While quite rare, it was causing Vandal to make unfortunate mistakes against Thunderbird. Besides the fix, there are a few buffs for Hover and Shieldbots, and nerfs for Rover and Amphbots. Badger is of particular concern as it needs adjusting after its unit AI improvement. We are also experimenting with extra initial resources, with the goal being to give players more freedom in the early game.
This update solves a few recent issues with ground targeting. The easy fix was for Duck, which was previously able to fire torpedoes out of the sea and onto land. The trickier changes solve the unfairness of ground targeting widgets by making the interface more powerful in ways relevant to humans, while reducing its power for widgets.
Other balance changes include Felon tweaks and slower transport speed for Jack. The AI has been updated to fix a bug, and all the configs are now based on the previous bleeding edge test version.
Back in February we reduced the starting resources and commander income, with the aim of extending the early game slightly. After six months of data and feedback we suspect balance suffered as a result, so the income change has been reverted. We also addressed another ongoing balance project - Shieldbots - with a few buffs.
This patch has the usual smattering of fixes and UI improvements, with the most notable being improvements to Area Mex and fixes for the AI. Area Mex now works pregame and has a terraforming mode. To counteract the terraforming mode a few units have been given wall-defeating behaviours. The AI fix is more of an update that started as a fix, and includes tweaks to the difficulty levels. Feedback about the difficulty progression would be appreciated.
This is a small update to the matchmaker and planet Kirdipan - the terraform mission. Kirdipan is a bit fairer with tweaks such as clear Pylon lines, Owls to scout the map, and no underwater units. The 1v1 matchmaker now looks like a single queue with two option for a wider search range (handicap and ranked). The 'Match Available' status should reliably report the game type, with '1v1' corresponding to a narrow search range game, and '1v1 Handicap'/'1v1 Wide' corresponding to the two options. Both can be ticked to accept both types of game. The standard search range has also been increased from 330 to 345.
Income multipliers can now be set for each team under Options to serve as a form of handicap. This is a commonly requested feature for coop games, but to take it a step further we're trying out a new matchmaking queue.
The '1v1' queue now generates even matches up to a certain skill gap, beyond which it creates unranked games with an income boost for the lower-ranked side. To stick to even games use the new '1v1 Narrow' queue, and for the best queue times use both at once. The '1v1' queue allows a slightly wider skill gap than previously, while '1v1 Narrow' allows a slightly narrower gap.
Update: There is now a '1v1 Wide' queue with the same match range as '1v1', but without the handicap.
Everything should go just a bit smoother with this update. The AFK detector now has a countdown and disables construction, bringing harmony to teams. A number of unruly fonts and boxes have been brought into line, bringing harmony to the interface. The normal difficulty AI has chilled out. Singleplayer and multiplayer can be as one with skirmish and campaign autosaves during matchmaking. Most harmoniously, maps can now (effectively) be nice smooth circles rather than pointy squares.
This is the first big balance patch of the year, just in time for the second tournament series of the year. Shieldbots are better early and have more tools in their arsenal, but the standard shieldball is less powerful. Hover and Tank have buffs for improved unit variety and to bring them up to the power level of Rover. Spider has a few small tweaks to make them less reliant on Venom.
The big feature in this update is bait prevention. Units and turrets, such as Artemis, should be significantly better now that they can more precisely obey your wishes. Felon is a beneficiary as it can be told to avoid armoured units, but it may be kept in check by another new behaviour: Most units now fire at the edge of small shields if there is nothing else in range.
There are few actual balance changes to better observe the ramification of the latest advances in unit command. Apart from that there are a few features and fixes, such as the ability to click on names in the endgame stats to highlight a line, and improved map filtering.
This is a balance patch, with changes to raiders, artillery, turrets, cloaking and drones. Each of the medium turrets has been nerfed, with a large nerf for Stinger, a fancy nerf for Stardust, and small nerfs for Faraday and Gauss. Most of the raiders with high burst damage have less range, as they may have been buffed a bit too much by the aiming improvements of last year. Some of the more oppressive artillery is a little worse, area cloaking is harder to use in general combat, and commander drones should be less annoying to fight.
Other changes include an excellent new walk animation for Outlaw and some behaviour fixes for Attack-Move.
Tanks have been oppressive lately, with their ability to exert a lot of early pressure. Bakuhatsu suggested a slower Kodachi and organised some testing, which went fairly well, so we're going with this large yet simple change. In other news, playing new mods is now as simple as a single button on the mod page, Dirtbag is the guinea pig for a new animation system, bombers are a bit easier to control, and various lingering bugs have been fixed.
Here are a few fixes to round out the year. Seawolf behaves better around coasts, Metal Extractor placement is smoother, and a lingering graphics bug has been resolved. This is probably the last patch of the year so I'd like to thank the community for helping each other through an otherwise difficult year.
[ 6078 ]
[ 2031 ]
[ 4226 ]