1. Zero-K
  2. News

Zero-K News

Zero-K v1.11.12.0 - Fire is Hot


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.

Hot Reworks


Blastwing always had a problem with chain exploding. The previous solution was low direct damage followed by high damage over time. This felt weak and niche. The new solution is to "safely" eject its bomb when it dies, rather than explode immediately.
  • Cost 45 -> 55
  • Increased deceleration rate by 60%
  • Drops its bomb on death rather than exploding immediately.
  • Direct damage 40 -> 320
  • Explosion radius 144 -> 128
  • Maximum unit-on-fire duration 1s -> 24s
  • No longer creates area fire
Odin has its Disintegrator Bomb replaced with a Thermite Bomb. The disintegrator was prone to converting immobilisation abilities into delayed 1-hit kills, with too little counterplay. The new bomb deals damage over time in a small area, so a commander can be saved by preventing the second Placeholder shot, or with a nudge it if it is stunned. Thermite also hits shields, fully draining a few before it is blocked.
  • Deals damage to everything in a small area around it over 30s.
  • Damage ramps up over time, from 0 damage per second to 1000.
  • Typical damage 8k -> 14k
  • Its trajectory is blocked by obstacles, but continues on when they are "removed".
Balance


Claymore has a buff to fix the occasional distance-closing issue in sea,
  • Seaborne depthcharge range 280 -> 300
Lobster is slightly less nimble.
  • Relob time 12s -> 14s
Gremlin follows Toad by gaining enough vision to see the ends of its lasers.
  • Sight range 660 -> 760
Jugglenaut and Detriment now decloak when they land, since they deal damage.
  • Detriment already decloaked on launch, so this only really changes Jugglenaut.
Magpie hits more trick shots.
  • Missile turn rate increased by 8.7%
Metal Extractor loses a bit of health so Blastwing can deal less damage.
  • Health 600 -> 560
Picket is a bit cheaper to save us from Blastwing.
  • Cost 100 -> 95
Disco Rave Party switches to comfortably outranging Zenith, but costs a bit more, and is much less accurate in high trajectory mode.
  • Cost 42k -> 45k
  • Range 7000 -> 9600 (Zenith is 8800)
  • Projectile gravity reduced by 44%.
  • Low trajectory spread at max range: Two Inferno diameters.
  • High trajectory spread: Two Trinity diameters.
Features


  • Units that are on fire now look more severely on fire depending on the remaining duration of the fire.
  • Added a fancy animated flame effect (thanks Anarchid and engine devs) which has been applied to all flamethrower and napalm weapon effects.
  • Antinuke construction is partially paid back from team overdrive, in the same way as the existing energy construction system. The first antinuke constructed by a team gives the builders 50% of its cost back over the next several minutes, with the proportion paid back dropping by 10% per previous antinuke.
  • Moved the settings from "Settings/HUD Panels/Spectator Panels" and "Settings/Interface/Spectating" to "Settings/Spectating".
  • Added an automatic action finding camera for replays and live spectating (thanks fiendicus_prime). Enable it under "Settings/Spectating/Action Tracking Camera".
  • Added a widget to display player names over a unit on screen (thanks fiendicus_prime). Replaces commander nametags, but has a commander-only option. Enable under "Settings/Interface/Player Name Tags".
  • The units that will be thrown by selected Lobsters are highlighted when the command is selected (thanks dyth68). Can be configured under "Settings/Interface/Falling Units/Lobster".
  • Fire special weapon now shows range rings for all selected units, like Force Fire (thanks dyth68).
  • Commanders spawned to the same location now spawn next to each other instead (thanks Shaman).
  • Added a small drag threshold for terraforming to make Ctrl+Click surrounding buildings easier.
  • Added an Alt modifier to the selected units panel to select/deselect half of unit group.
  • Added the secret Ctrl modifier to the selected units panel tooltip.
  • Added more descriptive short descriptions for missiles built in the Missile Silo.
  • Changed the default self destruct hotkey from Ctrl+D to Ctrl+K. Only affects new installs.
Modding


  • The new fire effects replace the existing cegs "napalmfireball_200" and "flamer". Mods that use these cegs as a base should get the new fire effects. Use "flamer_cartoon" for old style flamethrower fire.
  • Exposed weaponDefID, projectileID, attackerID, attackerDefID, attackerTeam to widget:UnitDamaged. Spectators see everything, while players only see attacker stats if the attacker is visible, and don't get weaponDefID or projectileID.
  • Removed the special techniques required to give weapons zero damage.
  • GG.CheckStartBox returns true if startboxes are disabled. Set the 4th argument to true to read raw boxes.
  • Added "/luarules battle " to spawn preset battles. The system could be extended to ease mass preset unit spawning.
Blastwing Fixes


  • Blastwings told to fly quickly after landing are no longer stuck in their landing animation.
  • Blastwings now have collision, like other gunships, to prevent them stacking on one location.
  • Blastwing no longer cloaks mid air if it happens to come to a complete halt.
  • Blastwings are now possible to use with area cloakers, instead of constantly cloaking and recloaking under them for no reason.
  • Blastwings with a Force Fire order on the ground now explode, rather than just hang around.
  • Blastwings told to attack a unit now consistently approach the unit and explode, rather than sometimes hovering next to it.
  • Blastwings told to attack a moving unit now update their heading more than once a second, making them able to fly at and hit notoriously mobile targets like Lance.
Other Fixes


  • Starlight only deforms the map every 5th frame. It looks a little weird, but is better than people lagging out while we wait for an engine fix for the deformation performance issue.
  • Fixed Paladin causing an unreasonable performance hit (thanks Porkch0p).
  • More damage dealt by dead units, such as bomb damage, thermite and fire, shows up in the endgame graphs.
  • Fixed spectators seeing the player-facing, hax free, unit damaged/killed midgame graphs, rather than the real ones.
  • Fixed airpad exclusion orders with an even number of aircraft selected (thanks Helwor).
  • Fixed giant Desolator death clone collision volume (thanks dyth68).
  • Fixed bombers sometimes failing to automatically return to a pad when idle, especially after a Stop command.
  • Fixed personal commander shield not having any regeneration.
  • Flamethrower visuals no longer penetrate shields.
  • Fixed the little generator ball effect on area shield generators not disappearing off when the unit is stunned.
  • Fixed santa hat lighting.
  • Fixed Storage XP.
  • Fixed lighting on Small Divide Remake and LLTA Complex.
  • Fixed passworded games of friends that exist when logging in sometimes not showing up in the battle list.
  • Possibly fixed the occasional ghost or missing player in battle lobbies, often after returning from a game.

Cold Take #1 - Why Zero-K?

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.

Edit: Longtime developer Sprung remembers "Ecce Machina" and the related name "why oh why is Deus Ex already taken". MidKnight remember "Open Conflict", because it's open source.

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 kelvin. 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.

Index of Cold Takes

Zero-K - Made for players, by players

Zero-K began its life about 15 years ago as a mod built by volunteers, and development has continued in much the same 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][/previewyoutube]

Zero-K v1.11.11.1 - Odin's Magpies


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?

New Bombers


Magpie is a light nimble bomber armed with a pair of missiles. It deals less damage than Raven, but makes up for it with speed, precision, and the ability to shoot from the edge of AA coverage.
  • Cost 220
  • Health 900
  • Speed 252 (between Raven and Likho)
  • Rearm time 20s
  • Range 550
  • Damage 180 x 2
  • Can hit small raiders most of the time, and most aircraft.
Odin is a heavily armoured rocket zeppelin that can fire a slow moving disintegrator bomb or a cluster of temporary shields.
  • Cost 1500
  • Health 5200
  • Speed 185 (between Raptor and most gunships)
  • Rearm time 35s
  • Bomb range 200
  • Bomb damage, it's a disintegrator (5-shots Detriment)
  • The bomb is very slow, even Detriment can dodge it.
  • Special weapon fires seven shields at 550 range.
  • Each shield has 3400 charge and a radius of 200.
  • Shields decay at 40 charge/s, expire at zero charge, and do not link.


Aircraft Changes


Sparrow can now boost, and reveals and decloaks everything in an area when it dies.
  • Boosts by 5x for 3 seconds.
  • Destroys itself after boost.
  • Reveals an area of radius 400 for 12 seconds when it dies.
  • Revealed area scales up during boost, to a maximum of 640.
Phoenix is heavier and deals more damage over a longer run.
  • Cost 360 -> 460
  • Health 1060 -> 1450 (90 more than if just scaling by cost)
  • Reduced turn rate slightly
  • Rearm time 5s -> 8s
  • Drops 15 -> 18 bombs over 0.93 -> 1.7 seconds
  • Area of Effect 216 -> 320
  • Damage per bomb 25 -> 40
  • Burn time 10s -> 12s
Krow manoeuvrers a bit better and fires beam lasers with more damage.
  • Improved brake rate by 25%.
  • Pew pew lasers replaced with burst beam lasers.
  • Damage increased by 22%
Raptor is more manoeuvrable and slightly more deadly.
  • Increased turn rate while firing, to counteract the effect of slowing down.
  • Firing cone angle 90 degrees -> 100 degrees
  • Damage increased by 4.2%
Locust is a tiny bit better as raiding, as a great Locust is scary.
  • Speed 207 -> 212
  • DPS increased by 2.5%
Thunderbird is slightly healthier.
  • Health 1120 -> 1200


Balance Changes


Bolas has 4.5% more DPS and can 1-shot Flea.
  • Reload 0.366 -> 0.433
  • Damage 34 -> 42
Ravager is tankier.
  • Health 2000 -> 2200
Knight is a bit tankier.
  • Health 2400 -> 2500
Hermit is tankier and faster.
  • Health 1500 -> 1550
  • Speed 51 -> 54
Skuttle can survive a single Jack poke.
  • Health 250 -> 380
Zephyr is also tankier, and now has missiles.
  • Health 1900 -> 2200
  • Replaced its front laser turret with missiles.
  • Missile damage 72 x 2
  • Reload time 1.6 seconds
  • Range 1000 (same as lasers)
  • The missiles have 30% less DPS, but fire in a burst.
Disco Rave Party has an interpolation of its May spin rate nerfs.
  • Aim speed 4 -> 2.5 -> 3 degrees/s.
  • Spin up time 60 -> 120 -> 90 seconds.
  • Spin drop while turning is unchanged, but less spin is lost for any given turn due to the increased turn rate.


Campaign
  • Magpie is unlocked on Fel Diacia (the Thunderbird mission) and Odin is unlocked on Bavhakya (the Likho mission). Anyone with these missions complete will have their units unlocked.
  • Added a Records tab to the Profile menu on the campaign screen. This screen can sort and display your victories with least units lost, in the shortest time, with bonus objectives and difficulties. Unfortunately the data is not retroactive.
  • Removed a few Lucifers from easier difficulties on Onsally (the Phoenix mission).
  • Worked around the Dominatrix build options bug for the Rover Assembly on Ganong (the Dominatrix mission).
  • Clarified Lalata main objective text (the Jugglenaut mission).


Features
  • Added Units Lost to endgame graphs.
  • Unit pictures for bombers now have an icon showing whether it is ready to fire.
  • Aircraft now smoothly glide and stop when landing on airpads. This is technically a nerf as they take slightly longer to land.
  • Improved shotgun visuals, with minor balance implications.
  • Grizzly now aims smoothly and holds its gun steady as it fires.
  • Tweaked the automatic handicap mode to give lower handicaps for ratings above 2000.
  • Moved Raptor to the AA slot (D) of the Airplane Plant and Sparrow to secondary scout/raider (S).
  • Taught the opponent AI about Magpie.


Modding
  • Units can now be tinted, rescaled and made glowing via the customparams model_tint ("R G B"), model_glow ("R G B A"), and model_rescale. Colour values are from 0 to 1.
  • Free units (0 metal and energy cost) no longer need to explicitly specify a non-zero buildtime (previous release).
  • Added a function to effects/napalm for generating generic fireballs ala Inferno.
  • Air pads now call ReammoComplete, if it is a units script, when bombers are rearmed.
  • Added command AIR_MANUALFIRE for aircraft, since they cannot use the in-engine type.


Fixes
  • Fixed Tremor wheels not spinning.
  • Gravity guns push and pull a bit more consistently.
  • Jack can no longer pretend to be a missile in enemy Missile Silos.
  • Slow damage makes shields charge slower again (it broke at some point)
  • Fixed bombers sometimes seeming to ignore a move command.
  • Attack Move on bombers is now is now removed after they shoot, unless the bomber is set to repeat. Previously this only worked for some bombers.
  • Bombers are now much better at landing on Reef. Much better. Horrific things could happen before.
  • Fix sun on Mercurial and Rogues River.

Zero-K v1.11.8.1 - Lobster Brained


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.

Balance


Duck can now be dodged by a Glaive trying as hard as it can to run away.
  • Missile fuel time 2s -> 1.5s
Redback is worse at taking map control and assaulting defenses.
  • Cost 230 -> 240
  • Speed 1.85 -> 1.75
Skuttle can see enemies before they break its cloak.
  • Line of sight 280 -> 330
Emissary aims faster and no longer benefits from manually turning.
  • Body turn rate reduced 105 -> 84 degrees/second
  • Gun aim rate increased 40 -> 70 degrees/second
  • Resets its gun between shots (as much as possible) in case it has to move.
Phoenix moves faster and hits its target sooner.
  • Speed 8 -> 8.1
  • Projectile gravity 0.7 -> 0.72
Unit AI


Overkill prevention, the system that prevents ten Scalpels firing at a single Glaive, is now available for Lobster, and is suspended for units set to hold fire. It is controlled by a state toggle that is hidden by default because there is very little reason to touch it. The state toggle can be enabled under Settings/Interface/Commands, and per-unit defaults to be set in Settings/Unit Behaviour/Default States, or by holding Space and clicking on a unit, then pressing Edit Behaviour.

Lobster is smarter, no longer firing unless there is a visible valid target.
  • This prevents it from firing when it would do absolutely nothing, provided there are no invisible enemies nearby.
  • As a result, telling a tight clump of Lobsters to fire causes only two to shoot.
  • This behaviour can be configured with the hidden Overkill Prevention state.
  • Removed the Force Fire command by default. This can be configured via another hidden state toggle.
Overkill prevention is now suspended by default when units are set to Hold Fire.
  • Added the "Enable for Fire at Will" and "Enable for auto targeting" states. Previously it just had enabled/disabled.
  • Most units default to "Enable for Fire at Will". The theory being that if you set a unit to hold fire you care more about its target dying than about overkill.
  • Nothing defaults to "Enable for auto targeting", but it may be useful to try out.
Impaler now has an even stronger preference for targeting structures over units.

Interface
  • Added a minimum wind icon and number to the left column of the wind generator tooltip during placement (thanks Porkchop)
  • Cleaned up some inconsistent unit highlighting and selection. Units under interface panels cannot be clicked on by default, tooltips do not appear, and units are not highlighted.
  • Selecting through the panel at the bottom of the screen can be configured under Settings/HUD Panels/Selected Units Panel.
  • Drag selection can still terminate over a UI panel.
  • Add some translations for the commander selector.
  • Updated Global Build AI with some fixes and documentation (thanks esainane).
  • Added username team colour in chat and removed white outlines for dark names (thanks Birdulon)
  • Local widgets are no longer disabled for spectators on rooms with local widgets disabled.
  • Added Italian translations for the main menu (thanks fvasco)
Campaign
  • Tweaked campaign text and replaced some Artefacts with more suitable structures (thanks Thorneel)
Maps
  • Added boxes for Onyx Cauldron 2.0
  • Improved lighting on Skulduggery (thanks Shaman)
  • Improved water on Cull, Lost v2 and Lowland Crossing Revised v2.
  • Fixed an issue with void water with new shaders on some graphics cards.
Artefact Control

Added a control point game mode called Artefact Control under Experimental.
  • Several artefacts are spawned on each side of the map.
  • Each team controls half at the start of the game.
  • Artefacts have 11k health and heal at 100 hp/second.
  • Artefacts respawned with switched allegeance when destroyed.
  • If a team controlls all the artefacts, they win.
Modding


Changed some keys in unit def files to match the lua UnitDefs table. Mods with the old keys are still supported.
  • buildCostMetal -> metalCost
  • buildCostEnergy -> energyCost
  • energyUse -> energyUpkeep
  • metalUse -> metalUpkeep (vanilla ZK doesn't use this)
  • maxDamage -> health
  • maxVelocity -> speed

Other changes.
  • Unit defs no longer require unitname since it must match the table key, so it is redundant.
  • Unit defs are now also read from subfolders of 'units'.
  • Set undefined burst rates to 0 (rather than 0.1) as it can interfere with weapon modding.
  • The game exits to menu when unit defs fail to load, rather than crashing.
  • Added game-side GG.UnitModelRescale(unitID, scale) from Unit Level Ups.
  • Added backwards compatibility for Spring.GetUnitIsBeingBuilt.
  • Fixed backwards compatibility for Spring.GetPlayerRulesParams.
  • Added customparams.buggeroff_angle for factories, in radians.
  • Added customparams.metal_extractor_mult to support the creation of higher tier metal extractors.
  • Fixed modding away the Sniper reload move penalty breaking the script.
  • Cleaned up the build icon generator gadget.
  • Napalm effects now contain an example of sin (replaces taylor series).
  • Improved modded energy generator tooltips.
  • Mexes suport morphing.
Fixes
  • Fixed commshare sometimes preventing resign or causing a crash when the game ends.
  • War music no longer counts morph as violence.
  • Fixed missing vote resign button.
  • Marginal turret overshoot can no longer be circumvented with command insert.
  • Fixed a few build icons incorrectly implying that a floating structure is built underwater.
  • Fixed commander selector button image.
  • Fixed backwards 'motion blur' on ejected shells.
  • Fixed some large structure wreckages having much too large collision volumes.