V1.5.2.20
Recently we've been focused on polish and fixes. Here are three main aspects:
- Zero-K now has an official discord server and we've linked it to our main server chat. Join us here: https://discord.gg/suJfSc5.
- Steam testing is underway. We have a steam package and test keys to give to those willing to help us test it. Players can now log in to the site or lobby using their steam account instead of with a password.
- We've tightened the crash report loop which has yielded a high rate of engine bug fixes (as seen in the image).
Contents
Balance
Balance work has fallen by the wayside with our focus on polish. That said, we've been balancing for so long that little needs to be done. The Defender change is mostly madness and the other changes are fixes for consistency.
Defender:
- Reload time 11.5s → 12.5s.
The aim is to reduce their effectiveness as sustained fire support against Skirmishers or LLTs without impacting their burst damage against small raids or aircraft.
Puppy:
- Sight range 425 → 560 (same as Flea)
This makes Puppy a better scout.
Moderator:
- Sight range 660 → 473 (110% weapon range, like most units)
The large sight range was a holdover from when it had more range.
Goliath:
- Slowbeam range reduced by 10.
This is mainly a unit AI fix. Previously it could stop at max range without being able to fire its main gun.
Engine
Last month, Kloot and hokomoko (two engine developers) were active in fixing some performance issues introduced in the last 6 months. Much of the performance has been brought back and there are even improvements - such as faster loading for midgame rejoin. We've implemented automatic crash reporting (opt-in) and have entered a phase of tracking the development versions of the engine to report crashes and use the latest fixes. Thanks to Kloot these fixes come in quite rapidly.
Some performance offenders have also been tracked down and removed from Zero-K code and the game seems to run smoother as a result. Our near term plan is to continue following the engine version to fix the most common crashes. Once that is done we would like to call players to test the 64 bit windows builds of Spring as they seemed to yield further performance improvements.
AI
We now have deployment support for third party AIs. Circuit AI was added a few weeks ago and has since been updated from 0.9.11.b to 0.9.12 to fix a few crashes.
Interface
Most (all?) the extra windows that occur throughout the game now have the techpanel skin and fixed spacing. The new UI skin is now basically complete.
Command menu:
- Improved the logic of when grid hotkeys are available and when the menu switches back to the order tabs.
- Grid hotkeys now hide when not available (for example during structure placement position selection).
Fixes
Here are some fixes since Zero-K v1.5.2.5:
- Game end "Overwhelming advantage" reveals cloaked units
- Disabled click-and-hold structure terraform by default. It is scary upon discovery. Use 'B' to set structure height or enable click-and-hold in the settings.
- Translated the factory assist widget to a gadget. This fixes some cases where user orders on incomplete constructors would be overridden. Also fixes factory assist with commshare.
- Fixed some energy spending and distribution problems in overdrive. There were edge cases to do with team games that would make low storage players have too much of their energy income sent to overdrive.
- Fixed some errors upon loading saved games.
- Fixed some units failing to emit smoke when damaged.
- Fixed some cloaked units which were smoking when cloaked (cloaking is supposed to block smoking).
- Improved the reliability of reserve.
- Fixed an issue with resigning before the game starts (it's now blocked).
- Fixed settings search hanging Spring.
- Fixed large terraform performance hog with it's new smooth update rate by reducing the update rate when the terraform becomes large.
- Fixed Trident sometimes closing while airborne.
Debug data:
[SQLBagOStuff] MainObjectStash using store ReplicatedBagOStuff
[objectcache] MainWANObjectCache using store EmptyBagOStuff
IP: 52.14.115.102
Start request GET /mediawiki/index.php?oldid=8906&title=V1.5.2.20
HTTP HEADERS:
CONTENT-TYPE:
CONTENT-LENGTH: 0
USER-AGENT: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
HOST: zero-k.info
ACCEPT-ENCODING: gzip, br, zstd, deflate
ACCEPT: */*
CONNECTION: close[localisation] LocalisationCache: using store LCStoreDB
[session] SessionManager using store SqlBagOStuff
[DBReplication] Cannot use ChronologyProtector with EmptyBagOStuff
[DBReplication] Wikimedia\Rdbms\LBFactory::getChronologyProtector: request info {
"IPAddress": "52.14.115.102",
"UserAgent": "Mozilla\/5.0 AppleWebKit\/537.36 (KHTML, like Gecko; compatible; ClaudeBot\/1.0; +claudebot@anthropic.com)",
"ChronologyProtection": false,
"ChronologyPositionIndex": 0,
"ChronologyClientId": false
}[DBConnection] Wikimedia\Rdbms\LoadBalancer::lazyLoadReplicationPositions: executed chronology callback.
[DBConnection] Wikimedia\Rdbms\LoadBalancer::getLocalConnection: connected to database 0 at 'localhost'.
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[session] SessionBackend "87hv3cdkn44ecs6qj4ie9tghs1fairov" is unsaved, marking dirty in constructor
[session] SessionBackend "87hv3cdkn44ecs6qj4ie9tghs1fairov" save: dataDirty=1 metaDirty=1 forcePersist=0
[cookie] already deleted setcookie: "wikidb229_mw__session", "", "1713535196", "/", "", "", "1"
[cookie] already deleted setcookie: "wikidb229_mw_UserID", "", "1713535196", "/", "", "", "1"
[cookie] already deleted setcookie: "wikidb229_mw_Token", "", "1713535196", "/", "", "", "1"
[cookie] already deleted setcookie: "forceHTTPS", "", "1713535196", "/", "", "", "1"
[DBConnection] Wikimedia\Rdbms\LoadBalancer::getLocalConnection: connected to database 0 at 'localhost'.
Title::getRestrictionTypes: applicable restrictions to [[V1.5.2.20]] are {edit,move}
[ContentHandler] Created handler for wikitext: WikitextContentHandler
[MessageCache] MessageCache using store SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] SqlBagOStuff::lock failed due to timeout for wikidb229-mw_:messages:en.
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[MessageCache] MessageCache::load: Loading en... local cache is empty, global cache is expired/volatile, loading from database
ParserFactory: using preprocessor: Preprocessor_Hash
Unstubbing $wgLang on call of $wgLang::_unstub from ParserOptions->__construct
[caches] parser: SqlBagOStuff
Article::view using parser cache: yes
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
Article::view: doing uncached parse
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[Preprocessor] Cached preprocessor output (key: wikidb229-mw_:preprocess-hash:37261b095ad3e160e586e9b0297b4c2c:0)
[Preprocessor] Cached preprocessor output (key: wikidb229-mw_:preprocess-hash:4a77b401c9092d9e706f7bbecab2e978:1)
[ContentHandler] Created handler for Scribunto: ScribuntoContentHandler
[Scribunto] Scribunto_LuaStandaloneInterpreter::__construct: creating interpreter: ""C:\Projekty\zero-k.info\www\mediawiki\extensions\Scribunto\includes\engines\LuaStandalone/binaries/lua5_1_5_Win64_bin/lua5.1.exe" "C:\Projekty\zero-k.info\www\mediawiki\extensions\Scribunto\includes\engines\LuaStandalone/mw_main.lua" "C:\Projekty\zero-k.info\www\mediawiki\extensions\Scribunto\includes" "0" "8""
[gitinfo] Candidate cacheFile=C:\Projekty\zero-k.info\www\mediawiki/gitinfo.json for C:\Projekty\zero-k.info\www\mediawiki
[gitinfo] Cache incomplete for C:\Projekty\zero-k.info\www\mediawiki
SiteStats::loadAndLazyInit: reading site_stats from replica DB
[Mime] MimeAnalyzer::loadFiles: loading mime types from C:\Projekty\zero-k.info\www\mediawiki\includes/libs/mime/mime.types
[Mime] MimeAnalyzer::loadFiles: loading mime info from C:\Projekty\zero-k.info\www\mediawiki\includes/libs/mime/mime.info
File::transform: Doing stat for mwstore://local-backend/local-thumb/9/9e/News2178.png/300px-News2178.png
TransformationalImageHandler::doTransform: creating 300x156 thumbnail at mwstore://local-backend/local-thumb/9/9e/News2178.png/300px-News2178.png using scaler im
TransformationalImageHandler::doTransform: Transforming later per flags.
File::transform: Doing stat for mwstore://local-backend/local-thumb/9/9e/News2178.png/450px-News2178.png
TransformationalImageHandler::doTransform: creating 450x234 thumbnail at mwstore://local-backend/local-thumb/9/9e/News2178.png/450px-News2178.png using scaler im
TransformationalImageHandler::doTransform: Transforming later per flags.
File::transform: Doing stat for mwstore://local-backend/local-thumb/9/9e/News2178.png/600px-News2178.png
TransformationalImageHandler::doTransform: creating 600x312 thumbnail at mwstore://local-backend/local-thumb/9/9e/News2178.png/600px-News2178.png using scaler im
TransformationalImageHandler::doTransform: Transforming later per flags.
[Preprocessor] Cached preprocessor output (key: wikidb229-mw_:preprocess-hash:37261b095ad3e160e586e9b0297b4c2c:0)
Saved in parser cache with key wikidb229-mw_:pcache:idhash:825-0!canonical and timestamp 20250419135956 and revision id 8906
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
[SQLBagOStuff] Connection mysql object #127 (handle id #121) will be used for SqlBagOStuff
MediaWiki::preOutputCommit: primary transaction round committed
MediaWiki::preOutputCommit: pre-send deferred updates completed
MediaWiki::preOutputCommit: session changes committed
MediaWiki::preOutputCommit: LBFactory shutdown completed
File::transform: Doing stat for mwstore://local-backend/local-thumb/9/9e/News2178.png/934px-News2178.png
[FileOperation] FileBackendStore::ingestFreshFileStats: File mwstore://local-backend/local-thumb/9/9e/News2178.png/934px-News2178.png does not exist
TransformationalImageHandler::doTransform: creating 934x486 thumbnail at C:\Windows\TEMP\mwtmp-IUSR/transform_344f8aa0c641.png using scaler im
TransformationalImageHandler::doTransform: returning unscaled image
Title::getRestrictionTypes: applicable restrictions to [[V1.5.2.20]] are {edit,move}