Sep 9, 2019
Airships: Conquer the Skies - Zarkonnen
  • Improved networking code that can deal with your connection failing and automatically reconnects.
  • Planes now lead their shots and are much better at intercepting each other and hitting smaller fast-moving ships.
  • Biplanes have a significantly higher rate of climb and descent so they can catch up to torpedo bombers.
  • You can now (finally) tell the game to auto-select your preferred screen resolution.
  • Rewrote text input code to be smoother. Also now offers some support for writing Chinese/Japanese input methods in Windows, though at the moment you need to play in windowed mode to see the input window.
Aug 30, 2019
Airships: Conquer the Skies - Zarkonnen
There will be an official player-organised Airships tournament on September 14 and 15. There will be Fun and Prizes. To participate and get all the details, head over to the Discord server.

(Note that the tournament is endorsed by me but administered by a committee of players, who are responsible for tournament rules, referee decisions, etc.)

Airships: Conquer the Skies - Zarkonnen

  • A few more decorative items: ornate name plates, concave curved blocks, more domes, ornate decking, and crenellations.
  • Introduced minimal upgrade time for monster nests, so you won't be surprised by pirate kings or elder dragons early in the game on lower difficulties.
  • Hitting escape in a confirm dialog in the file screen no longer exits the file screen.
  • Demonstertruckification: New spring values for track suspensions (based on work by Yellowminer, thank you), plus larger undercarriage graphics, so landships no longer have quite as ridiculously tall suspensions.
  • New setting to reduce flashing caused by shots, explosions, lightning, etc.
  • Fixed a bug where a fleet would be incorrectly unable to intercept another.
Airships: Conquer the Skies - Zarkonnen

  • There is no longer a giant carrot peeking out of hussar bays.
  • AI vs AI combat resolution is no longer biased towards fleets of small ships.
  • The AI is more likely to build large ships if it can.
  • Front/back light cost and price are now the same as top/bottom.
  • Added stencilled numbers as decals.
Known issues:
  • Unable to input Chinese and Japanese characters.
  • Bomber-building AI is still weirdly dominant sometimes.
Jul 30, 2019
Airships: Conquer the Skies - Zarkonnen


Fixes a number of rare crash bugs during map generation, conquest, and ship editing.

More interesting things to come - in July, I've been busy, overheated, and sick twice, but diplomacy is progressing, if more slowly than planned. (Ugh, I really dislike having to make a "and here's why nothing visible has been happening" post.)

In the meantime, I'd like to tell you about two games by friends of mine that I've been enjoying:

Nowhere Prophet is a game about taking your tribe on a pilgrimage across an alien planet, fighting your way through various enemies in a card-based combat system. I've been playing this a lot, on the lowest difficulty level, while too stupid to code, and it's very satisfying with a lot of options to unlock.

I found out about Merchant of the Skies by seeing cute pixel art of airships on Twitter. I talked the developers into letting me see it a week or so early. It's a game of trading and building up industry in a cute world of floating islands. Also, some turtledoves appear to have flown through a spatial rift and ended up there.
Jul 9, 2019
Airships: Conquer the Skies - Zarkonnen


Version 1.0.9 is now out.
  • Bottom-left messages that tell you when a weapon is ineffective against an armour or monster.
  • You can now search by file name in open file screens.
  • AI bomber fleets are now restricted to higher difficulty levels.
  • The AI will no longer spam dragonriders except on high difficulty levels.
  • Fixed more physics issues.
  • Fixed data loading bug that ignored non-default boolean values.
Airships: Conquer the Skies - Zarkonnen
1.0.8.5: Fixes some bugs and adds a whole lot of new player-suggested city names.

1.0.8.6, 1.0.8.7, 1.0.8.8: Fix various combat crashes.
Jun 26, 2019
Airships: Conquer the Skies - Zarkonnen
Diplomacy and co-op combat are the most-requested features for the game. You want to conquer the skies together, I understand that. :)



I've been working on making this a reality, which has required a fair amount of re-engineering and game design. Today I'd like to lay out my thoughts about diplomacy in strategy games and the design I'm using for Airships.

I'm probably not alone in finding diplomacy in most strategy games really unsatisfying. The AI will hate you for no clear reason, or love you despite you clearly being a threat. Or it will refuse to make any agreement that isn't massively in its favour.

The core problem is that in a strategy game, you're playing to win. All the other empires are enemies to overcome, which makes diplomacy kind of meaningless. Any agreement you make will eventually have to be broken in the pursuit of victory. It's literally a zero-sum game.



So does the AI know it's in a zero-sum game? Is it playing to win, figuring out the optimal strategy? Or does the AI have simulated emotions, loving or hating other empires based on their actions?

Neither is satisfying. In the first case, diplomacy is ultimately pointless. In the second, it becomes a process of manipulating the AI so you can stab it in the back at the moment of your maximum convenience.

Aside: I worry that when some players ask for diplomacy, what they're really asking for is just the ability to choose when to go to war with whom. The other empires passively lining up for slaughter. I can see that this is nice for keeping difficulty on an even keel, and on the easiest difficulty level, this is fine, but otherwise, surely, we want some more initiative from the AI.

So how do we get out of this problem where neither "calculating" nor "emotional" diplomacy is actually fun to play? We figure out a way to make your diplomatic actions actually matter for gameplay, despite the game being zero-sum.

In Airships, I hope to achieve this as follows:

Each empire has a global reputation score that describes how good and honourable they're generally perceived as. Having a low reputation score makes espionage harder, conquered cities resist for longer, and pirates more likely to attack. A high reputation score does the reverse of all that.



In addition, if you have very good reputation and control more than half of the cities on the map, you can crown yourself emperor and win the game like that. The coronation takes a while and can be disrupted, but it's an alternate victory condition for people who don't enjoy crushing every last piece of resistance.



How does this tie into diplomacy? Well, declaring war in and of itself doesn't cost you reputation. Airships is set in a fantasy version of the wild and wooly days where war was considered a perfectly healthy thing to get up to, good for the digestion and all that. But breaking treaties, that's what costs you.

For example, the difference between just being at peace and being in a non-aggression pact is that you've promised not to attack each other, and you're backing that promise with a chunk of your reputation. The stronger the bond of a treaty, the more reputation you lose if you break it. So declaring war on an ally will cost you a lot of reputation.

It's breaking your word that decreases your rep, not war in and of itself. If you never make any treaties, your reputation can't be damaged - but everyone's also free to attack you.

And note that it's perfectly possible to win with really low reputation - you're just playing as the bad guys conquering the entire world.



So how do you improve your reputation? Slaying monsters, defeating pirates.



The other mechanism that complements reputation is grievances. When you do a bad thing to another empire, you lose X reputation, and you also cause X grievances with that empire. The other empire can now retaliate and have its grievances subtracted from the reputation loss it would suffer.

For example, if Kulinrovod cancels a research agreement with Ul Qoma, it loses 3 reputation and Ul Qoma gets 3 grievances with Kulinrovod. Ul Qoma can now cancel a trade agreement, which is also 3 reputation points, and pay for it by losing its 3 grievances with Kulinrovod instead of losing reputation.

Here's a rundown of all the diplomatic options that are currently planned. Note that as always, these are things I'm still working on, so they are subject to change.

Main relationship:
  • War - Any fleets that encounter one another will fight. This is what it's like in the game right now.
  • Ceasefire - To get to peace from war you have to go via a ceasefire. Fleets no longer fight. Violating a ceasefire carries a reputation penalty. Unbroken ceasefires eventually turn into peace.
  • Peace - The new default state. Fleets that encounter each other in neutral territory don't fight. Sending a fleet to a city owned by another player is a declaration of war, though. Declaring war from this state doesn't cost any reputation.
  • Non-Aggression Pact - You can now send fleets to each other's cities without causing a war. Breaking this costs rep.
  • Defensive Pact - You pledge to assist your pact brother in defensive wars. Costs more rep to break.
  • Alliances - You are automatically involved in your allies' wars, offensive and defensive. If your alliance controls the whole map, you win together.

Additional relationships:
  • Tribute - One empire pays part of its income to the other.
  • Trade Treaty - Both empires have their income slightly boosted.
  • Research Treaty - Both empires have their research slightly boosted.

These all cost some rep to break, too.

I'm in the process of gluing all of this together now. Diplomacy logic, the user interface, the new game rules about combat, and the AI to actually understand and act on these concepts. It will be a while yet, but I hope you enjoyed this overview.

Airships: Conquer the Skies - Zarkonnen
It appears that version 1.0.8, which was supposed to make networking faster, instead is causing the game servers to crash. I've released v1.0.8.3, which goes back to the old settings, to mitigate the issue until it's fixed properly.

My apologies. Please do make sure you're using 1.0.8.3 when playing multiplayer for now.
Airships: Conquer the Skies - Zarkonnen
User battlemage64 suggested we crowdsource additional city names for the game, which sounds like a fun idea. Note that I'll be kind of picky about which names I'll add though.



Here's the list of all the names in the game so far:

Krantzberg
Fjordon
Dingleton
Lonlin
Northwestex
Darkfellbane
Stormness
Hatwick
Catwick
Fruchtenbach
Irem
Mettepolis
Retropolis
Greytowers
Blackspire
Wombaton
Nuyok
Lepidoptera
Tepid Falls
Subtle Creek
Ungrashzon
Strultekud
Gomdat
Daggergild
Sigun
Lubbud
Woundford
Bardoom
Gildfield
Ulthar
Squamos
Narlikon
Pale
Kulinrovod
Zirnoglesh
Crowlantern
Ringfast
Likorsoth
Korono
Nettacar
Kolaran
Sacculina
Fructopolis
Ionesco
Nimbus
Ul Qoma
Catbridge
Gug
Kooh Der
Rizzugat
Uncton
Tapejar
Nodon
Sceral
Skulton
Palesea
Urwigg
Tis
Lioq
Kurrib
Altinzal
Cutano
Saur
Pogorra
Tuskaten
Deepcastle
Ochre Point
Eccip
Voltvale
Tibia
Eumorphia
Quannorp
Olmton
Suppurak
Uqbar
Tlon
Viscoura
Fogcastle
Railmere
Pinsea
Oculum
Heptopolis
Marshvale
Esseract
Thalmol
Innipeq
Alzh
Acurdale
Ursovril
Phore
Ondendron
Lightjar
Hennog
New Lemuria
Vaxenford
Gearbridge
Cubus
Kirkumferum
Abton Dys
Unbridge
Axis Mundi
Hypoborea
Suddene
Ys
Xur Abbon
Pramk
Ulconac
Whalton
Dragonbridge
Blackvale
Sodvale
Quagrim
Pessera
Opton
Iolet
Unsea
Harsin
Ungarden
Wurmsea
Golonac
Thulu
Drassil
Al Ikol
Tixe
Kastovic
Ummerbund
Ceteus
Stinex
Ototh
Ebecc
Orbis
Zhangor
Doveton
Korak
Zibar
Ubbahan
Nem
Xim
Okkut
Knosph
Toothford
Frogsmouth
Dentata
Speltford
Dyne
Cogburgh
Oddbury
Audanum
Arctum
Wheelton
Kanata
...