Based on requests and ideas from the Discord community, I've added a whole bunch of new heraldic charges to the game. (Heraldic charges are the images of animals and objects and so on that are found in coats of arms.)
I've also added bonuses to eight of them:
+30% armour blast resistance
No maintenance cost for town upgrades
-75% armour HP, double lift
Spies can pursue intrigues, with an increased success rate
Additional unrest from towns and cities, building cost and maintenance is halved
+50% Spy defense
Double research and reputation from universities
Double reputation from sending delegations
Finally, I also added five new heraldry layouts:
DLC Status:
Still not ready to be announced, waiting for key art.
Still not about naval ships. :D
Development is going well.
DLC Announcement Delay
The DLC announcement will be delayed to February because I didn't account for all the things I needed lined up for it, including key artwork. Actual development on the DLC is going well, though, and I will soon be in a position to announce it. Apologies for that.
Version 1.1.2 - Bugfixes!
New Chinese translation created by players.
You can now view the game setup settings during a conquest game, and use cheats to modify them. You can even do things like turn off the diplomacy system halfway through the game!
There's now a setting for reduced visual noise, which gets rid of animations, fragments, background elements, and most particles, to make the game more accessible for people with vision/visual processing issues.
If you are editing a ship in multiplayer, you are no longer forced to watch unrelated intercepts.
Turning off monsters now also turns off starter monsters.
Increased land anemone range.
Flipped around some AI buildings that were pointing the wrong way.
Landships can now cross oceans to friendly ports.
Spy action notices are now shown as normal notices on the left of the screen instead of being a popup.
Ammo overlay no longer shown for weapons that don't need ammo.
Coronation victory setting explains that it also controls final ritual victory.
Torpedo bombers now wait until they have a good shot instead of launching their torpedo as soon as possible.
The game now detects when an incompatible driver is being used and automatically turns on graphics compatibility mode and tells the player, instead of crashing out. This isn't a full solution, but it's at least better. If you have an uncle that works at AMD, let me know.
Minor graphical/text fixes.
Bugfix release and expansion announcement in January
So I am about to board one of those novel heavier-than-air flying contraptions to travel to the remains of the Old Empire (AKA England), but I wanted to keep you informed of plans for next year.
There'll be a bugfix release in January dealing with some user experience and balance issues, and updating the Chinese translation to an improved one created by players.
And then in late January I'll be announcing an expansion for Airships. The name and topic of which is still under wraps, but I can say that Curtis Schweitzer has once again signed on to create music for it.
Until then!
(Image copyright Roby, CC BY-SA 2.0 be)
Addendum for expectation management: The expansion isn't sea-ships, because I still have some game design problems with sea ships to figure out.
Modding Guide: Special Eras
Special eras are one of the features that I introduced in the co-op and conquest update in August. These work by temporarily changing the rules of the game, and may also have a victory condition, where an empire can be rewarded for ending the era early.
Like pretty much everything in the game, these are data-driven, so you can add new ones by modding. Here's how.
(This post assumes that you know how Airships mods work. If you want an introduction to basic modding, check out this article first.)
Play in Airships progresses through a series of eras, which slowly change the game balance, decreasing the unrest from empire size, and increasing base research and the number of spies available. Each era has a chance to be a randomly chosen special era, which accumulates over time, so that while not every era is special, you will definitely get some special ones. You can see this information in StrategicEras in the game data. Of course, you can also mod this, changing the tempo and balance of the overall game if you wish.
Special eras are stored as EraModifiers in the game data. There is also always a bonus of the exact same name, which is active while the era is active. (So whenever you create a new EraModifier, create a Bonus with the same name.)
It's probably a good idea to open eraModifiers.json with your text editor so you can see concrete examples of what this article is about.
You can also download and read the example mod that adds one new EraModifier.
So apart from the name, we want a 16x16 icon for the era, a 400x300 image for the announcement dialog, and a background pattern for the dialog. (The patterns are numbered 0-24 and can be found in data/images/patterns.png. You can also leave out this value, but it's prettier if you have a suitable pattern!)
There are also three strings in en.properties associated with this modifier:
bonus_AGE_OF_PLENTY=Age of Plenty age_desc_AGE_OF_PLENTY=An age of bountiful harvests. age_fx_AGE_OF_PLENTY=+15% income\nDouble fleet resupply speed
So that's the name of the era, a prose description of what's happening, and a list of gameplay effects. (\n is a new line character.)
But how does this actually do anything? By being a bonus! As you may know, bonuses can have all kinds of gameplay effects in the game. For example, the AGE_OF_PLENTY bonus is used in the EmpireStat value for city income:
There's a lot of EmpireStats that bonuses can modify - here's a full list. They can also unlock city upgrades, modules, and armour and change their stats.
Here's some examples of what an EraModifier could do via bonuses:
Decrease the reputation required to start coronation to 70.
Double the local defence budget of cities.
Eliminate the reputation cost of breaking truces.
Make fires nigh on impossible to put out.
Double the unrest of cities not connected to the capital.
Unlock a new city upgrade that can only be built during the era.
Make Suspendium Chambers produce double lift.
Allow everyone to train dragon riders.
Unlock a new part of the tech tree.
(Note that unfortunately, two mods that replace the same EmpireStat will conflict with each other, so you have to be a bit careful with that.)
So that's the basics for EraModifiers. But they can also do a lot more, creating what are basically time-limited events for empires to participate in.
Spawning City Upgrades
You can spawn city upgrades at the start of an era, using the following fields:
eraStartSpawnUpgrade - The CityUpgradeType to spawn.
eraStartSpawnNumUpgrades - How many to spawn. The game will try to distribute them evenly.
doNotSpawnUpgradeInEmpiresWithBonus - Empires with this bonus won't get any of the upgrades in their towns or cities.
By default, those upgrades will survive the end of the era, but you can also use an era reward (see below) to remove them.
Spawning a Monster Nest
Using eraStartSpawnNest, you can spawn a single monster nest at the start of the era, which can be used to create a "boss monster", such as the pirate king in the age of piracy.
Expeditions
Expeditions let empires send a group of ships to investigate stuff, gaining a random reward upon return.
To enable expeditions, provide a list of rewards in the field "expeditions". The field is also bonusable, so you can provide different sets of rewards depending on what kind of empire sends the expedition.
To give the player an idea of how large a group of ships they should send to get a good outcome, use the fields expeditionLowRewardsBoundary, expeditionMediumRewardsBoundary, expeditionHighRewardsBoundary, and expeditionVeryHighRewardsBoundary.
So for example, if the total value of the ships sent is between expeditionMediumRewardsBoundary and expeditionHighRewardsBoundary, the tooltip will state "Expedition Potential: Medium".
Rewards
Rewards are used both for expedition outcomes and for what happens when an era ending is triggered. They are the same data structure that is used for monster nests. They should have a name, a title, and an image. And they can also have the following fields:
money - Money gained.
rep - Reputation gained.
research - Research points gained. These are applied to the current research, if one is active. Otherwise they are applied to the next research topic chosen.
bonus - A bonus to permanently grant.
tech - A technology to grant.
supplies - Supplies to give to the fleet that unlocked this reward. (Only meaningful for monster nest rewards.)
specialConstructionName - Name of a ship or landship to give to the fleet that unlocked this reward. These should be placed in a bonusConstructions folder in the mod. (Only meaningful for monster nest and expedition rewards.)
numSpecialConstructions - Number of special constructions to grant, 1 by default.
startEraModifier - Start a new EraModifier.
endsEraModifier - If this is the current era modifier, end it.
destroyAllUpgrades - Destroy all City Upgrades of this name.
There are also some fields that control which reward is picked from a list of possibilities for monster nest and expedition rewards. Note that the game never picks rewards that have no effect, such as ones that grant a bonus that an empire already has. Try to have a fall-back reward that is always valid.
spawnWeight - Relative chance that this reward is chosen.
onceOnly - This reward can only be given once.
requires - Require this bonus.
requireResearch - Research must be possible. So if the tech speed is set to No Research, this reward won't be picked.
requireMonsters - The game must have monsters, so monster nest density must not be set to None.
requireToggle - Require that a specific game feature is toggled on. The names of the available toggles as of this writing are: REPUTATION, DIPLOMACY, CORONATION, ALLIANCE_VICTORY, SUPPLY, and AUTORESOLVE.
minWinningFleetCost - Only used for expedition rewards. The expedition fleet must have at least this total cost.
maxWinningFleetCost - Only used for expedition rewards. The expedition fleet must have at most this total cost.
Using minWinningFleetCost and maxWinningFleetCost you can make it that larger fleets give better rewards.
Since rewards can both grant and require bonuses, you can use this to tell stories that unfold over multiple expeditions. See AGE_OF_MONSTERS for an example.
Bonusable Descriptions and Effects
Normally, the era modifier description and effects are the strings age_desc_X and age_fx_X, but if you want empires with specific bonuses to have different text, you can use the bonusable values "desc" and "effectsDesc" to specify strings. For example, empires with the REVOLUTION bonus get a different text and info for the Age of Unrest:
Last but not least, EraModifiers can have end conditions. When they are met, the era ends. Empires then receive rewards (or punishments) based on who triggered the end condition.
Here are the fields for the possible end conditions:
<*> eraEndsWhenControllingUpgrades - When set to true, the era ends when the upgrades spawned at the start are all controlled by one empire. <*> eraEndsWhenClearingNest - When set to true, the era ends when the nest spawned at the start are is defeated by an empire. <*> eraEndsWhenUpgradesBuilt - A CityUpgradeType. The era ends when enough of them have been built, with the empire that built the most being the one that triggers the era end. <*> eraEndsWhenProportionHasUpgrade - Used to determine how many upgrades need to be built to end the era. The number of upgrades is the number of cities x eraEndsWhenProportionHasUpgrade. (This applies even if the upgrades are town upgrades.) <*> eraEndsWhenResearched - A technology. The first empire to research it is the era ender.
End Rewards
When an era end condition is triggered, empires receive a reward based on whether they were the one to trigger the end condition, their bonuses, and the bonuses of the empire that triggered the end condition.
A concrete example: Age of Piety spawns three Holy Sites at the start. Once an empire controls all three holy sites, the era ends, but what exactly happens depends on the empire. A normal empire gains 20 reputation. But if it's Cultists, they instead gain the Greater Cult bonus, a massive permanent increase to income and industry, and the holy sites are destroyed:
For the other empires that didn't manage to control the holy sites, there are four distinct outcomes based on whether they are cultists and whether the winner is a cultist:
Note that eraNonEnderReward is a nested bonusable value. The first level is determined by the bonuses of the empire the reward applies to, and the second by the bonuses of the empire that ended the era.
Testing
Once you've added a new EraModifier, you can test it using the "Start Age" cheat option. Note that the game needs to be unpaused for the age to actually start. (And yes, all the cheats in the game started out as tools for testing the game.)
Conclusion and Example Mod
Putting this all together, you can create special game eras that provide variety to gameplay by changing the way the game works and giving the player interim goals. As an example of this, here's a mod that adds an Age of Schism, during which the Trilunar Church breaks into three competing sects you can try to reunite - or destroy, if you're cultists.
As always, if you have any questions about this post, feel free to comment below, and if you need help with modding, hop on the Discord and ask!
Version 1.1.1.1
Fixed land anemone text, updated German and Chinese translations.
Version 1.1.1 - Land Anemones!
Added giant land anemone monster nests.
Ships withdrawing from a raid can now limp to the nearest safe port.
The game now checks whether you need to declare war when you intercept a fleet.
Halved speed at which the plague spreads.
Fixed post-combat ship stats in conquest.
Fixed waspkiller marine graphics.
The AI should no longer assume that human players want to break beneficial trade treaties.
There is now always a reward for defeating moon disks.
Insults are now properly hidden when the option to hide them is selected.
Fixes to French and German translations.
New cheat option: constant monster nest raids.
You might wonder why you'd want an option to make monster nests constantly attack you. The reason is that all the cheat options in the game are also tools I use for testing the game. And sometimes I need to test something involving a monster nest attack.
Version 1.1.0.9
Fixed bug where AI would apply -200 evaluation to offers for city transfers.
An Incomplete History of the Old Empire
The game is set a little over a decade after the collapse of the old empire. The city-states that once comprised it are now fighting for supremacy, to recreate the empire under their control, or to create some new social order altogether.
What eventually became the empire started out as a confederation of city-states that shared a language, culture, and religion. They wanted a way to resolve conflicts without resorting to constant low-level warfare. So they created a legal framework for resolving these disputes and elected a chief judge to rule on cases. When the old judge died, they would each send one elector to a conclave, and the electors would discuss the merits of possible candidates and choose a new judge.
Cities each had their own method of choosing their elector. In some cases, they were an envoy sent by the city's ruler. In others, electorship was hereditary and separate, or decided upon by a council. Some cities even experimented with popular election. The ideal elector was a wise, sensible legal mind who would rationally choose the best option in the conclave. But right from the start, electors usually represented the interests of the cities they were sent by, or their own interests entirely.
As time went on, more city-states were added to this confederation, some forcibly, some voluntarily. Most of those newer members did not have the right to send electors, but a few powerful ones did.
Less than a century later, a series of military crises meant that the cities needed to have an unified response. They made the chief judge - a fierce woman called Mathilda, later Mathilda the First - into the chief general of their armies, and eventually agreed to give her the power to levy their armies at will to fight common threats.
From then on, the power of this judge-emperor increased. They were able to issue legal rulings that affected the laws within the city-states, not just between them. And they would appoint an increasing number of important and lucrative positions in a growing bureaucracy, such as the harbourmasters of the great ports.
Influence with the emperor became ever more useful and lucrative, and so the process of election became increasingly corrupt, with electors receiving exorbitant bribes and threats to support specific candidates. As each successive emperor used their power to favour their particular faction, the prestige of the institution decreased.
Corruption and favouritism evolved into infighting, assassinations, and eventually outright civil war, as multiple power blocs elected their own emperors and fought for power.
Finally, Konrad II ascended to the throne and managed to stabilise and reform the empire. He granted each member city its own elector and introduced a rule that an emperor could only be chosen by a quorum of a supermajority of electors. He also partly succeeded in reforming imperial law and administration.
And indeed, upon his death, the electors came together and peacefully voted for a successor - all but two of them, electors for two of the founding cities, who refused to attend.
For a while, this new order held and produced peace and prosperity, but over time, the administration began to decay again. Electors again started taking bribes, the quality of emperors declined, and a new problem became apparent: cities could now threaten to withold their electors, making it impossible for a new emperor to be elected. Months and sometimes even years would pass with no successor enthroned.
When elections did happen, the emperors were weak and often elderly, ruling only for a short while. Cities resorted to mutual treaties and the occasional skirmish to resolve their differences, as appealing to the justice of the emperor was no longer practical.
By this time, imperial electors had become deeply hated by the common people, emblematic of the misrule of the empire. The monstrously venal and corrupt elector became a stock character in pamphlets and plays. Some of them were attacked by mobs or forced to resign from their positions by threat of violence.
The development of powered suspendium and modern airships changed things once more. The world became more connected, and wars acquired a new speed and violence. A popular reform movement, led by nobles and military men, installed a new emperor, Theomisos V. Together, they did away with much of the bureaucratic apparatus entirely, and instead created an imperial fleet as a power base and peace-keeping force.
This movement did not last long, destroyed by infighting and the death of its most senior members. Despite the power and authority of the fleet, the empire now entered an even steeper decline, as various factions installed and deposed puppet rulers to enrich themselves and use the fleet to threaten their rivals. Cities that were on the losing side started completely ignoring imperial edicts.
Around this time, a satirist published a pamphlet tallying the exact (and surprisingly low) cost of gaining the imperial throne - the amount of bribes needed to arrange for the previous emperor's unfortunate fall from an airship, and the payments to electors to ensure your own election. Within the imperial administration, it was widely acknowledged as accurate.
The final emperor, then, was a wealthy merchant of impeccable upbringing who had bribed the right people. To the surprise of the realm, rather than wanting to enrich himself, he genuinely intended reform. Once installed on the flagship of the imperial fleet, he started issuing radical edicts to reform the empire, much to the displeasure of the wealthy and powerful.
What happened next is unclear: Some claim that he went mad, or had indeed been mad all along. Others claim that he was preparing an edict abolishing serfdom across the empire. But there definitely was some great battle involving the imperial fleet, destroying it utterly. Were they attacked by mercenaries hired by powerful factions? Did the fleet split into factions that fought each other? We don't know, but the emperor disappeared, and the power of the fleet was no more.
There were several attempts to hold a conclave afterwards, but none of them came close to having enough electors - in part because several electors were killed by angry mobs soon thereafter, and their successors were unwilling to travel. Years had passed without an emperor before, but after more than a decade, it became clear that there would not be a new conclave. The cities, now free of the constraints of imperial rule, began looking at each other and sharpening their knives...
Added maximum values to a number of diplomacy AI evaluations, preventing extreme numbers from distorting AI behaviour. (For example, being able to buy an entire city in exchange for a research treaty.)
Added a button to jump to a city being transferred in diplomacy offers.
City specials now have descriptions in Chinese, courtesy of ChenLe.