Airships: Conquer the Skies - Zarkonnen
Fixed a desync bug.
Airships: Conquer the Skies - Zarkonnen
Fixed a crash when looking at the settings tab on a loaded game.
Airships: Conquer the Skies - Zarkonnen
Transferring money in diplomacy now has a stronger effect on the AI, but the AI is much less willing to give you money.

When making a diplomatic offer, the AI will check if it's willing to give you some money along with it, and automatically add the money. So you no longer have to edit each diplomatic offer to make sure you get that extra bit of money.



If your reputation is very low, the AI is less interested in getting tribute from you, as it doesn't believe you'll honour the deal. The same applies to a lesser degree to trade and research treaties.

You can now save medal designs in a persistent medal library:



You can now set the map generation seed in single and multiplayer conquest games. Newly created games now also show in the settings tab what seed was used. This means that if you find a nice-looking map, you can reuse it. Make sure to use the same settings for map size, land coverage, monsters, etc.



Finally: Bees, aerial dragoons, and other flying boarders will now pick a new target to board when their original target is no longer available. And the moon disk now takes less damage from ramming but has fewer HP overall.
Airships: Conquer the Skies - Zarkonnen
  • Fixed a crash caused by looking at a map overlay from the perspective of an empire that disappears.
  • Added more logging for diagnosing desyncs.
Airships: Conquer the Skies - Zarkonnen


I just released a major content update for Airships: Lost Flotilla, the sister game to Conquer the Skies. It's basically all the stuff I wanted to add after releasing the game. Do check it out - it's also 30% off at the moment.

https://store.steampowered.com/news/app/2858150/view/669466707009470661
Airships: Conquer the Skies - Zarkonnen
  • AI empires no longer form huge alliance networks on higher difficulty levels. They do still ally, but they don't all clump together.
  • Increased the size of forests on the map to make it look nicer.
  • Various small bug fixes: rare crashes, missing text, and so on.
  • Heroes & Villains: Albert North's sanity decreases less frequently, making it easier to keep him around.
  • Heroes & Villains: Fixed a bug where using both the "Cripple" and the "Disarm" ability on an enemy ship would make your ships unable to target anything on that ship. Instead, if one ability is currently active on an enemy ship, the other one replaces it when it's cast.
Airships: Conquer the Skies - Zarkonnen
As requested, here's an in-depth explanation of what caused the AI in Airships: Conquer the Skies to build outdated ships. I've tried my best to keep it relatively non-technical.

So in the game, the AI builds airships (and landships and buildings), and it researches technologies. Of course, it should use these new technologies in the construction of better ships. But a lot of the time, this was simply not happening, with the AI still deploying muskets and grenades late into the game.

After multiple tries, I finally figured out what was causing this bug, and also why it was so hard to diagnose.

First, some context: compared to other real-time strategy games, units in A:CtS are much more complicated. Instead of a single entity with one HP pool, an airship consists of dozens or hundreds of modules and tiles, all with their own stats. This is what makes the game fun, but it also causes performance problems.

This means that when the AI wants to build a ship, it's expensive to check every ship to see if it can be built. So instead, the AI keeps a list of ships that are buildable, and a list of techs it had when it made that list.

Whenever the AI wants to build a ship, it checks whether its list of ship techs is the same as the list of techs it's researched. If they're not the same, it's developed some new technology, so it re-checks all the ships and makes a new list of ships to build, and updates its list of ship techs with its current technologies.

So, step by step:

Ships List Ship Tech List Current Tech List │ │ │ HMS Murderface Grenades Grenades HMS Stabber Wooden Armour Wooden Armour HMS Not Nice New tech researched and added to Current Tech List. Ships List Ship Tech List Current Tech List │ │ │ HMS Murderface Grenades Grenades HMS Stabber Wooden Armour Wooden Armour HMS Not Nice Cannons Ship Tech List and Current Tech List are different, so the AI updates the Ships List. Ships List Ship Tech List Current Tech List │ │ │ HMS Murderface II Grenades Grenades HMS Stabber Wooden Armour Wooden Armour HMS Katana Cannons Ship Tech List is updated to be the same as Current Tech List. Ships List Ship Tech List Current Tech List │ │ │ HMS Murderface II Grenades Grenades HMS Stabber Wooden Armour Wooden Armour HMS Katana Cannons Cannons

That last step is where the bug was: It should have made a copy of its current technology list and filed it away as the ship technology list. Instead, it just used the same list, the "live" one. So now, whenever it researched a new technology, it would be instantly in the ship tech list as well. Meaning that whenever it checked, the two lists would be the same, and so it would never notice technology had changed, and would never rebuild its ship list.

Bug: Ship Tech List is the same as Current Tech List. Ships List Ship Tech List Current Tech List │ └───────────────────┤ HMS Murderface Grenades HMS Stabber Wooden Armour HMS Not Nice New tech researched and added to the tech list. Ships List Ship Tech List Current Tech List │ └───────────────────┤ HMS Murderface Grenades HMS Stabber Wooden Armour HMS Not Nice Cannons Ship Tech List equals Current Tech List, and so Ships List is not updated.

And so, the ship list stayed the same, with the same old ship designs, and the AI did not actually benefit from the research it was doing.

The fix was very simple: just make a copy of the tech list rather than use it directly. But what caused the bug in the first place? An optimization pass I did three years ago. These tech lists are used all over the place in the game, as they need to be consulted frequently to check if something is available. I discovered that the game spent a lot of time making pointless copies of them, and so I got rid of all that copying - including in this place, where there was a very good reason for it!

So why did this take so long to track down? You might have noticed that there were multiple previous updates where I claimed to have fixed this bug. Well, to be able to fix a bug, you have to first observe it in the wild. There's a bunch of confounding factors: perhaps the AI has outdated ships because it doesn't have the money to upgrade them, or they haven't made it to a shipyard because they've been too busy fighting.

And there's a lot of moving parts to ship management: I long thought the code for upgrading, rather than building new ships, was broken. So I asked players to send me saves of games where the AI had failed to build modern ships.

Here's the thing: the game doesn't store the ship list in the save file. It doesn't have to, because it can recreate the list, right? So when you loaded a save game with this bug, the bug would go away as the ship list would be freshly recreated and up to date. So I'd inspect the game and see correct ship lists, and hence assume the problem was with using the lists, not the lists themselves. The bug took so long to find because it was covering its tracks.

So here you have it: optimization always carries the risk of introducing new bugs, and sometimes bugs hide from you.
Airships: Conquer the Skies - Zarkonnen
I think I've finally tracked down and fixed the long-running bug where the AI would fail to upgrade its ships or use new technologies it researched. Many thanks to everyone who sent in example saves. If there's interest, I can also write up an in-depth explanation of what small, stupid thing caused this bug.

  • The AI now updates what ships it builds based on the technologies it has researched.
  • The AI now correctly upgrades ships and buildings.
  • Dead governors no longer stay at their assigned cities, gently decaying.
  • Fixed a missing German translation.
  • Flipped some defensive buildings that were facing the wrong way.
  • Mod loading progress bar is no longer too short.
Airships: Conquer the Skies - Zarkonnen
  • Significant performance improvements to conquest mode: larger games should now run much more smoothly.
  • Fixed a bug where the AI would fail to upgrade very outdated ships because even their upgrade was outdated. (Finally!)
  • Off-road fleets with landships being stuck is now less likely, and is explained when it happens.
  • Updated the Kingdom of Whalton AI fleet.
  • Heroes and Villains: You can no longer use a spy action convince Bui to join your side if you're her nemesis, nor can you hire or convert Father Tesseract if you're a cultist.
Airships: Conquer the Skies - Zarkonnen
Now Airships: Lost Flotilla is out I've finally been able to turn my attention to some long-standing bugs in Airships: Conquer the Skies:

  • Made AI significantly better at managing money: it no longer builds and then instantly scraps supply ships, it does scrap useless city upgrades, it handles local defense budgets better, and it's more willing to fire overly expensive heroes. All in all, the AI should have a lot more money in mid to late game to compete with you.
  • The AI no longer bothers you with boring requests to cancel treaties.
  • You can now award medals to ships when heroes are set to none in setup.
  • Half panels now flip with the ship.
  • Fixed some missing text.
  • When you capture an enemy ship under direct control, you don't then assume direct control of it.
  • Cultists now start with only 30 reputation.
  • Extra $10 local defense budget for capitals.

By the way, this is the last day where you can get Airships: Lost Flotilla for cheap through the bundle with Conquer the Skies.

https://store.steampowered.com/bundle/49670/Airships/
...

Search news
Archive
2025
Sep   Aug   Jul   Jun   May   Apr  
Mar   Feb   Jan  
Archives By Year
2025   2024   2023   2022   2021  
2020   2019   2018   2017   2016  
2015   2014   2013   2012   2011  
2010   2009   2008   2007   2006  
2005   2004   2003   2002