Category: Dev Diary

AI War 2 — v2.999 DLC Eve

New build! https://wiki.arcengames.com/index.php?title=AI_War_2:Finalizing_Multiplayer#2.999_DLC_Eve

(Reminder that if you have trouble with the build, you can always go into betas and choose most_recent_stable to go one build back. This is how I sleep at night after making some major changes.)

Lots of last minute fixes and tweaks, a lot of them the sort of thing where we went “how did none of our testers find this?” But Democracy and some others ran a long game last night and found a whole crop of new bugs, so those got squashed.

Speaking of bugs, a not-so-new bug from the last few weeks has been making multiplayer just miserable for the clients, and I could not figure it out for the life of me. After chasing it for a long time, and getting lots of reports that I couldn’t replicate, I was finally able to replicate it. Once it was replicatable, its days were numbered. It turned out to be three complex bugs in one, but they’re all fixed now and so the client experience is a lot more sane. No more disappearing fleets and units.

On the DLC2 front — hey, that launches in about 11.5 hours from now! — there’s some really cool new additions as well, with some last minute new controls to allow you more control over targeting crashing nomad planets or zenith miners. These are semi-wildcard type aspects of DLC2 when you enable them, so the ability to use hacking points to turn them to your advantage (rather than having no choice but to fight and defeat them if they were unfavorable to you) adds a lot of new strategic options for advanced players in particular. For casual play, it still adds options, but it probably won’t be game-deciding at that level.

SirLimbo’s mods got some updates as well, and Tzarro helped us find a ton of typos that are now fixed, most in the base game. Oh! There’s two new fun cheat codes for DLC2. One to get all Zeus’s cruisers, and the other to spawn a Miner Probe.

Titan Edition and DLC2 arrive super soon. Enjoy!

2.815 Polishing And Bugfixing

New build! https://wiki.arcengames.com/index.php?title=AI_War_2:Finalizing_Multiplayer#2.815_Polishing_And_Bugfixing 

We are back from beta, and this new version includes a lot of polishing and bugfixing, improvements to the bastille turret, and many various items for our DLC2 testers to bang on.  This also has another raft of multiplayer fixes, although thankfully the number of those required is going down quite a lot.   We seem to have slain both ghosts as well as the creeping command lag, and the new MP issues reported were actually all related to DLC2!  So that’s a nice thing to be whittling down so far.

During this beta period, we’ve increased energy requirements quite a bit for superweapons, and also scaled back the number of ship lines you have access to.  Officer fleets no longer come with free ship lines, but also now cost much less AIP to capture.  ARSes and similar have slightly fewer choices, but the ODSS in particular now has a better balance of choices rather than giving you too many redundant ones.  There’s a Goldilocks Zone of “just enough choice but not too much” that we’re trying to hit, and we seem to be quite close, if not there.

As part of the beta process, the AI got some new anti-spy buildings for its highest-mark planets, so you can’t just spy on them with impunity in those areas.  We also took away the mechanic that caused the AI to automatically mark up to mark 3 by the time you attack their homeworld; if you want to run a low-AIP game, you can now do that.  The mechanic still remains on difficulty 10, but we decided it was needlessly punitive (not the original intent at all) on lower difficulties than that.

There are a number of new hotkeys that are default-unbound that you can use for things like selecting-only-turrets or for placing half or a third of a cap when you click.  Thanks to donblas on those.

AI homeworlds and bastion planets now have special icons and styling that make them easier to spot.

Enjoy!

Beta 2.813 Golem Relations

New beta build! https://wiki.arcengames.com/index.php?title=AI_War_2:Finalizing_Multiplayer#Beta_2.813_Golem_Relations

You need to use the current_beta build on Steam or GOG to see it.  Assuming that all seems sane with this build, this is the end of the current beta period.

What’s new in this one?  There are a few bugfixes and QoL improvements (thanks to donblas for several of those).  There’s a new anti-spy system and some improved spy balance, courtesy of CRCGamer.

The Arks and Golems have all been made cheaper in AIP to capture, cost WAY more energy to run (they were stupidly undercosted in energy), and no longer come with any ships when you capture them.  You just get them for themselves, not for the fleet they’re toting along.  Thanks to Strategic Sage for the suggestion about the energy costs, as well as a raft of related items.

Existing savegames that would be thrown into negative energy by balance changes now automatically get a free energy handicap that keeps that from happening, which gives us a freer hand to make large energy usage changes like this without breaking anyone’s campaign.

You get one more choice again from the TSS, bringing that back into middle-balance. The Reprocessors by CRZgatecrusher has been updated to the latest code standard, and Civilian Industry has been updated to have better late game performance by ArnaudB.

I put in a ton of fixes to multiplayer, and this time I think all the last of the ghosts are gone.  Thanks to Bummeri, greyhoundgames, KaleR, and Jusa for the great reports in that area.

There’s some new stuff I’m planning for post-DLC2 with alternative game modes, but it will have to wait a few weeks at the moment.  You can read the current iteration of that design here: https://docs.google.com/document/d/1PkSQoFIYZDN42jaYvjQ_pLGGWYJrYq4mfhFZvfJjNyk/  It’s open for public comment.

For the next couple of weeks, I intend to focus just on bugfixing, MP, and DLC2 icons and art.  Then on to game modes, etc, after DLC2.

AI War 2: 2.809 Self Optimization

New build! https://wiki.arcengames.com/index.php?title=AI_War_2:Finalizing_Multiplayer#2.809_Self_Optimization

This one is mostly multiplayer-focused, but it has some core speed improvements to the singleplayer simulation as well as some bugfixes that also benefit everyone (particularly those with really fast AMD processors).

This also sees a number of improvements and updates to the SirLimbo suite of mods, and Space Planes and Expatriates have gotten some solid balance adjustments from CRCGamer.

So, what of multiplayer? This release is a pretty big deal! First off, major thanks to Bummeri and abuchris and their MP groups, because this would not have been possible without them.

1. There were STILL some ghosts possible on MP clients, but those seem to be well and truly dead now from several angles.

2. There was a major amount of ship “rubber banding” happening in combat with the AI sentinels in the last couple of weeks, due to a bug I accidentally put in when optimizing bandwidth a couple of weeks ago. That’s now fixed.

3. The sync and ship-check data now uses vastly less bandwidth, and is structured so that it won’t ever flood the client with too much information. There’s now a call and response (ack, in network terms) going on, and this helps the network self-regulate to whatever its environment is. In other words, for this part of the network data, if the connection is slow and flaky, it will slow itself to compensate. If it’s a speedy lan, it will up itself to match that. Overall in most cases this results in a lot of bandwidth reduction, and even more importantly it removes cases where potentially the client could get message-logged and get a lot of command lag from that.

MP is looking a lot more reliable now, knock on wood, which is really exciting. This has been quite a journey for it.

Enjoy!

AI War 2 v2.802 Multiplayer Steams Onward

New build! https://wiki.arcengames.com/index.php?title=AI_War_2:Finalizing_Multiplayer#2.802_Multiplayer_Steams_Onward

We briefly had a v2.801, but had to revert that because it had a couple of critical bugs. The changes from that have been included in this new build, which runs great. Overall this is just a laundry list of bugfixes and tweaks that people reported, but most of them are centered around multiplayer — specifically on Steam.

Our dalliance with the Steam P2P networking framework is likely coming to an end, because that was incredibly unreliable and a lot of people actually had commented that other games had problems with it, too. That leaves us with Steam Sockets, which is Valve’s newer networking model, but it doesn’t support multi-channel data, which causes a lot of slowdown for this specific game. Thankfully, Steam Sockets does support multiple ports, so I’ve adapted it to use four ports as if they were four channels, and the performance is through the roof from that. Additionally, we now support using Steam Sockets either in a relayed fashion (goes through Valve’s network, which they say is faster than the general Internet backbone, but varies a lot based on where you and your friends actually live), or via a direct fashion (just connects you and friends directly, even across a LAN if need be). The direct fashion is WAY faster in my experience, but it’s slightly more of a pain to set up (host tells others their IP).

Badger also slew his own dragon, which was a way for the AI threat against the dyson sphere to turn against you unexpectedly. It was actually a general memory leak that has been around since October 2019, as well, so this was really a great one to find and fix. Not sure how much this may have been negatively impacting performance in some games.

The load game menu also now performs better when you have a really huge number of savegames or campaigns. Previously it had an annoying delay when first opening.

Enjoy!

AI War 2 v2.800 Released! “The New Paradigm”

It’s been one hundred and twenty-nine days since the last major release writeup, with forty-nine releases in all (all on the public beta branch), and notes starting here and spanning a further… one hundred and four thousand words.

That is literally midsize novel-length.  If you haven’t been reading as it went, I’m not sure that I can quite summarize everything, so let’s hit the high points.

The TLDR Of The Paradigm Shift

“Everything is the same but also different” is a good way to phrase this, I think.

Most of the central concepts of the game are the same — how combat works, how the economy works, what techs there are, how you upgrade in broad terms,  and so on.  Much of the new version should feel very very familiar, which is of course the idea.  If you are a player with next to no hours under your belt, the two versions are pretty much indistinguishable except for the many UI improvements.

And yet.  If you have a dozen or more hours in the game, this is going to feel like VERY alien territory for a short while.  Essentially everything you ever knew about the meta for the game is changed in very drastic fashion, and even some of the major goals of the game (like Global Command Augmenters) don’t exist anymore.

Word from most of our beta testers has generally been along the lines of “holy cow, this is vastly better in almost every way.”  (The second bit of opinion is also “hey, the game got a bit easier — so many bump the AI difficulty up by 1 from what it was before for whatever your play level was.”)

Anyhow.  The game’s meta allows for more playstyles, is more flexible, is more fun, and is still plenty challenging if you tune your difficulty or add extra factions.  As to what changed and why, I’ll get into the major items down below.

We also have a wide array of under-the-hood improvements for you in this build, plus tons of new mods by independent mod authors.  Our second paid expansion for the game, Zenith Onslaught, is coming May 18th with an absolutely gargantuan amount of content.

New Video Tutorials

While this rarely happens, the meta of the game has shifted dramatically over the course of the beta. Basically all of the older video tutorials for this game are now nonsensical in the new paradigm.  They give advice that is now blatantly backwards, they talk about units that don’t exist, and they describe a meta that has entirely moved on.

Thankfully, both Strategic Stage and eXplorminate Rob have been making new videos for you for the last few months.  Huge thanks to both of them, and also to the mountains of suggestions from both of them that helped to refine this new Paradigm over the course of the beta period.

Here are their suggested starting points:

Area 1: Balance Curves

This is the first thing that chucks the old meta out the window, and it’s paired with lots of subtle balance changes to a variety of techs and ships.  But, essentially, the way in which you get stronger is fundamentally different.

Old Meta: You can invest in limited technology pairs to get a few ship lines to Mark 7.  Whatever fits with that is pretty much what you have to stick to.  Anything outside of this is basically chaff, and potentially quite useless.

This means you were heavily dependent on the RNG, and have a small force of elite units mixed that you use, with a large group of ships that may not even be worth it to bring to battle.

New Meta: Aim for mark 4, not mark 7, in most cases.  Try to get as many to mark 4+ as possible, if you want maximum strength.  The ramp-up of a single unit is still linear (thus mark 7 is stronger than mark 4), BUT the number of ships you are granted goes up rapidly in the lower marks and tapers once you reach mark 4 (for strikecraft; for frigates, it goes more to mark 5, and for turrets it’s mark 6).

Don’t worry!  You actually get even more ships at mark 7 than you would have had in the old paradigm.  But if you are minmaxing, or even broadly trying to optimize, investing your science points super narrowly is no longer ideal.

TLDR: it is way more viable to upgrade widely, while still investing deeply in a few specialist areas.  You’ll use more of your forces, have vastly higher strength in general, higher unit counts, and more flexibility in how to play.  You’re free of the shackles of the RNG, while still needing to adapt to what you find.

If you want the really long explanation of all of this, there are multiple spreadsheets for you to read if you want.  They’re all linked there in the release notes.

Area 2: More Asymmetry

You and the AI are now MUCH more differentiated.  The AI no longer gets frigates at all, but their guardians are way more fearsome.  AI waves are vastly larger, but so are your defenses.  The AI has more nasty tools in more places, but you have more ways to hack or bypass or even take them over.

TLDR: essentially the AI and the humans both got massive makeovers, both got more exciting, but also both diverged increasingly from one another.

Area 3: Less RNG

Old Meta: There were many places where you were handed a very specific ship, or three ships, and you got no choice relating to them.  Take them or don’t.  In some cases, you could hack to do a “re-roll” and see if the new options were more to your liking.  This was incredibly suboptimal.  It encouraged both save-scumming and a gambling-style mentality.

New Meta: Most places that offer you a ship now offer you only one at a time, BUT give you a choice between something like 6-8 options.  There’s no such thing as a gambling-style re-roll.  In most of these locations, once you select your first ship, it wipes the slate and gives you a new array of options.  You can’t save-scum to optimize this (that wastes your time!).

TLDR: You have a LOT more choice now, but it’s more meaningful choice.  You may not get your exact favorite units, but you can get something that fits with the current campaign in some way.  You are encouraged to explore new units, but not forced to do so.

Break For: Technical Improvements

Let’s take a break from discussing the meta, and talk about the technical improvements.  Briefly.  Essentially:

  • We’re running a newer version of the unity engine.  This runs smoother for most everyone, but some very old Windows 7 machines or High Sierra machines may have problems.  Both of those OSes are old enough that they do not get even critical security updates from Microsoft or Apple, so you are strongly advised to update in both cases.
  • OpenGL support on Mac OSX is removed, but Metal has been optimized and polished to work super well.  This is basically leaning into how Apple prefers games to work, and the results are actually quite stunning even on really old hardware that is below minimum system requirements.  My main mac I test with is a 2011 Macbook Pro that is well under minimum requirements, and it runs far more smoothly now.
  • RAM usage has been optimized for the base game and the first DLC, to a huge extent.
  • The way we draw things like circles in the game has been improved so that it’s more attractive, and way more efficient.  If you draw a bunch of range circles, it’s now both prettier and more performant.
  • Linux support also got some various boosts, and Vulkan on that and other platforms should work much better now, too.

Area 4: Science Refunds

Old Meta: You spend science to upgrade your ships  or fleets, and it’s gone forever.  If you find something later in the game that makes you wish you had chosen differently, too bad.  For this reason, most players would “float” large balances of un-spent science points until late in the game.  This actually was the single largest thing contributing to the complexity spike leading into the midgame, in my opinion.

Related: Hacking Points (HaP) were also spend-and-gone-forever, but for most players there is so little of worth to hack that you will have an abundance, making this kind of a non-factor.

New Meta: You still spend science to upgrade your ships or fleets, but you can get it back at a later point by using a new button at the bottom of the Science sidebar tab.  This will cost you some hacking points (HaP) to do, so you can’t just do it infinitely, but it’s a very attractive offer and allows you to go all-in on science during the early, middle, and late game.  It allows you to transform your empire as you grow and as you find out more of what is available to you, which is extremely nice.

AI War 2 is very much about adapting and working with what you have on hand. The ability to respec your spent science, both in tech categories and individual fleets/command stations allows you to be MUCH more flexible than before. So start experimenting!

Related: Hacking Points are still spend-and-gone-forever.   And you have more than ever.  However, now there’s a LOT more to hack, and that is brought into the forefront in general.  Some folks (like Strategic Sage) still carry large balances of extra HaP as they play, but most playstyles will see you having to make fairly tough calls with how you use these.

TLDR: Science points now firmly represent empire-design, and as such allow you to make changes  as you go.  Asking you to commit to techs forever, based on your limited early game knowledge in any campaign, is just plain unfair and unfun, so is gone.

Hacking points, however, have stepped up to occupy the role of “decision with long term consequences, but you need to make it anyway.”  The nature of these is that using them is substantially less stressful, but still impactful.  I want both elements in the game, but I don’t want you (or me) to be stressing out about the long-term side of things above a certain threshold.

Area 5: Hacking, In General

Old Meta: The interface was very clunky, but you could hack to sometimes weaken some AI stuff, but not much of it.  You could also sometimes hack certain buildings to gain new powers for yourself.  But overall you could honestly ignore a lot of this if you were not playing on a high level.

New Meta: The interface is pretty and helpful, and the number of things you can hack — enemies, friends, even yourself — is insanely high.  You hack for new ships, you hack to steal superweapons, you hack to turbocharge your golems, you hack to transform your transports or battlestations.  And occasionally to get some science points refunded.  Additionally, there is a small bonus for taking planets adjacent to your own. While it isn’t a lot, it does add a nice little dynamic.

The effect this has on the game is immense, because (for instance) if you previously felt like your Armored Golem was a paper person in the presence of your current foe, you can not only upgrade it via science, but you can also hack it to directly improve its hull.

TLDR: Your hacking points are now super precious, because now it’s a target-rich environment for them.  You may still have extras at the end (the float is not a bad idea), but there are easily 5x more things for you to do with hacking points than you can actually ever acquire.  So your priorities will reveal themselves.

Area 6: “GCAs” and Battlestations

Old Meta: You start with one battlestation.    You can capture more.  There are also citadels out there, which are a bit overpriced but kind of the same thing.  They all are what they are when you find them.  For most of your defenses, you will rely on your command stations, and finding Global Command Augmenters (GCAs) to unlock loads of new turrets for them.  You get new turrets in overwhelming lumps all at once.  In some cases you have to hold planets if you don’t want to spend hacking points.

New Meta: You start with TWO battlestations, and can never get any more of them.  You can choose to capture Citadels, which are way more expensive but also way more useful.  GCAs are gone, and Turret Schematic Servers (TSSes) and Other Defensive Schematic Servers (ODSSes) are out there instead.

The hack for a TSS or similar can be done 2-3 times, and gets more dangerous and also more expensive each time you do it (per building).  You get to choose ONE line of turrets or other defenses to add to your kit, and then it rerolls for a whole new set of choices after that.  Most of the time, your hacks will benefit all of your command stations AND your battlestations and citadels, but you can also do special hacks that give extra ship cap for that turret line to just one battlestation or citadel, instead.

TLDR: You’re no longer so flooded with information about new things you just got (“here are four new turrets, all at once”), and you can also choose specific units that you want to acquire, with some limitations.  In other words, your empire is designed with much more intention, and there are no “useless units” cluttering things up all over the place.

Break For: UI/QoL Improvements

Let’s take another break, this time for something that has been very exciting to basically everyone who plays the game:

  • The planet sidebar now has many new options, including list view, views broken out by faction, new sort options, and even fleet displays.
  • There’s a handy writeup in the How To Play menu under  Getting Started that explains how this works in more detail.
  • Seriously, that new planet sidebar is fire.  You can make it look like it always used to if you prefer, but the usability of it has gone through the ceiling.
  • The various settings-style menus now not only have subcategories (THANK you, organization!), but they also divide their content into regular and advanced.  The advanced content is just one click away, but otherwise kept out of your face unless you turn it on.
  • You can now multi-move ship lines around, or even swap fleet leaders between fleets.  There was much rejoicing.

Area 7: Other Capturable Changes

There’s a lot, so let’s go through them just briefly:

  • Fleet Research Stations (FRSes) actually are super useful now.  Their units are not so overpriced, but also only work on smaller individual fleets.
  • IGCs and similar have been removed, as they were redundant with other aspects of the new meta.
  • The Advanced Research Station (ARS) now uses that new style of hacking for units that gives you more choice in a serial fashion, without ever needing rerolls.
  • Fleet Capacity Extenders (FCEs) were also removed, as they clashed with the new FRS design, and also were pretty darn redundant now that you have so much choice directly from the ARSes and so forth.
  • You will capture comparably few fleets, and you can’t make custom ones anymore from the sidebar, so you won’t have a bunch of idle transports sitting around anymore on your home planet.  You have enough to meet your needs, but rarely too many more than that.
  • In the event that you DO have extra transports even in the new model, they can now be strategically placed on economy-focused plants to give a passive economy buff if you leave them on that planet for at least 5 minutes.  Even your “useless” stuff is now quite useful.
  • When it comes to upgrading your Fallen Spire cities, this is now done via clicking a notice at the top of the screen.  Previously it did it automatically, sometimes in a non-ideal order.  Now you get to control the order in which it happens.
  • Outguard units are easier to get into contact with, and hopefully will become a part of more midlevel player strategies.  Advanced play has used them for a while, but they are vastly easier to understand now.

Area 8: A More Active AI

This is another one that is hard to summarize into any one thing.  But in general, here are some highlights you will quickly notice:

  • AI waves sizes are CRAZY stronger.  They were previously incredibly rare and very weak.  They are still not something that is likely to end the game for you, but they actually factor in now.  They are also no longer cowards. They used to run away the moment you out-strengthed them in turrets. These new waves are a part of the “Relentless AI” subfaction; that means they will fight to the death and constantly seek to do battle with you.
  • Phase 2 of the AI Overlord is a lot more interesting and intense, and the final battle got several buffs in general.
  • AI Reserves are smarter.
  • So are the AI Praetorian Guard, Hunter, and Warden.
  • The AI Warden in particular is way more aggressive, fine with losses, and able to regenerate itself a bit faster than before.  It doesn’t have to worry about carefully preserving itself, and in some ways is actually more similar to your forces in that it can take a beating, regroup, and try again.
  • Overall the style of the AI is less “try to wait until the player cannot possibly win before we attack at all” and is instead “harass them at various levels constantly, and exploit any openings that come up… while holding some forces in reserve for those decisive strikes that are so effective when timed well.”

Area 9: Massive Balance Work

This is the work of many people, mostly longtime players and/or modders who have turned volunteer.  ArnaudB, CRCGamer, and Zeus Almighty are the three largest direct contributors, but Strategic Sage had a lot of excellent advice, and Metretek kept pushing the boundaries of ultra-high-level play.  Among so many others!

Let’s try and hit some highlights:

  • The balance of battlestations and citadels is all new, as befits their new status.
  • The balance of turrets has been further refined, often with a lot of help from user Democracy (who designed a lot of the DLC1 turrets).
  • Frigates are actually useful now!  Their balance work is still ongoing in some ways, but they have shifted from being a metal sink into being something you can main.
  • The way you generate metal and energy has been dramatically updated, in terms of which mix of command stations you should employ.
  • Randomized ship line amounts are gone, so each line you get now has a specific hand-designed meaning.
  • Forcefields and frigates and other small-cap units like that usually do not gain cap anymore as they mark up; instead you start with more of them to begin with.
  • Forcefields in general have had several balance overhauls, leading them to be less overpowered in average games but also still viable in Fallen Spire (and other mega unit) games, while scaling their tech cost to be more linear.  You also don’t have to worry about them getting knocked out of place anymore.
  • Visibility from logistics stations and military stations is increased a lot, plus you can place a new unit called Spies as pickets.
  • A ton of other factions got upgraded to be more useful, including the Marauders and Scourge.  This is to say nothing of mod factions, many of which were added outright or were majorly expanded.
  • Alien ships that you can acquire via hacking are now a lot better deal and more exciting.
  • You’re no longer quite drowning in turrets so much as you were before, and energy and such has all been rebalanced, as has their attack power.  You can very much defend yourself, but it’s much less of a hassle to do so.
  • Brownouts now have a grace period and are harder to trigger, but last a bit longer when they do happen.

What’s Else Is New?

  • I mean… it’s really a lot!  You’ll notice little things on almost every screen of the game.
  • In a lot of cases, it’s simply more clear and more balanced, or easier to make what you want into reality.
  • The Fallen Spire campaign from DLC1 now has a vastly more robust set of lore entries, many of which are adapted in from the beloved campaign in the original AI War.
  • On Steam, there’s a new “beta” branch pointing to the last  pre-paraidgm-shift build.  (z_historical_2_715 Release 2.715 – The last version before the Major Paradigm Shift of Early 2021.)  So if you had a game in progress that you’d prefer to finish in the prior style, please feel free!

More to come soon!

Multiplayer Schedule?

Both shared-faction and multi-faction multiplayer are in public beta at the moment.  Details here.

Right now there are continual intermittent bugs that we are sorting out as reports of those come in, but most of them do not prevent folks from having a great session.  Some of these are in mods, and we are helping with support on that where we can within reason.

All of the features of all styles of multiplayer are here now, so it’s just a matter of ironing out the last bugs.  I also recently added a new Steam P2P networking support option, but Valve has been having some server issues and so we still retain the other Steam Connection-Oriented (Steam C-O) framework for folks who run into issues with that.

We were planning to dump Steam C-O in favor of Steam P2P, since P2P is better when it works, but given the ongoing issues Valve seems to have had with P2P for several months, we may keep both indefinitely.

Both GOG and LitenetLib continue to work well, and both have been upgraded to use multiple data channels like the Steam P2P mode is able to do.  This is a big advantage compared to Steam C-O in terms of connection throughput.

DLC2: Zenith Onslaught

Our first non-kickstarter-related expansion comes out in May of this year.  Probably.  We’ve had to push it back a number of times, partly because of this large Paradigm Shift (worth it!), and partly because this thing is so huge.  You can read all about it, at least in a limited preview format.  You can also watch me working on the art for it here on discord.  Sometimes I also do livestreams on youtube, which you can watch later if you miss them.

This expansion represents a large opportunity for us, since it will coincide with the game fully launching its multiplayer mode.  A lot of news outlets didn’t fully cover the original launch of AI War 2 because we released it in a crowded season and it came out with too little advance notice.  So we’re trying to turn that around with this expansion and hopefully get some more traction with a wider audience for the base game itself.  Part of why I was so intent on refining the base game so much was that I really wanted to make it easier for both new players and veterans to get the most out of it.

DLC3: The Neinzul Abyss

Our second piece of DLC for 2021 will hopefully come out before the end of the year, and you can read about that here.  The themes for this expansion, so far, are really focused on some roguelike options, as well as new ways to play.

On the roguelike front — which is all optional, but really fun for those who like the feeling of raw exploration — there are new random factions, plus all sorts of ways to turn any campaign into something you enter into fairly blind and discover as you go.

When it comes to new ways to play, there are TWO new player factions.  Normally you play as what we call a Human Empire, which is basically just “the human faction.”  But DLC3 adds:

  • Our new take on the Champions faction from the first game, which includes ways to explore the 5th dimension and fight all sorts of new foes there.
  • A surprising new Necromancer faction, which allows for a partner (or two or three) in multiplayer to take control of the zombies that are generated, as well as become a zombie-making machine in general.  Build necropolises, and so on.  For once the necromancer in a story isn’t the big bad… it’s you.
  • Yet another surprising new mechanic, Vassals let you have a buddy-NPC faction that you give more direct orders to.  This is backwards compatible with the base game and other expansions, and it’s expected that many mods will likely also want to hook into this.

And this is before we get into the Neinzul faction that I’ll be designing, and which can be friend or foe.

Remaining Kickstarter Stuff?

No progress since my last update, but plans have crystalized some.  The actual work is all to be post-DLC2. I covered what is left back in update #65.

Interplanetary Weapons are something still coming for free to the base game (they were a stretch goal), and those should  be a thing this summer.  I keep putting this off because it’s hard to make them as epic as I’d like.  Our original stretch goal just described guns that can shoot neighboring planets, but… that doesn’t really affect how you play all that much.  My goal with these is to allow for new strategies both in offensive and defensive areas.  I have some solid ideas for a few designs that may work, but we’ll have to test them and make sure they are suitably awesome.

The backer planet naming will happen around the same time, as well as the ability to send some taunts back from the player at the AI.  As far as player taunts against the AI goes, Badger had the great idea that this should actually be a bit of a prestige thing, where it actually makes the game harder but then gives you special accolades at the end.  “I won the game on difficulty 8 with two taunts!”  etc.

We’ll probably do another batch of AI taunts as well, and the Cyber Cipher reward for mysterious messages will be something that we tackle during that DLC3 period.  Design and Name an AI is something that will be around the same time as the third DLC3, same as the Text-Based or Design-based Mercenary Stuff.  A lot of new lore stuff has been getting integrated lately, and we’ve been figuring out how to do that in a non-obtrusive way that still lets you get at pages and pages of context if you want it.  That’s an exciting thing, because the lore is deep and wide, but also not something we want in your face in a glaze-over-RPG-text fashion.

There are two lingering art-related backer rewards I still need to follow up on, but then that’s it.  I’ve been getting much more practiced at digital sculpting and painting, so I’m definitely excited to return to those two, as they were challenging ones.

What Happens After That?

That is enormously up in the air.

The release of this game started out going well, and I think that the reviews that folks have been leaving for the game were a big help for folks passing by at the start.  2020 was a very rough year, financially, though.  The company’s 2020 income fell to less than half of what it was in 2019, and that was already one of our lower years in terms of income.

That level of income isn’t sustainable, even with me being a one-man shop now (volunteers aside), so it all comes down to what 2021 winds up looking like.  So far it is just more of 2020, but I’ve been putting so much effort into refining the base game for a reason.  And we do have those two new DLC planned for this year, along with the final multiplayer drop and so on.  If you’ve been playing the game and enjoying  it, we’d greatly appreciate it if you’d drop by and leave your own thoughts, too.

If the trend doesn’t turn around?  I will likely spend most of 2022 working on other smaller titles in a completely solo fashion, rather than continuing to work on AI War 2 in a fulltime capacity.  And after that, we’ll see.

AI War 1 was a game that I stepped away from after four years and three DLC expansions, but then we kept up support for it with periodic updates and yearly DLC for another few years after that.  That worked well, but that was when we were a four-person studio.  I’d like to do something similar here if I can, but a big part of this may wind up being partnering increasingly with modders, we’ll see.  The mod scene for AI War 2 remains vibrant, and I hope to see it grow.

This game is a financial loss for me on paper, but there was a lot of R&D work that will pay dividends to future titles, so I have to partially look at it as an investment in infrastructure.  But since Arcen is a one-person shop again, dividing my time between multiple projects will be an “interesting” exercise.  Anyhow, I mainly want to have this in a state I’m proud of, which I can now finally say is the case without any reservations.

Please Do Report Any Issues!

If you run into any bugs, we’d definitely like to hear about those.

Thank you!

Problem With The Latest Build?

If you right-click the game in Steam and choose properties, then go to the Betas tab of the window that pops up, you’ll see a variety of options.  You can always choose most_recent_stable from that build to get what is essentially one-build-back.  Or two builds back if the last build had a known problem, etc.  Essentially it’s a way to keep yourself off the very bleeding edge of updates, if you so desire.

The Usual Reminders

Quick reminder of our new Steam Developer Page.  If you follow us there, you’ll be notified about any game releases we do.

Also: Would you mind leaving a Steam review for some/any of our games?  It doesn’t have to super detailed, but if you like a game we made and want more people to find it, that’s how you make it happen.  Reviews make a material difference, and like most indies, we could really use the support.

Enjoy!

Chris

AI War 2 v2.701 Released! “Multiplayer Shared-Faction Reaches Beta”

It’s been sixty-six days since the last major release writeup, with THIRTY-FIVE releases in all, and notes starting here and ending here.

We are now in a mix of multiplayer alpha and beta!  (Depends on how you play, some methods are feature-complete and others are not.) If you want the full info on multiplayer’s current status, the place to look at that  is here.

Badger’s Retirement

Okay, this would be a really really long digression, but I hope you take a moment to click over and read about the legacy of Badger and Puffin.  Both have retired from working on the game fully (although both still hang out and occasionally poke things in), and so I’m now the sole remaining active developer on the game.

With that being said, this is “news” as of a month and a half ago (for Badger — for Puffin, it was much earlier this year), and we’ve had 28 releases since Badger retired, so I do okay on my own.  This isn’t a cause for concern, but rather a moment to take stock of their achievements and celebrate them.

It’s also worth noting that Badger is still doing some remaining work here and there on DLC2, and he’s already decided to return and is working on content for DLC3.

New Main Menu

You might have noticed the new main menu if you’ve logged into the game in the last month:

If your computer fans turn on and your FPS is only like 30, please don’t freak out.  This is actually the (by a really large margin) most intensive scene in the entire game.  I get 90fps on it and in the game on my main dev machine, and a measly 30fps on my under-min-sys-requirements mac computer, but it’s usable on both.  Even my below-specs mac is getting like 60-90 fps in-game with ship models turned off.

The main menu might seem like a strange thing to revise, but it’s the first thing that you see when you load up the game.  We wanted something that felt more epic and exciting, and that had a darker and more appropriate thematic feel for the game.  Personally, I also wanted a view from inside a spaceship looking out, since usually we only ever see spaceships from the outside during actual gameplay.

I also majorly updated the ending scenes (both win and loss), so those are more epic now.

UI Overhaul, And Usability Galore

Okay, so for one thing I did a complete visual overhaul of what buttons look like, and backgrounds on all the UI bits, and things like that.  This no longer feels vaguely website-ish.  It feels like… well, like a hardcore strategy game with a lot of space themes.

But that’s not all we did.  There are new functions for doing searches for units or planets by name on the galaxy map.  There are a ton of new galaxy map filters that show more information of various sorts.  You can easily see where threat is, or the hunter or warden, etc.  You can edit planet names, set priorities per planet like the first game (but with more options), add narrative notes to planets, and more.

You can also ping planets or locations on planets, and you can ping with multiple colors to help communicate meaning while you’re discussing on voice chat.  The notices up at the top of the screen now have backgrounds that indicate their severity/importance, and are automatically sorted by that.

There’s also a new fleet status window that Badger added despite being retired (he actually did a ton of QoL stuff in the last month, since he was actually starting to play both on his own as well as with his family and friends and thus noticing more things).  The fleet status window is particularly helpful for keeping an eye on what is going on in your empire, or in all the empires of players in multiplayer.

…but it’s been 66 days.  Come on, we’re just getting started.

AI Improvements

  • The AI Hunter has gotten more intelligent multiple times over, and fireteams in general have gotten smarter.  You have pre-retirement Badger to thank for these.
  • Deepstriking (the AI Reserves) got a number of AI updates from Badger right before he retired.
  • The way that AI Sentinels handle their reinforcement budget was completely overhauled by me, making them much more threatening and interesting.
  • The way that AIs use turrets has also been redone, so that they really don’t use remotely so many as before.  They really should be putting their resources into things that can strike you offensively, so the planets with a bunch of turrets are now far more rare.
  • Turrets have actually been rebalanced fairly substantially, largely thanks to post-retirement Puffin, who was still collecting ideas from the community and implementing them along with his own thoughts.
  • We made a number of changes to how strength values are calculated, to more accurately represent how dangerous ships actually are.  This makes it easier for you to make good decisions, but also plays directly into the intelligence of the AI and other NPC factions.
  • There were a number of cases where the AI Sentinels would hold onto threatfleet ships (which are not very smart) for too long rather than giving them over to the Hunters.  We looked at that and I decided to just brute force them into giving their ships to the Hunters if they can’t get whatever they think they are doing done in 3 minutes.
  • Thanks yet again to post-retirement Badger, various factions including the nanocaust and marauders are able to invade your galaxy in a delayed fashion, which is pretty cool.  Rather than having them there from moment one, they show up a while into the game.

More Mods!

  • Another new included-by-default mod is now in place: Civilian Industries, by StarKelp.  This is turning out to be a really popular mod, which involves a lot of defensive and economic buddies hanging around.  Strategic Sage has been doing a video series with the Civilian Industries helping him against the Scourge from DLC1.
  • NR SirLimbo has been adding a prolific number of mods, as well as several frameworks for modding.  His Extended Ship Variants (for the base game and for DLC1) have become really standard fare for a lot of players, and his Kaizer’s Marauders are a vastly more complex and dangerous interpretation of the base game Marauders.  At the moment he is working on a new and evolutionary style of Devourer, but that is currently still in earlier testing and not yet included for everyone in the main game.
  • I did an enormous overhaul of our XML Parsing capabilities, upgrading it so that the data is parsed faster, and also more correctly.  This fixed up a number of blocking issues that were preventing certain mods from being possible, and consequently we saw a huge uptick in new mods right after that.
  • Oh man, the mods from NR SirLimbo kept coming!  There’s a micro mods collection in there now, too.  He’s been absolutely prolifically busy on several fronts.  It’s hard to understate just how involved his Kaizer’s Marauders are, in particular.  And his AMU tool is there to support any modders who want to use it, making it easier to make complex mods like his.

Multiplayer Bits

  • Multiplayer itself has seen a ton of improvements at a technical level and otherwise, it probably goes without saying.  But this has been the major focus of mine during this period, despite the detour into quality of life improvements.
  • Multiplayer went through a number of changes at a technical level as I experimented with how to get the smoothest experience in terms of sync, while at the same time keeping things moving.  The end result was not what I had planned on, but is instead something that relies on data I collected in real world use cases.  It works ridiculously well.
  • The ability to swap ship lines between players was added by NR SirLimbo, which was really kind of him and saved me having to do it.  He also made that interface a bit less overwhelming in general even in single player.
  • I added in the ability to finally share control of a single faction, and that’s the mode that is just now going into beta (aka feature-completeness).  The multi-faction mode will hopefully join it in beta status in the next week or two at most.

Other Visual And QoL Improvements

  • I redid all of the visuals for area of effect attacks, most notably tesla attacks.  It looks SO much cooler now.  The old version was okay, but not nearly as varied.  And when I upgraded the lighting pipeline during the runup to DLC1 late last year, the AOE visual effects actually wound up taking a step down in visual quality.
  • I added a new Stationary Flagship Mode, which I had expected to be popular but actually was almost universally hated.  But it is still something that you can enable if it solves a gameplay problem you have.  A few people were enjoying it, so that’s a win in my book.  But it’s no longer on by default for everyone.
  • The way that galaxy map links are drawn has been updated to be a gradient of the two colors of the owners between those planets, which was a cool addition of post-retirement Badger.
  • For a long while, we’ve had some trouble with trying to use one button for toggling on or off modes like pursuit and attack move and so on, and so I split those into two functions where you can clearly tell it if you are turning them on or off.  This solves a lot of intermittent frustrations people were having.
  • Post-retirement Badger added a whole host of other quality of life improvements.
  • Post-retirement Puffin added about thirty-six new space backgrounds of various sorts, for use in-game and on the galaxy maps.  These were mostly created using the shader tool I set up a few years ago, but the results are the result of a lot of artistic work and experimentation on his part.  They really spruce up the variety in the game, and in particular make the galaxy maps look nicer.
  • I also spent a goodly while making it so that we are now able to include arbitrary sprites in text.  This involved further customizing our version of TextMeshPro, which now has a number of unique features for us.  This paired well with our overhaul of the icons for various resources, and in the future we’ll do things like embedding ship icons in tooltips.
  • The visuals for shots themselves are now a lot more appropriately-scaled for various zoom levels, so battles look nicer.
  • There are also now battle indicators on the galaxy map, making it more obvious where there are fights happening in your territory without it becoming a circus.

What’s Else Is New?

  • Astro Trains got a buff to make them more interesting.
  • Post-retirement Badger also added a variety of roguelike options for not revealing things about what the galaxy you are entering entails, which is a cool feature.
  • A bunch of performance improvements in text generation, and UI updates in general, have been made.  SirLimbo and I wound up going down a giant rabbit hole on the text generation in particular, but it makes it so that really length text narratives and dynamically-generated lists of ship tooltips no longer suck the performance out of your game.
  • Error handling is also vastly more robust in the game, and when errors happen you now get much more information about what is happening and especially if there are a bunch of silent errors hammering your log.
  • Ever thought that “snipers and drones are useless, because they just aggro entire enemy planets and get me killed?”  Well, they now have a new aggro invisibility ability, which solves that problem and lets them remain useful without being unfair or annoying.
  • For our linux players, we’ve added a variety of tools to get around the unity bug with mousewheel scroll being backwards, so that is one annoyance off the list.
  • The number of bugfixes and general balance tweaks are too staggering to recount, but it’s a lot.

More to come soon!

Multiplayer Schedule?

There are two ways of playing: a shared faction, which is now in beta and thus basically complete aside from bugfixing; and multiple faction, which still has some known issues and missing features and thus remains in alpha.

I expect to sort out the remaining known issues, while fielding ongoing bug reports, over the next 1-2 weeks at the most.  At that point, multiplayer is effectively finished aside from just giving it time to collect any more bug reports people come up with.

One thing I should point out is that this is an insanely complicated game from a technical standpoint, and so the more testers the better.  The game might be working perfectly for most people in most situations, and then you come along with your friends and run into something catastrophic and wonder how anyone could possibly play this.

Send me your bug reports, and I can generally have that stuff knocked out in a couple of days.  But without your bug reports, if other people aren’t running into it, I’ll never know it’s there.

DLC2: Zenith Onslaught

Our first non-kickstarter-related expansion comes out in early 2021.  Maybe January, or potentially February.  You can read all about it, at least in a limited preview format.  We’ve had a number of testers banging on this for months now, and the detailed unit design and art to go with it are the last pieces we’ll be putting together.

This expansion represents a large opportunity for us, since it will coincide with the game fully launching its multiplayer mode.  A lot of news outlets didn’t fully cover the original launch of AI War 2 because we released it in a crowded season and it came out with too little advance notice.  So we’re trying to turn that around with this expansion and hopefully get some more traction with a wider audience for the base game itself.

DLC3: The Neinzul Abyss

Our second piece of DLC for 2021 will hopefully come out more around the middle of the year, and you can read about that here.  It’s something that came into existence largely because Badger kept adding too many things to DLC2.  DLC2 was either going to be massively expensive, or any other DLC we ever did was going to look paltry and small by comparison.

We made the sensible decision to split these out into two products that we can thus offer at better prices — and also take extra time to do cool extra things for DLC3.  I’m looking forward to getting to fully design my first faction, versus just collaborating on factions with others or doing the art and technical support for them.

Remaining Kickstarter Stuff?

There’s a diminishing number of things.  I covered a lot of it back in update #65.  Interplanetary Weapons are something still coming for free to the base game (they were a stretch goal), and I’ll be working on those while I work on DLC3.  The backer planet naming will happen around the same time, as well as the ability to send some taunts back from the player at the AI.

We’ll probably do another batch of AI taunts as well, and the Cyber Cipher reward for mysterious messages will be something that we tackle during that DLC3 period.  Design and Name an AI is something that will be around the same time as the third DLC3, same as the Text-Based or Design-based Mercenary Stuff.  There are two lingering art-related backer rewards I still need to follow up on, but then that’s it.

What Happens After That?

That really depends.

The release of this game started out going well, and I think that the reviews that folks have been leaving for the game were a big help for folks passing by at the start.  2020 has been a rough year, though, when we really look at the data.  The company’s income has fallen to less than half of what it was in 2019, and that was already one of our lower years in terms of income.

We do have those two new DLC planned for 2021, along with the giant multiplayer updates and so on that are free, so hopefully that trend will turn around.  If you’ve been playing the game and enjoying  it, we’d greatly appreciate it if you’d drop by and leave your own thoughts, too.

If the trend doesn’t turn around?  I don’t know, exactly.  The structure of modern online stores may ultimately wind up forcing our hand.  I’d probably have to either choose between working on an entirely new project unrelated to AI War 2, or start working on a sequel instead of more expansion.  Both prospects have a lot of downsides, but they also have some substantial upsides.

Right now I don’t feel super inclined to leave the AI War franchise after all this work and developing this giant engine, so I’m more inclined to stick to something closer to home than try to reinvent the wheel.  If you look at the evolution of AI War 2 since launch, the current build you’re able to play is already practically AI War 3.  It looks better, plays better, has better AI, has more content, and is much more technically advanced.

Right now the frustration is that more or less we’re doing most of that work for free (personally I have still lost about $240k in making AI War 2, versus earning any actual money, if you look at my spent money versus earned), and it’s hard to get press attention for a “year old game.”  Since we started this project, more than half a console generation has come and gone, sheesh!  I have no shortage of ideas, but I don’t want to work for someone else and right now the open market is feeling fairly indifferent.

I have a lot of hope for 2021, though. :)

Please Do Report Any Issues!

If you run into any bugs, we’d definitely like to hear about those.

Thank you!

Problem With The Latest Build?

If you right-click the game in Steam and choose properties, then go to the Betas tab of the window that pops up, you’ll see a variety of options.  You can always choose most_recent_stable from that build to get what is essentially one-build-back.  Or two builds back if the last build had a known problem, etc.  Essentially it’s a way to keep yourself off the very bleeding edge of updates, if you so desire.

The Usual Reminders

Quick reminder of our new Steam Developer Page.  If you follow us there, you’ll be notified about any game releases we do.

Also: Would you mind leaving a Steam review for some/any of our games?  It doesn’t have to super detailed, but if you like a game we made and want more people to find it, that’s how you make it happen.  Reviews make a material difference, and like most indies, we could really use the support.

Enjoy!

Chris

AI War 2 v2.604 Released! “A Thousand Screaming Idiots”

It’s been six days since the last major release writeup, with four releases in all, and notes starting here and ending here.

We are in multiplayer alpha!  If you want the full info on multiplayer’s current status, the place to look at that from now on is here.  We’ve had the first victory over the AI in multiplayer happen, and we’re knocking down MP bugs steadily.

AI Improvements And Additions

Okay, this is a really big release, actually.  Far more than we had intended to do, but so it goes.

First off, the star of the show is definitely the new “Tsunami CPA” option in the galaxy options screen.  You can turn it on for existing savegames or new campaigns, but temporarily it is off by default.  It turns Cross Planet Attacks into the sort of… scary tidal wave of doom or glory that the pre-3.0 days of AI War Classic used to enjoy.

We’ll always keep the option to have boring-style CPAs in this game, where basically the CPA just releases a bunch of threat that join the Hunter fleet.  That’s… fine.  But as a number of people have noticed, that’s a very anticlimatic result after a scary countdown timer.

The hunter is its own thing, and is intelligent and scary in its own way, but it’s also cautious and coordinated.  That’s the very opposite of what a Cross Planet Attack used to represent, 8 years or so ago, in the first AI War.  A Cross Planet Attack is meant to be a flood of ships from all over the galaxy, only lightly coordinated at best, that wash up on the shores of your defenses and either dissipate or carry the wreckage inland.

So that’s what happens now, if you turn on the Tsunami CPA option.  It’s basically a thousand screaming idiots running at you from every direction, only sort of avoiding danger.  And they go for the throat, too, if they can get past your external defenses.  It’s thrilling and quite unlike anything the AI War multiverse has seen since maybe 2012.  How I’ve missed this.

However, here’s the thing that makes this extra cool and also quite new-feeling: the hunter may be cautious, but it also is quick to capitalize on openings.  And it operates alongside the Tsunami CPAs.  So while those are washing up on your defenses, and you think you’re going to be okay… sometimes the hunter shows up at just the wrong time and tips the balance.  It turns out that a meticulous and ruthless planner, given a thousand screaming idiots for cover, is even more effective.

Moving on from the keystone feature:

In a whole bunch of other areas for the AI, there are things that look on the surface like nerfs to the ship budgets for the AI, but actually are not quite what they seem.

The changes are complicated enough that it’s really easy to misunderstand the implications of them even if you read really carefully.

But to summarize the most important one, essentially the AI is… less reactive in how it applies its budgets when it feels like its king is under pressure.  It now trusts that it has been building a good and solid defense for a long time, and keeps pressing its own attacks on you.

Previously you could run into REALLY protracted final battles with the AI homeworlds, where the AI was being super defensive and making it really hard for you to win… but also really hard for you to lose.  Now the AI final fights won’t be quite so hard to win… but at the same time there is a dramatically higher chance of you outright losing during them.

Aside from this, there are what amount to some legitimate nerfs to the AI in the warden and praetorian guard sub-factions, if those are at their full cap for whatever reason.  Rather than donating excess income to general defenses (which made some AI types turn out to have generalized defenses that were way inflated in an inappropriate way), they just lose that budget.  This is more in keeping with the first AI War as well, and should not affect most games.  A few specific AI types may wind up needing a buff, but let us know how those feel (Special Forces Master and Praetor, mainly).

Oh, also speaking of the AI’s intelligence, the highest-level AIs (difficulty 8 and up) will now underestimate their strength a bit when deciding to engage you.  This will make them tend to engage you with overwhelming force more often, again like the first game.

And in general, turrets were being undervalued in terms of strength, which was hurting the decision-making of all factions.  So the strength values of those have been tweaked upwards (how the strength is reported, not what the damage of the actual turrets is), and that should lead to all factions making more sensible decisions on heavily turreted player planets.

Oh, and it’s harder to bait the hunter into your meat grinders on difficulty 8 and up.  You’re welcome. ;)

What’s Else Is New?

  • There’s a bunch of new little lore bits that now appear in the game when you are getting started!  This includes backstory on the Spire and Zenith if relevant when you find them, and backstory on the AI.  Some of these bits of lore are brand new information, and other are things that were easy to miss.
  • The Civilian Industries mod not only now works again, but also has been getting a number of substantial updates by its author, StarKelp.
  • Lots and lots of bugfixes.
  • One bugfix in particular fixes an issue where all of the fireteam-based faction ships were being lobotomized upon loading a savegame since September 3rd.  So that made the hunter, the nanocaust, scourge, etc, all really stupid for at least 30 seconds after loading a savegame.  That was a one-line typo on my part, but is now fixed.
  • The Nanocaust has seen a bunch of buffs in general, since they were starting to seem lackluster compared to the newer factions that are more powerful.  The devourer golem is coming up soon in terms of getting some new power levels (in its case those will be lobby options instead of a straight buff).
  • In the arena of multiplayer, we found an interesting bug a while back that was causing any ships in transports to get duplicated endlessly on clients, which led to all manner of bugs and eventually crashes.  The bugs we’ve been fixing since then have not been nearly so serious, and it’s really great to see how a variety of people are playing a variety of multiplayer scenarios with success now.  There are still plenty of missing MP-specific features and MP-specific bugs, but it’s coming a long way fast thanks to testers.

More to come soon!

Looking for more information about multiplayer and DLC2?  A recent post on September 25th has a lot of details.

Please Do Report Any Issues!

If you run into any bugs, we’d definitely like to hear about those.

The release of this game has been going well so far, and I think that the reviews that folks have been leaving for the game have been a big help for anyone passing by who’s on the fence.  For a good while we were sitting at Overwhelmingly Positive on the Recent Reviews breakdown, but there have been a lot fewer reviews lately and so that has definitely had a material negative effect.  Go figure.  Having a running selection of recent reviews definitely is helpful, but at least we have a pretty healthy set of long-term reviews.  If you’ve been playing the game and enjoying  it, we’d greatly appreciate it if you’d drop by and leave your own thoughts, too.

More to come soon.  Enjoy!

Problem With The Latest Build?

If you right-click the game in Steam and choose properties, then go to the Betas tab of the window that pops up, you’ll see a variety of options.  You can always choose most_recent_stable from that build to get what is essentially one-build-back.  Or two builds back if the last build had a known problem, etc.  Essentially it’s a way to keep yourself off the very bleeding edge of updates, if you so desire.

The Usual Reminders

Quick reminder of our new Steam Developer Page.  If you follow us there, you’ll be notified about any game releases we do.

Also: Would you mind leaving a Steam review for some/any of our games?  It doesn’t have to super detailed, but if you like a game we made and want more people to find it, that’s how you make it happen.  Reviews make a material difference, and like most indies, we could really use the support.

Enjoy!

Chris

AI War 2 v2.600 Released! “Multiplayer Alpha”

Can you hop into multiplayer and play now?  Why… yes, you can!  There will be bugs, at this point, but we’re well into alpha now, and the first waves of testers have helped us fix a lot of things.

Since the last update post fifty-seven days ago (WHOAH), we’ve had thirty releases, starting with notes here and ending here.

If you want the full info on multiplayer’s current status, the place to look at that from now on is here.

What’s New Other Than Multiplayer Stuff?

  • Heck of a lot of bugfixes and balance tweaks, as you might imagine.
  • You can have multiple Devourers and Zenith Traders if you like.
  • The Imperial Spire (in DLC1) has a number of improvements.
  • Ion Cannons are particularly more effective now.
  • Melee units now do battle far more effectively, too.
  • The way the galaxy map is drawn has had a lot of improvements, most notably in the lobby.  This feels SO much better in singleplayer and multiplayer.
  • Some features from the upcoming DLC2 (which is now pushed until January 2021) have been backported to the base game.  Notably, you can now hack Dyson Spheres like an ARS.
  • Dark Spire got a number of improvements, including more interactivity with other factions that hate them.
  • Hit the R key to reset the camera rotation and orientation, at long last.
  • Improvements and flavor updates to Human Resistance Fighters.
  • Lots of changes to AI Eyes to actually make them formidable again.
  • Lots of improvements to mod compatibility, which broke code-based mods temporarily, but ultimately make them work better in both singleplayer but especially multiplayer.
  • Scourge (from DLC1) intelligence improvements.
  • Civilian Industries By StarKelp has been added as our second off-by-default mod that we’re distributing for the mod author.  It may be broken at the moment because of some of the overhauls relating to multiplayer, but we’ll have a working build again as soon as that is ready from the author.  It’s a very cool mod.
  • More Starting Options By ArnaudB has been added as our third off-by-default mod.  This one adds a lot of new options for starting fleets for you.
  • There is a new “Find Planet” command (cmd:findp yourtexthere) that lets you find planets by name, which is super useful.
  • Better Default Screen Resolutions!  This has been bugging people for a while.  It’s now defaulting to your desktop resolution and fullscreen windowed mode when you start the game for the very first time.
  • More voice lines related to the nanocaust and a few other factions.
  • The AI difficulty descriptions have been completely rewritten and are way more clear as to what you can expect, without making you feel bad.  Huge thanks to Tzarro on this!
  • “Fireteam dynamic resizing” is a new feature that leads to massive performance gains in very late-game situations with a lot of enemy factions in play.  Huge win by Badger.

More to come soon!  Read on to hear about multiplayer and DLC2.

What’s The State Of Multiplayer?

If you want a truly exhaustive writeup about multiplayer, this has everything.

We have now been in multiplayer alpha for sixteen days, in a “soft launch” status.  Basically, we only told people who were really paying a lot of attention in the Steam forums or on Discord.  We had enough testers out of that smaller group to run into a whole slew of issues, and thanks to them you are now not going to be one of the folks to run into things that are that bad.

At first it was a situation where errors were immediate, and then it was a case of maybe being able to play 20 minutes at a time.  As of a day or two ago, Suzera and Ipsum were able to play for about three and a half hours without major errors, until they hit a game-breaking dead-stop issue.  However, the host was able to save their game, send it to me, and now on the new version they can keep playing as if nothing had happened; this may well be the first completed “real” multiplayer game of AI War 2 (assuming they win, heh).

At the moment you can definitely still expect some bugs, and things are not quite as smooth (visually) on the clients as we would prefer.  But we’ve made a huge number of strides, and it should be playable from start to finish aside from whatever unknown bugs you run into.  There’s a list of many of the known issues, but most of them are not that serious at the moment.

What’s The Difference Between Alpha And Beta?

Beta means feature-complete.  We’re not there yet, on multiplayer.  Things like sharing a faction between two players doesn’t have an interface yet.  Spectator mode has only been somewhat tested.  Lots more testing is needed in general.  Balance needs to be thought about by people who are actually playing it.  There are some features like gifting between players that are an obvious need.  Etc.

There’s a list of questions for multiplayer alpha testers that can have a major material impact on what beta (and later fully released) multiplayer functions will be like, so if you have an opinion, please feel free to let us know!

What Makes Multiplayer Beta?

When we have all of the major features missing from the alpha, then that’s a relatively feature-complete multiplayer experience.  When sync issues are not routinely a problem, and other bugs are not prevalent, then you can basically have an expectation of a “normal multiplayer experience.”  Connect, play, disconnect when done.

The purpose of the beta period is to have lots of people attempting that, so that we find the strange edge cases.  Or other features that are needed that we are missing.  Or balance problems that are specific to having multiple players.

At this point, the schedule is such that we’ll be hitting beta status sometime in October.  But we’re in a more-robust-than-I-expected alpha status at the moment, so there is that.

If you’re wondering “when can I play with my friends and actually just have a good time doing it,” my hope is that the answer is… maybe now?  Depends on your tolerance for bugs.

If you’re new to the game, or have a low tolerance for things that break, then my real answer to that question is “it should feel like finished and polished multiplayer in November,” based on how things have been going so far.

What About DLC2?

This is something we haven’t really been talking about too much, mainly because it seemed in poor taste to be talking about it before multiplayer was ready.  At any rate, Badger has really outdone himself on his part of it, and I’m very excited by what is there.

For my part of it, I have yet to even start it, and probably won’t be able to until sometime in October at the earliest because of multiplayer work.  So the end release for this expansion will probably be in January, which is when we’ll likely also call multiplayer “fully gold” in order to maximize the chance of marketing.  But realistically, hopefully multiplayer is there for you in every meaningful respect in November.

What can I tell you about this new expansion?  Well, it’s much larger than the first one.  It’s also not free to kickstarter backers, as an aside.  It’s called Zenith Onslaught, and it does live up to its name.  I look forward to being able to share more about that with you in the future, but for now I need to keep my eye on the multiplayer ball.

Please Do Report Any Issues!

If you run into any bugs, we’d definitely like to hear about those.

The release of this game has been going well so far, and I think that the reviews that folks have been leaving for the game have been a big help for anyone passing by who’s on the fence.  For a good while we were sitting at Overwhelmingly Positive on the Recent Reviews breakdown, but there have been a lot fewer reviews lately and so that has definitely had a material negative effect.  Go figure.  Having a running selection of recent reviews definitely is helpful, but at least we have a pretty healthy set of long-term reviews.  If you’ve been playing the game and enjoying  it, we’d greatly appreciate it if you’d drop by and leave your own thoughts, too.

More to come soon.  Enjoy!

Problem With The Latest Build?

If you right-click the game in Steam and choose properties, then go to the Betas tab of the window that pops up, you’ll see a variety of options.  You can always choose most_recent_stable from that build to get what is essentially one-build-back.  Or two builds back if the last build had a known problem, etc.  Essentially it’s a way to keep yourself off the very bleeding edge of updates, if you so desire.

The Usual Reminders

Quick reminder of our new Steam Developer Page.  If you follow us there, you’ll be notified about any game releases we do.

Also: Would you mind leaving a Steam review for some/any of our games?  It doesn’t have to super detailed, but if you like a game we made and want more people to find it, that’s how you make it happen.  Reviews make a material difference, and like most indies, we could really use the support.

Enjoy!

Chris

AI War 2 v2.112 Released! “Steam Networking Complete” (Multiplayer Alpha Approaches)

Multiplayer is not ready yet — but this is a big milestone on that path.  We expect to be into the alpha for multiplayer sometime next week.

Since the last update post sixteen days ago, we’ve had ten releases, starting with notes here and ending here.

I recently talked a lot about multiplayer and our plans for that in the short and middle term.  I think all that is still accurate, but I’m going to talk about things again based on what I now know.  Our release notes page also has a section with the current multiplayer todo list for your easy reference.

What’s New Other Than Multiplayer Stuff?

  • Relating to DLC1, the Scourge have gotten a number of new tweaks and fixes.
  • Various other UI tweaks and improvements, including a few to the lobby.
  • A fix to a memory leak and a crash to the desktop that were possible for some people to hit in the last month.  Those had to do with some newer ways of loading assets faster that didn’t always agree with everyone’s computer.
  • We fixed a handful of cross-threading exceptions that were possible.
  • The imperial spire now always give you vision properly.
  • Several ship behavior improvements.
  • The music selection/change window is now much improved.
  • The Dyson sphere got a few buffs.
  • A couple of speed improvements in parts of the codebase, and a couple of serialization fixes.
  • A fix for the self-building ships owing extra metal above their actual cost.
  • Several improvements to how stacks of ships behave, balance-wise.  This most notably improves Vanguard Hydras.
  • Campaigns in the load menu are now sorted by how recently something was saved in them, not alphabetically.  Oh my goodness this feels so much better.
  • Some minor nanocaust tweaks, and AI Exogalactic War unit tweaks in general.
  • Some balance tweaks to the Fallen Spire ships.

More to come soon!

What’s The State Of Multiplayer?

This is a screen (edited to blur out some names) that makes me very happy:

For multiplayer, the intent is to have three general solutions for HOW data is transmitted across the Internet.  Two our of three of those are complete.  This doesn’t mean that the game is ready to play, though, because WHAT data is transmitted across the Internet (or LAN) matters a whole lot more, and that still has a ways to go.  But we’ll talk about that in a minute.

First up, how do we connect to players and how does data get between them?

  1. LiteNetLib.  Originally FORGE Remastered, but that was not performing well in my tests, so I swapped it out.  This is fully working.  This is what you would use if you want absolutely no central services or servers, or you want to play on a LAN or a VPN with friends.  It’s extremely fast, and will try to do NAT traversal if you are playing across the Internet, but there’s a very high possibility that you would need to use port forwarding with this.  I built in a lot of things to make it easy to find your IP addresses with this, and it should support IPv4 or IPv6 with no troubles (though only IPv4 has been tested).
  2. Steam.  This is fully working.  Basically, the host opens the lobby in multiplayer mode, or loads a savegame.  The client clicks join game and sees a screen like the above with all of their Steam friends.  Click connect next to the one who is hosting, and Steam brokers a route through any firewalls you have, sets up a very fast relay through their own servers, and connects you with your friend without ever revealing the IP addresses of either of you.  It’s not possible that you would have to worry about ports or port forwarding or any of that sort of thing, as it doesn’t use any of that in a traditional sense.
  3. GOG Galaxy.  Not yet working.  This solution will only work for Windows and OSX right now, and not also Linux like the other two solutions do.  This one will work a whole lot like Steam, although with less in the way of relay servers.  I’m still working with GOG to figure out a few technical bits at the moment.

At this point, this covers HOW data gets around.  Other than GOG, which I’m waiting on information for, I’m completely done with this work (any future found bugs aside).

The work of this stuff is:

  • Getting you and one or more friends connected.
  • Then keeping you connected and data moving fast between you.
  • And finally, making sure you know when someone disconnects.

These have no idea what is being said while you are connected, or really any concept of what the game is or what it is doing.  Their job is immensely complicated, but it’s all about the shipping and transfer of data, and not about what the data is.

What’s The Barrier To Multiplayer Alpha?

In order to play multiplayer at all, you first have to get connected and stay connected.  That’s done.  The game also then has to have a system for talking between clients and the host, and keeping everything in sync.  Someone clicks a button or gives orders to a unit, and everyone else sees the result.  Etc.

A huge amount of that sort of data-sharing is already done:

  • The initial sharing of the state of the galaxy, so that everyone is on the same starting point, is done.  It nicely pauses things until everyone is caught up, so that if someone is popping in in the middle that’s not a problem.
  • The actual routing of all the GameCommands that the AI and players issue, and the central time clock ticking, and that sort of thing has been done since 2017, and something we’ve been continually working on keeping up to date.  I’m sure there will be bugs, but I can verify that the vast bulk of this is working correctly already.
  • With the lobby itself, there’s a bunch of UI stuff that is particularly complicated, more than the rest of the game in some respects, and that is partially done.  Right now there are a number of known bugs in there that I’m sorting through.
  • We also have to know which players are controlling which factions, or who is choosing to just be a spectator, etc.  That’s on my list for early next week along with the lobby bugs.
  • During gameplay, certain things will drift out of sync because of the multithreading that we do, and because of floating point inconsistencies between machines in a few places.  We need to have the game roll through and self-analyze itself and fix those sync errors.  A lot has been built out here in terms of design, but the basic version needs to be implemented before people can play for too long without sync errors being hilariously in the way.

And in terms of a multiplayer alpha, that’s kind of all that we have left to do.  The main time question mark is just how many bugs I run into.  I also do want to convert the GameCommands into a new format that is more efficient, and that will probably introduce even more bugs, but that will ultimately be a speed boost for both single-player and multiplayer games.

What Will Multiplayer Alpha Be Like?

Buggy, probably.  And definitely not feature-complete.  Hopefully you can play with a friend for at least 20-30 minutes before there are catastrophic pileups of sync errors, and then saving and reconnecting is fast (3-10 seconds, probably).  But I would not expect to be able to play an entire game.

I also expect to see some funky things that we did not expect, such as trouble using certain interfaces or issuing certain commands.  Those should be pretty quick to fix, on average.

There’s also a bunch of features that are multiplayer-specific that will be missing.  Want to trade ship lines with a friend?  Too bad, at first.  Text chat?  Sure, that’s there already.  Science sharing?  Yep, already there!  Passing some metal over?  Nope, not yet.

During the alpha, one of the things that we’ll be soliciting feedback on is what features you want.  We have a pretty good idea, based on all those years of co-op in AI War Classic, but it’s still good to hear what feels lacking here, since there are a lot of concepts and features in this game that did not exist in the first.

What Makes Multiplayer Beta?

When we have all of the major features missing from the alpha, then that’s a relatively feature-complete multiplayer experience.  When sync issues are not routinely a problem, and other bugs are not prevalent, then you can basically have an expectation of a “normal multiplayer experience.”  Connect, play, disconnect when done.

The purpose of the beta period is to have lots of people attempting that, so that we find the strange edge cases.  Or other features that are needed that we are missing.  Or balance problems that are specific to having multiple players.

I’m still hopeful that we’ll reach the start of beta during August, and at the moment that seems like a reasonable goal.  The one real wildcard remaining is how much of a bear the sync code winds up being, since everything else is either complicated-but-done, or some type of code I have done many times over the last 11 years.

The Steam networking integration, and even to some extent LiteNetLib, were the other two major wildcards, and it’s really rewarding to have both of those behind me.  I do need some extra assistance from the GOG SDK team in the short-term before I get that platform up and running, but if that isn’t ready until sometime in the beta period that wouldn’t be the end of the world.  I would just prefer it to be done sooner.

We will probably have a multi-month beta period, just to let people have lots of time to run into any particular issues.  This will also give me time to then step back and do my work on DLC2, and then we can officially launch both that and the free multiplayer update at the same time.  October still seems reasonable for both.

If you’re wondering “when can I play with my friends and actually just have a good time doing it,” my hope is that the answer is “during beta, later this month.”  Fingers crossed!

Please Do Report Any Issues!

If you run into any bugs, we’d definitely like to hear about those.

The release of this game has been going well so far, and I think that the reviews that folks have been leaving for the game have been a big help for anyone passing by who’s on the fence.  For a good while we were sitting at Overwhelmingly Positive on the Recent Reviews breakdown, but there have been a lot fewer reviews lately and so that has definitely had a material negative effect.  Go figure.  Having a running selection of recent reviews definitely is helpful, but at least we have a pretty healthy set of long-term reviews.  If you’ve been playing the game and enjoying  it, we’d greatly appreciate it if you’d drop by and leave your own thoughts, too.

More to come soon.  Enjoy!

Problem With The Latest Build?

If you right-click the game in Steam and choose properties, then go to the Betas tab of the window that pops up, you’ll see a variety of options.  You can always choose most_recent_stable from that build to get what is essentially one-build-back.  Or two builds back if the last build had a known problem, etc.  Essentially it’s a way to keep yourself off the very bleeding edge of updates, if you so desire.

The Usual Reminders

Quick reminder of our new Steam Developer Page.  If you follow us there, you’ll be notified about any game releases we do.

Also: Would you mind leaving a Steam review for some/any of our games?  It doesn’t have to super detailed, but if you like a game we made and want more people to find it, that’s how you make it happen.  Reviews make a material difference, and like most indies, we could really use the support.

Enjoy!

Chris

AI War 2 v2.099 Released! “Last Rabbit Holes”

Since the last update post twelve days ago, we’ve had six releases, starting with notes here and ending here.

Last time I talked a lot about multiplayer and our plans for that in the short and middle term.  You can read the details, but in order to keep things organized our current release notes page has a section with the current multiplayer todo list for your easy reference.

One other really cool thing since last time is that I’ve written up an explanation of the AI in this game, and how it’s different from the much-vaunted-in-2009 AI of the original.  That’s definitely worth a read.

What’s New?

  • A lot of code reorganization has happened to get us through the first couple of todo items of multiplayer.  Things are so much easier now; I was going to do a first “discussion between two computers in AI War 2 since 2018” yesterday, but I got sidetracked with other items.  At any rate, that’s hopefully what I’ll be up to tomorrow, now.
  • Quick Starts were initially broken for a lot of players in version 2.090, but we got that taken care of quickly.  One of those things that can happen when the game is in a beta branch for a long time.
  • We improved the speed at which certain pieces of code can search for entities, which basically makes it so that various mods and factions can use less CPU time to do their thing.  There was a discussion on discord about methodologies, and I had a stroke of inspiration.  Figured why wait.
  • Badger has started adding some new “Reactive Guidance” for new players, which basically gives you journal entries suggesting alternatives if it notices you falling into certain kinds of traps.  For those who skip the tutorials or are otherwise rusty or unsure, this helps to keep them aware of the framework they might want to consider working within.
  • We had several other speed boosts to parts of the game, and a number of small bugfixes both long-coming and to recent things resulting from the beta.
  • Keith and Badger both added some new ship intelligence items, which make your own ships that much smarter without you having to micro them.  Engineers peeling off of their normal duties to prioritize a cripple flagship that just limped home is thanks to Keith.
  • Left clicking on your metal income now shows you some new stats for units you’ve killed.  Right-clicking shows the old flows data.  This is kind of a sneak preview feature.
  • A bunch of updates have been made to the main menu to prep it for multiplayer’s alpha coming up so soon.
  • You can now properly have multiple player profiles, and add new ones and switch between them and edit and delete them.  This is another item that’s useful for multiplayer.
  • There are some new features that let you actually run the game without loading all the ship graphics other than icons, which effectively lets you run the game under the normal minimum system requirements.  Two of the computers I want to use for multiplayer testing at my desk fall into that category, so that’s quite useful.  And if you want a just-icon view for your low-powered laptop, that’s now a feasible thing, in general.
  • There was some major confusion in the last couple of versions with the ability to enable and disable mods and expansions — it required a restart of the game, but did not make you do that or tell you so.  Now it makes you do that, and so the potential for accidental confusion is fixed up.
  • We’ve made the defaults for the icons in gamespace larger, so that you can see them better on average-sized screens.  If you’re running a very large screen or a very high DPI screen, you can still adjust these to be smaller (or even bigger if the opposite is true!), but this new default should be more comfortable for more people.
  • Mods with code can now distribute their code all in one folder, which makes them far easier to install and remove.
  • Mods can FINALLY add new icons, although I need to make a tutorial on how to do that.  But this is the last area that wasn’t moddable.
  • Our methods of loading and drawing icons are improved in general, and use a lot less RAM and VRAM, as well as allowing us more space for an indefinite number of icons.  In our one big monolithic sprite dictionary, we were going to be running out of space before finishing DLC2 in the prior approach.
  • It’s worth noting that with the new style of drawing icons, lowest-supported-level GPUs will probably see a significant speed boost.  This is because they can now store the entire material and its textures all in direct tiny amounts of VRAM rather than shared system/virtual VRAM that is slower; this is a major benefit for the older Intel HD 4000 HD cards in particular.
  • There are several new things that are pooled now on the galaxy map, making galaxy map generation even faster again.  This should also fix a DLC2-only memory leak with nomad planets, but we’ve not properly tested that yet.  Hopefully our DLC2 early testers let us know.
  • There is now a galaxy setting to grant players Watch vision for 1, 2 or 3 hops from all command stations.
  • On the galaxy map, we’ve reworked the shader for how we draw the icons of planets and ships at them, and thanks to that we no longer ever have problems with the planet drifting away from the wormhole lines leading to it when you view it at a somewhat oblique angle (usually the side of your screen).  That was a really longstanding irritation!
  • And that hopefully concludes my last couple of rabbit holes, so I can get on with multiplayer proper.  I do think that the improvements to performance are a nice boon, though.

More to come soon!

Please Do Report Any Issues!

If you run into any bugs, we’d definitely like to hear about those.

The release of this game has been going well so far, and I think that the reviews that folks have been leaving for the game have been a big help for anyone passing by who’s on the fence.  For a good while we were sitting at Overwhelmingly Positive on the Recent Reviews breakdown, but there have been a lot fewer reviews lately and so that has definitely had a material negative effect.  Go figure.  Having a running selection of recent reviews definitely is helpful, but at least we have a pretty healthy set of long-term reviews.  If you’ve been playing the game and enjoying  it, we’d greatly appreciate it if you’d drop by and leave your own thoughts, too.

More to come soon.  Enjoy!

Problem With The Latest Build?

If you right-click the game in Steam and choose properties, then go to the Betas tab of the window that pops up, you’ll see a variety of options.  You can always choose most_recent_stable from that build to get what is essentially one-build-back.  Or two builds back if the last build had a known problem, etc.  Essentially it’s a way to keep yourself off the very bleeding edge of updates, if you so desire.

The Usual Reminders

Quick reminder of our new Steam Developer Page.  If you follow us there, you’ll be notified about any game releases we do.

Also: Would you mind leaving a Steam review for some/any of our games?  It doesn’t have to super detailed, but if you like a game we made and want more people to find it, that’s how you make it happen.  Reviews make a material difference, and like most indies, we could really use the support.

Enjoy!

Chris

AI War 2 v2.090 Released! “Returning From Beta”

Since May 22nd, we’ve been working hard on the game in the beta branch, and now we’re back onto the main branch for everyone to enjoy the new items.  The full release notes start here and finish here.  Let’s see if I can’t summarize that down a bit, though.

The TLDR is that this is almost all prep for multiplayer.  If building and testing multiplayer was a car trip, this would be like getting the car in tip-top shape right before you start the trip.  If the trip is into rough terrain, then good preparation is going to mean a far smoother trip once you get on the road.

So let’s take a look at that, and then the other bits that are unrelated.

Data Compaction, Many Times Over

Savegames are vastly smaller.  They’re also more efficient to write to disk, and to read.  This was a massive overhaul, but it also directly effects the way we will be transmitting network data messages.

I’ve written about the benefits of this at length in the past, so I’ll skip rehashing that here.  But the short version is that essentially there is a LOT going on in this game, and during networked play we need to be able to fix desyncs on the fly.  The only way to really do that is if we can efficiently send large amounts of correction data in the background while not interrupting your main play.

Back in May, I wasn’t feeling really confident that it would work out well.  It was borderline, but the processing load and the amount of network packets required was going to be iffy.  Any good engineering student knows that you want to build in redundancy: if your bridge can only hold ten tons, and it will have nine tons on it regularly, you’re asking for a terrible accident.  You want to start out with a lot more extra capacity to avoid the tragedy, and you also want to do that from the start rather than trying to strengthen the bridge while people are driving on it.

So that’s where we are now: the metaphorical bridge is ridiculously braced and ready for action.  This was a really massive undertaking, and it was the chief thing that led to the extended beta period here, so hopefully it makes intuitive sense why I chose to do this before getting into a functional multiplayer alpha rather than mixing the two together.

Game Loading Improvements

This might seem unrelated to multiplayer, but one of the things that we have to be really careful of is that all the players have the same data about game units when they load in.

Because this game was built from the ground up with mod support in mind, there are certain things that I realized could be impairing this consistency.  So I put in a bunch of new auto-checking to make sure that things happen the way I expect, and in the process:

  1. Fixed a few issues that were impacting mainly mod authors, making them have far more xml than they needed to.
  2. Made the game load vastly faster for everyone (depends on your computer, but for me it loads in 7-24 seconds now instead of 16-90 seconds.  The big variance is largely based on how busy my hard drives are and what is already cached in RAM from prior runs.
  3. Made it possible for mods to adjust base units (like Raider) and then have those modded changes cascade to all of the descendants of that base unit (Daggers, etc).
  4. Implemented some code that lets us verify that things are consistent regardless of how your OS does the sorting of files in its filesystem.  This sort of thing was going to be a potential barrier to cross-platform play between OSes, but it no longer is.
  5. This also lets you now disable mods and expansions that you have installed from within the game UI, if you don’t want to play with them at the moment.  This is key for multiplayer, where you might not have or want the same mods or expansions as someone else you are playing with, and the people with extra stuff can now just disable that in order to play with one another — no need for someone to reach for their wallet just to play multiplayer with you, if you have extra DLC, for instance.
  6. This prior one also lets us now distribute some mods with the game, but have them be in an “off by default” starting state.  This lets various mods be a lot more easily-accessible, without us having to support them in an official capacity or them affecting every game anyone plays.  The first mod to be included like this is The Spire Railgun Shop by Lord of Nothing.

Rebuilt Compiler Pipeline

This sounds like a yawn sort of item, so I’ll keep it brief.  But it’s something that first Keith and then later I had been working on since 2017 or so, and there were some key limitations with how we were able to link against some of the extra language features that… well, the various multiplayer libraries we’re going to be using (Steam, GOG, and Forge Remastered) all use.

This mean that there was a certain indirection I had to previously build in in order to load those things, and in order to test and change pieces of code in those specific areas it was literally an ELEVEN MINUTE wait for me while I hoped that whatever I changed was okay.  Normally it should be a couple of seconds of turnaround, but because of our compiler chain limitations, these specific libraries couldn’t be linked in the direct fashion we prefer.

This was going to make bugfixing in multiplayer an absolute nightmare, as you can imagine, since being able to routinely test things without eleven minute delays peppered all throughout my day is pretty important.  If I have a one-line typo, I need to be able to fix that and then see the results within a few seconds, not after 11 minutes.  That whole thing was making me dread working on certain aspects of multiplayer, so I put more time into it and finally managed to fix the root problem.  Hooray!

Prepping For Efficient Multiplayer Messages

We have long used a very efficient “serialize by index” (instead of name) method to make savegames smaller and more efficient, but that sort of thing could not work in multiplayer because there was no way to have a shared set of agreed-upon indices between the host and client(s).

The game has now been upgraded to handle fully setting those up so that now the host and clients get those synced automatically when the game starts, and so the ultra-efficient smaller messages now work in multiplayer and not just on disk.

Fireteam Specialists

This is a major new feature that Badger created for the upcoming second DLC for the game, which will be called Zenith Onslaught.  (Please put away any pitchforks — I have not been working on DLC2 at all yet, as my focus is appropriately on multiplayer.  And multiplayer is not something in Badger’s scope to help with).

Anyhow, like fireteams themselves (which were developed initially for DLC1), these new abilities for them have been backported into the base game.

Basically this lets some group, like the AI Hunters, have a sub-group that is chasing just a specific faction.  Or just a certain part of your faction.  Examples:

1. You’re The Little Fish

Let’s say that perhaps the nanocaust is being absolutely terrifying, and they are a third-party against you and the AI.  A faction like them is now able to piss off the AI enough to cause extragalactic war units of the AI to appear.  Those are things like the flenser, at the upper levels, where just one of those is absolutely game-ending for you as a player if you don’t have the fallen spire or some other sort of mega faction going on on your own side.

Anyhow, previously we couldn’t use something like the flenser in this fashion, since the AI would eventually probably turn it on you and end the game prematurely and unfairly.  But now we can keep the flenser fully focused on whatever aggro’d it so much in the first place — the nanocaust, in my current example.

This means that you can be present in the galaxy while the AI is fighting a much larger foe than you are, using much larger firepower.  This is… just plain cool.  It also has strategic ramifications, as you’ll want to avoid the planet with the flenser while it’s fighting the other foe, even though the flenser will never fully turn on you and go wreck all your planets.  It’s just going to be a fight that doesn’t involve you, but that you have to work around, and the flenser will head back out of the galaxy to deal with its war there once it deals with the target here.

(Of course, the flenser is an extreme example.  Mostly you’d see smaller extragalactic war units making an appearance.  But mods, and probably DLC2, could aggro the AI enough to cause a really strong faction like that to get into a war that is larger than the one you yourself are engaged in).

2. A Specialist Group Is After Your Treasure

Right now this is used for Major Data Centers (MDCs) in particular.  Previously when you captured those, the challenge that they presented was exogalactic waves that would spawn against the planet of the MDC while you were hacking it.  If you survived the entire time, then you’d get to keep the MDC.

That mechanic is… overused and kind of boring.  For MDCs, we no longer use exogalactic waves at all.  Instead, the AI hunter fleet gets a bit of extra budget with some specific objectives to go kill your MDCs.  This makes the AI have an appropriate response to you getting the new treasure, but it’s not in the form of this series of kind of hacky waves that come at you over and over.  Instead these are groups of specialists in fireteams who are intent on intelligently taking out that treasure when they can.  This makes the AI seem much more alive and intelligent, versus just a dump of units at you that you have to withstand temporarily.

3. Changes To Player-Allied Factions

Your allies will no longer go around popping warp gates, which was causing AIP to increase.  Instead the AI is now able to use these new mechanics with specialist hunter teams to hunt your allies appropriately.  In other words, the AI is now able to mount a proportional response to actions, but without your allies having to do something annoying like destroying warp gates that you might prefer consider existing.

Other Items

  • Holy cow, the one bad thing about an extended beta is that it can delay certain fixes.  One of those was that all of the AI (and I think Outguard units as well) had the equivalent of mark 1 hull and shields for the last couple of months if you weren’t on the beta branch.  That’s going to be a bit of a jump in difficulty on campaigns that were vanilla if you were on the last non-beta one all this time — apologies.
  • There were a bunch of other bugs fixed that were less likely to affect everyone, but which were still annoying and which are great to finally have on the main branch.
  • A bunch of achievements that were not triggering correctly now do.
  • The Parasitic Starting Fleet has had its balance improved, and should be more attractive to start with now.
  • AI ships from spire debris are now a lot more dangerous.
  • The Imperial Spire Fleet now gives you vision on their planets so that you can watch the fireworks.
  • Multiple copies of the same faction type (whether they are friends or enemies to one another) now try to spread themselves out in the galaxy to make things a lot more interesting.  If your playing with good and evil marauders both at once, then they won’t be neighbors most of the time, now.
  • We improved how we are doing our fixed-integer math, which fixes some math rounding issues that could lead to a bit of odd data with certain bonuses on the UI in particular.
  • Fixed a very unusual bug where the AI was basically able to get frigates “for free” as part of their reinforcements in the rare cases that they actually used them.
  • Make the Marauder less likely to suicide themselves against Praetorian Dragons.
  • During gameplay, when you click into the Galaxy-Wide Options screen it now shows you ALL of the values, not just the ones you can edit.
    As with the factions screen, it just has the ones that are non-editable as text values, but you can examine your settings this way and also see their tooltips.
  • If the game runs into an exception while trying to start up, it now gives you a visual error rather than the loading process just seeming to hang.
  • The Nanocaust and Dark Spire shouldn’t be able to rebuild a Nanobot Center or a Locus for at least a few minutes after a previous one on that planet was destroyed.
  • Cross planet waves against a specific faction now will stay focused on that faction (and not go off and attack the player).
  • The “brighter color” hex and color for faction teams now uses new logic by -NR-SirLimbo to make sure that faction names should always be nicely readable even if their actual colors are normally very dark.
  • Various more voice lines have been integrated into the game.
  • The game now has a Notification for when Dark Spire Loci are warping in.
  • It turns out there were some sort of edge cases where the AI king could be dead but its faction would not have gone through the “we have lost” logic. We don’t yet know how that could possibly be possible, but we now have a safety check from then on in the future that makes sure that even if the kings death was somehow missed when it happens, it now recognizes that it happened in the next few seconds and will mark the faction as defeated.
  • Fixed a SUPER longstanding bug where it would sometimes write “Was looking for a wormhole (some stuff) but couldn’t find one.”  This was also causing some bad ship behavior.   It’s been around, but rare, for years now.
  • Fixed a “fun” bug where some enemy ships with fireteamss would be unable to decide between targets; they would get partway to one target, then turn around as if going to the other target. This looked like a Buridan’s ass style problem with the targeting code.  The actual problem was that Fireteams were incorrectly declaring themselves winners of a battle without showing up.
  • Fixed what appears to have been a relatively old bug (somehow?) where the max strength of a lot of fleets was not being properly calculated. It seems like this may have slipped by for a few months, or since a bit before DLC1 somehow.
  • Also fixed a bug that probably goes back to the start of fleets, where instead of the current strength of fleets on the fleets sidebar, it was showing their total strength. For command station fleets, it was showing a max that they could not even hit, too.

More to come soon!

But here’s some further reading on what we’re doing in detail:

Multiplayer Schedule, And Why

It feels like an endless wait for multiplayer, doesn’t it?  I hear you on that — I think it probably feels even longer for me, since I’m the one working directly on it daily and it’s been so many things.

I wanted to take a minute to step back and address WHY things are taking so long.  You may or may not know this, but we actually had fully functioning multiplayer for this game back in 2017, before turning it off because we couldn’t reliably try to keep sync in the game while building out so many features like we were doing until late 2018.

It seems like it should have been a simple matter of just turning back on that old code, right?  Well… unfortunately as we developed the game, it got a lot more complex.

Essentially, the first AI War existed in a perfectly deterministic state where, after initial game sync, nothing had to be sent between clients and the host except for commands from the players and the higher-level AIs.  It also sent some basic check messages to make sure that results were not diverging on your machines — and if it detected a divergence, then it would flag that as a desync and stop you from playing until you saved, reloaded, and had the clients reconnect.

That determinism was achieved through a lot of really rigorous coding practices, and using fixed-integer math instead of floating-point math, and only using one thread for the main simulation.

In AI War 2, we can’t really enforce how rigorous modders’ code is; we also are using many threads, all of which are designed to be deterministic but which… turns out sometimes are not because of exceptions that we can’t solve in a deterministic way without slowing the entire game way down; and we have to use some floating point math here and there (forcefield pushback, for one) in order to get the accuracy and performance the game needs.

So what this means is that the entire premise for multiplayer in AI War 2 got more complicated.  The game is MOSTLY synchronous, MOSTLY deterministic, and does a great job at running blazing fast.  But desyncs can and will happen, probably with some frequency depending on how different your PC specs are from the people you are playing with (or what errors in rigor have been made in mods you want to use), and the old approach of stopping the game and making you reload and reconnect is absolutely unacceptable.  You could be running into those sort of issues once an hour, or once a minute, depending on the circumstances.

That means that, while we strive for determinism as much as possible, we also need to have automatic desync repair.  This is familiar more for action games (which exist in a state of constant desync by nature) rather than strategy games.  I have experience with this from the A Valley Without Wind games, but they have an incredibly small fraction of the amount of data that AI War 2 has going on.  It’s a much less intense environment as a multiplayer coder.

Anyhow, this has meant that the environment has to be extra well-prepared for sending efficient messages, since there will be more of them.  It also has to be able to fix small problems in a spot-fix fashion without re-syncing the entire game.

These added challenges meant that I needed to restructure some substantial bits of the code that were working perfectly fine if you look at them from any other context.  I still have some areas to deal with for that, but the list is getting much smaller.

We’re still on track to have multiplayer “in the next few months,” but I realize I’ve been saying that for months now.  The really good news is that alpha of multiplayer should be way more smooth, and a lot shorter of a period before we can get to the point of it being fully polished.

I’m keenly aware that as soon as folks can play multiplayer, they will do so; and if it’s a broken mess on the first alpha, and it takes me months to make meaningful improvements to it, I will lose my testers.  So I’m being extra cautious and hitting all the areas that I expect I will run into before even starting the first alpha.  That should ultimately be a lot less stressful on me in a time-pressure sense once we start doing multiplayer alpha.

What’s Remaining For Multiplayer?

So what is the todo list, then?  It’s getting shorter!

  • Now that the compiler chain is improved, I need to get Steam and GOG linked in a better way, and also get Forge Networking linked in that fashion.  This will be FAR easier than what we were doing before, and more in line with how those respective libraries expect you to use them.  I’m very excited about this being possible, finally.
  • The actual cycle of multiplayer messages being sent and received, and that keeping the game flow going, is done and has been for years (literally since early 2017), but I need to reintegrate that into our core dlls and improve the efficiency of some bits of it.  It’s not large amounts of code, thankfully.
  • I need to redo how the initial world state is sent to new clients joining in, but that will also be quick — thanks to the rework of world save data styles and sizes.
  • Our old style of desync-detection from 2017 has been stripped out now, and I need to add in a new kind of rolling desync detection that will find problem entities and then allow us to fix them.  To keep this fast and relevant, I’m only going to care about a few things: position, health, and shields.  If those match, then probably everything else is close enough.  How to handle the time differential on this is really challenging, and only in the last couple of months did once facet of this occur to me.  I have a couple of solutions in mind, but it’s going to be… “fun.”
  • The way that we send information in multiplayer is by GameCommand, and right now those are generic and bloated (they are overly multi-purpose).  I am going to replace those with a new set of custom GameCommands that us developers and modders can use as-needed and have them  take full advantage of the new smaller data sizes.  Fun fact, this will also make single-player run very slightly faster when a lot of things are going on.
  • The really big one that remains is making sure that the cross-machine identifiers (PrimaryKeyIDs) are consistent between machines.  I don’t fully have this figured out yet, but I think that the interim state of it will essentially be that there are occasionally too many messages being passed around because of rolling sync errors.  I will probably punt this issue into something I look at during the alpha, so that I can gauge what sort of impact it really has on performance, and where the problems are coming from.
  • After that it’s more or less a matter of making sure that the lobby fully works as we expect, and various other small UI systems to get multiplayer basically playable.  A lot of work went into the lobby in particular in the last few months to make that as close to as ready to go as possible.
  • There are then whatever changes we need to make to balance in order to make things “feel right,” which will be a matter of working with the multiplayer alpha and beta testers.  A lot of things we already did in the past, like making science collection a humanity-wide thing that each player gets a copy of, rather than something people have to do individually (what a pain that was in AIWC).  We will have to scale waves like we did in AIWC multiplayer, or in some other fashion.  But a lot of the difficulty scaling is inherently handled by AIP being higher when you have to take more planets in multiplayer.

So, to sum up the plan for the short term:

  1. I need to re-link the networking libraries using the new compiler chain.  This might take a couple of days.  I’ll do it on a beta branch in the next week or so, at least for a bit, because it will potentially break the ability to log achievements on some machines or OSes until I get it fixed back properly (assuming it doesn’t work on try one).
  2. Then I will pull the network-loop code back into the main game, which is a part of one day job.
  3. Then I need to generalize that to work for all three networking code paths (Steam, GOG, Forged), which probably will only take a couple of days at most.
  4. Then I need to re-code GameCommands to be more efficient and special-purpose.  This is probably a job that is a couple of days long, and will potentially lead to widespread bugs for a week or so after it.
  5. Then I need to implement V1 of the desync detection and correction code, which should probably only take a few days.
  6. Then I need to get the basic connection interfaces working, so that you can choose to connect to players via Steam, GOG, or a direct IP address (forged).  This will be a moderate challenge, because Steam and GOG both have APIs that I’m pretty unfamiliar with in this exact area.  Once the connection is going, it’s much easier.  But with the new compiler chain, at least I can hopefully get these going in a matter of days or a week rather than it being something that takes multiple weeks.
  7. At that point we should be able to reasonably declare that the multiplayer alpha is ready, as you should be able to connect to friends and play with them, and the desyncs would cause network performance degradation rather than something permanent that your game can’t recover from.
  8. Then it’s a matter of the other features on multiplayer, mainly regarding things like donating fleets between one another, and/or whatever else we come up with that is desirable.
  9. Oh, and during that period if we’re seeing network degradation or other issues due to the constant need to sync errors, then that will be to be investigated and improved.  But those things are most of what the focus of the alpha/beta will be on.

How long will each of those line items take in reality?  I guess it depends on what gotchas I run into that are unexpected at the moment, but you can always watch the release notes to see how things are coming.  A lot of the really hefty things that required major reworks of the game are done, so that’s a win.

There are some things that I’d probably prefer to do sooner than later, like allow you to enable and disable expansions/mods from the main menu without a restart of the game, so that might take a chunk out as well.  But it should make things easier on everyone as they get more into multiplayer.

Please Do Report Any Issues!

If you run into any bugs, we’d definitely like to hear about those.

The release of this game has been going well so far, and I think that the reviews that folks have been leaving for the game have been a big help for anyone passing by who’s on the fence.  For a good while we were sitting at Overwhelmingly Positive on the Recent Reviews breakdown, but there have been a lot fewer reviews lately and so that has definitely had a material negative effect.  Go figure.  Having a running selection of recent reviews definitely is helpful, but at least we have a pretty healthy set of long-term reviews.  If you’ve been playing the game and enjoying  it, we’d greatly appreciate it if you’d drop by and leave your own thoughts, too.

More to come soon.  Enjoy!

Problem With The Latest Build?

If you right-click the game in Steam and choose properties, then go to the Betas tab of the window that pops up, you’ll see a variety of options.  You can always choose most_recent_stable from that build to get what is essentially one-build-back.  Or two builds back if the last build had a known problem, etc.  Essentially it’s a way to keep yourself off the very bleeding edge of updates, if you so desire.

The Usual Reminders

Quick reminder of our new Steam Developer Page.  If you follow us there, you’ll be notified about any game releases we do.

Also: Would you mind leaving a Steam review for some/any of our games?  It doesn’t have to super detailed, but if you like a game we made and want more people to find it, that’s how you make it happen.  Reviews make a material difference, and like most indies, we could really use the support.

Enjoy!

Chris

AI War 2 v2.073 Released! “Filesize Finalization”

This is on the beta branch, as there are still a lot of unstable changes that we are working through.  The more testers the better, please!  Full notes here.

How To Play A Beta Branch Build

To play this on Steam, please go under betas and choose current_beta from the drop-down list. We would really appreciate some testers on this so that we can get back out of beta status as quickly as possible! There is not currently a way to get the beta versions on GOG, but we won’t be in that status for more than a week, knock on wood.

We want to make sure we didn’t break anything with all the substantial changes in here, but we fully expect some savegames to throw cosmetic errors at the very minimum. Please report and upload those here: https://bugtracker.arcengames.com/

What’s New?

  • Last release that I wrote up was one about data compaction and how that affects savegame filesizes.  We had managed to get one very large (8.3507 MB) savegame down to 2.4009 MB, and a lot of other saves had also been shrunk notably.   At the time I noted I was not done yet, though.
  • Using even more aggressive and targeted optimization for key fields, and for strings, that key savegame has dropped from 2.4009 MB to 1.3444 MB.
  • Why the heck does that matter so much?   Multiplayer.  The game has to be synced when a new player connects, but beyond that we also have to be able to run desync-repair from the host to the clients.  The smaller that data is, the more efficiently it will run.  The newest methods not only are smaller amounts of data, but also use less CPU power to do their work.
  • There will be some future work on GameCommands themselves — those things that the game passes around for both singleplayer and multiplayer games to keep them running in a consistent way — but the really heavy lifting on the data-formatting side is all done now.
  • We actually had three other releases since the last one I wrote up, and a lot of other things have happened in there beyond just my push for data efficiency.
  • Badger fixed a ton of bugs, and I fixed a few.
  • The Parasitic Starting Fleet is now a lot more buff, hopefully feeling more balanced.
  • A bunch of bugs relating to 2.062 beta were fixed, including allegiances that were wrong, too many waves spawning at times, etc.  We are really glad we did a beta for this!
  • Several more fixed achievements.
  • A variety of fixes that make modding easier for certain pieces of data (or possible at all).
  • A major revision to our internal FInt (fixed integer math) class, repairing a very minor bug that caused some strange math results for the last 10 years or so (since well before AIW2).
  • The Warden and Hunter fleets now actually do something again on the beta branches, whereas they’ve been complacent since 2.062.
  • Marauders got smarter.
  • And so on.

More to come soon!

But here’s some further reading on what we’re doing in detail:

What’s Next For Multiplayer?

I’ve been so heavily focused on making savegames smaller and getting the data storage/transmission formats as efficient as possible, that most other things for multiplayer seem like they’ve taken a back seat.  But!  I’ve also been taking this time to review many parts of our codebase and continue to make plans for desync avoidance and desync repair, the two major things that would be gumming up your network connection if not handled correctly.

  • I still need to get the latest version of Forge Networking Remastered in place, and then I’ll be working on actual multiplayer data transmissions through that, Steam, and/or GOG, depending on how you choose to connect.
  • The actual cycle of multiplayer messages being sent and received, and that keeping the game flow going, is done and has been for years (literally since early 2017).
  • I do need to redo how the initial world state is sent to new clients joining in, but that will be quick.
  • Our old style of desync-detection from 2017 has been stripped out now, and I need to add in a new kind of rolling desync detection that will find problem entities and then allow us to fix them.  To keep this fast and relevant, I’m only going to care about a few things: position, health, and shields.  If those match, then probably everything else is close enough.
  • Making sure that the cross-machine identifiers (PrimaryKeyIDs) are consistent between machines is really tough, and that I’ve been looking at a couple of methods for that.  This is one of the things that I’ve been investigating the most alongside the data size compaction.  There are some code path changes I will likely make in order to make this work properly, we shall see.
  • After that it’s more or less a matter of making sure that the lobby fully works as we expect, and various other small UI systems to get multiplayer basically playable.
  • There are then whatever changes we need to make to balance in order to make things “feel right,” which will be a matter of working with the multiplayer alpha and beta testers.  A lot of things we already did in the past, like making science collection a humanity-wide thing that each player gets a copy of, rather than something people have to do individually (what a pain that was in AIWC).  We will have to scale waves like we did in AIWC multiplayer, or in some other fashion.  But a lot of the difficulty scaling is inherently handled by AIP being higher when you have to take more planets in multiplayer.
  • Anyhow, I really didn’t want to have to take a multi-week hiatus during the middle of active multiplayer testing in order to optimize our data formats (which was going to be needed), so I went ahead and did that up front instead.  It’s a relief to have that part done, so I can move forward on other bits!

Please Do Report Any Issues!

If you run into any bugs, we’d definitely like to hear about those.

The release of this game has been going well so far, and I think that the reviews that folks have been leaving for the game have been a big help for anyone passing by who’s on the fence.  For a good while we were sitting at Overwhelmingly Positive on the Recent Reviews breakdown, but there have been a lot fewer reviews lately and so that has definitely had a material negative effect.  Go figure.  Having a running selection of recent reviews definitely is helpful, but at least we have a pretty healthy set of long-term reviews.  If you’ve been playing the game and enjoying  it, we’d greatly appreciate it if you’d drop by and leave your own thoughts, too.

More to come soon.  Enjoy!

Problem With The Latest Build?

If you right-click the game in Steam and choose properties, then go to the Betas tab of the window that pops up, you’ll see a variety of options.  You can always choose most_recent_stable from that build to get what is essentially one-build-back.  Or two builds back if the last build had a known problem, etc.  Essentially it’s a way to keep yourself off the very bleeding edge of updates, if you so desire.

The Usual Reminders

Quick reminder of our new Steam Developer Page.  If you follow us there, you’ll be notified about any game releases we do.

Also: Would you mind leaving a Steam review for some/any of our games?  It doesn’t have to super detailed, but if you like a game we made and want more people to find it, that’s how you make it happen.  Reviews make a material difference, and like most indies, we could really use the support.

Enjoy!

Chris

AI War 2 v2.062 Released! “Savegame/Networking Data Compaction”

This is on the beta branch, as it’s a freaking huge number of changes.  The more testers the better, please!  Full notes here.

How To Play A Beta Branch Build

To play this on Steam, please go under betas and choose current_beta from the drop-down list. We would really appreciate some testers on this so that we can get back out of beta status as quickly as possible! There is not currently a way to get the beta versions on GOG, but we won’t be in that status for more than a week, knock on wood.

We want to make sure we didn’t break anything with all the substantial changes in here, but we fully expect some savegames to throw cosmetic errors at the very minimum. Please report and upload those here: https://bugtracker.arcengames.com/

What’s New?

  • The biggest thing for me personally is the new data compaction stuff, which I have been pouring hours into in preparation for multiplayer.  The last thing I want is for multiplayer to be functional, but immediately laggy as soon as we have the desync repair stuff going.  I needed to start with efficient data storage and transmittal so that there wouldn’t be a point where I need to disappear for a week to redo all that after we’re into multiplayer’s alpha.
  • I’m not entirely done with my data compaction shenanigans, but I’m very excited about how it has turned out so far.  I do expect it to result in a number of user-facing errors, though, so hence the beta, which I really hope you’ll partake in.
  • Badger fixed a number of bugs, including several achievements that were not triggering.  Also that all the AI units have had the equivalent of mark 1 shields/hull for the last two weeks??
  • Meanwhile, Badger also implemented another major fireteams upgrade, this one which is intended for the upcoming DLC2 but has been backported to the base game.
  • The first use of this fireteams code is to let the AI really fight some other faction other than you with giant fists, without killing you in the process.  Aka, let it fight the Marauders or the Nanocaust using REALLY BIG AND SCARY GUNS if those two factions are taking over the galaxy… but don’t have that be game-ending for you.  You’re not the problem, after all, from the AI’s point of view.
  • The second use of this is to let us have certain sub-groups of the AI faction, most notably Hunters right now, which have a sub-subgroup that just focuses on one objective after you harass them.  The example in place right now is Major Data Centers (MDCs).  Those always triggered an Exogalactic Wave, previously, which was boring — more ships come in increasing waves, and you survive them or don’t.  It felt kind of uninspired.  NOW, instead, the hunters get a major buff to a certain sub-team that explicitly hunts the MDC and its protectors… and if it wins against that, eventually, then they just leave you alone — “job’s done, bye!”
  • The way that the hunter deals with allied factions to you is a lot more interesting, too, rather than your allies causing rapid AIP gains by killing all the warp gates and aggroing the AI in that way.
  • These are some major strides forward towards multiplayer being a smooth and fun experience as we get into that, and towards the DLC2 that will come out around the time multiplayer fully releases (multiplayer will be free).   Please note that none of the DLC2 stuff is slowing down multiplayer at all, as Badger is not working at all on multiplayer and I’m entirely focused on that and related things for now.
  • Oh, also, for the sake of modders we’ve documented some new things that will help with making sure mods are multiplayer-compatible.
  • Note that if a mod you like turns out NOT to be multiplayer-compatible, the game should still be playable.  You’ll just have a ton more desync-repair messages going back and forth, related to the mod.  This is an excellent example of why I want those desync-repair messages to be absolutely as efficient as they possibly can be, which means representing all our data in as tiny a format as possible.

More to come soon!

But here’s some further reading on what we’re doing in detail:

Why Do We Care About Compaction?

I explain what I mean by this below, and go into detailed benchmarks.  The release notes have a lot of other detailed info.  But a TLDR of why this matters is certainly a good place to start:

  • Smaller savegames are easier to transmit across the network when you’re initially synchronizing your game from a host to clients.
  • Doing it via our compaction method, versus compression, uses FAR less CPU cycles, and thus makes the transfer of even small, frequent bits of data run more smoothly.
  • Doing it via our compaction method makes even small bits of data… smaller.  Compression often requires a lot of data before it makes much difference.
  • Given that we are going to have frequent small commands being sent back and forth just to have the game run at all, and then we ALSO are going to have the desync-repair data going back and forth that is still small (but substantially larger at the scale of network messages), this is pretty critical.
  • So the TLDR of the TLDR is that we use less bandwidth and less CPU to do the same thing, and thus your game will run way more smoothly in multiplayer.
  • And it has the side benefit of making savegames a lot smaller, and also faster to save.

Data Compaction vs Compression

What the heck is data “compaction?”  Well, in the most direct sense here, it’s a term I made up.    The way I’m defining the term, for purposes of what we’re doing here, is “making data smaller at the level of small objects, as we put it into a binary stream.”

Wait, what?  Basically… it’s something we do as we go along, and it works on very small pieces of information.  A single integer.  One ship and its data.  That sort of thing.

Compression, by contrast, requires a lot of processing AFTER you put in your data to some sort of format.  So to compress a bunch of data in AI War Classic, for instance, we write roughly 30MB of data for a savegame  into a temporary buffer, and  then we run GZIP compression on that, which turns it into maybe 1MB that we can store on the disk or send across the network.

That 30:1 ratio is legitimately what AIWC was seeing, on average, by the  way.  The downside is that it only really works well for very large amounts of data, and it also requires a lot of processing every time it wants to send or save.  You’ll notice that AIWC has a noticeable hitch in itself every time it saves the game.  AI War 2, by contrast, doesn’t use compression and thus doesn’t have that sort of hitching.

AI War 2 is a lot smarter about how it represents its data to start with (using binary formats directly  instead of a unicode-based format), and uses clever tricks to also know when not to send data of certain sorts (if I don’t have X properties, then don’t bother tracking them).  So this realistically converts what would have been 30MB in AI War Classic into something that might be… 5 MB in AI War 2.

Beyond that, though, requires a lot more work, because we actually have far more data here than in AI War Classic — enough that despite our better formats and such, we’d be back up around 10 MB or so for savegames.

Several years ago, perhaps four now, Keith LaMothe came up with a great new concept he called “buzzsaw binary,” and we posted benchmarks on how incredibly efficient it was at storing data.  After working out some kinks with it, we’ve been using that for the last few years, and it saves blazing fast, as you’ve probably noticed.

Basically, this takes each data point that we want to store in binary and writes it directly into a bitstream (which C# does not officially have — they only have bytestreams).  As it writes to  our custom bitstream, it analyzes each piece of data and figures out if it can make it any smaller than would normally happen for that kind of data.  The types of data that Keith built support for were string, 32bit integer, and 64bit integer.  The last of those also gave us support for our own FInt fixed-integer format, and by extension also some limited float support (thought we avoid float as much as possible).

The plan was always to go further, and he left notes to himself to do so directly in the code, actually.  With this format, storing a byte was actually highly inefficient, taking on average 10 bits rather than 8. But we never even tried to directly store bytes, so that was kind of irrelevant.

In most programming languages, integer numbers can be stored as 8, 16, or 32 bits, with or without the ability to have negative numbers (called signed numbers).  In the prior edition of buzzsaw binary, we assumed all numbers were signed and could be up to 64 bits, and wrote them out in a manner that still produced results that were often 16 bits or less for a 32bit number.  That was a savings of 50% or more, in lots of cases.

A big part of the savings is what to do with “default case” numbers, such as those that are 0.  How many bits should you take to store that zero?  By default, a 32bit number will take 32 bits to say 0, and a 64bit number will take 64 bits to say 0.  In buzzsaw binary, regardless of the bit level of the number, it has always taken us 1 bit to store a zero.

One tricky thing is that we use a lot of -1s as defaults for various reasons, and that was something that required 10 bits to store. Ack!

So for me, I went in and finally figured out Keith’s code, and added a ton of comments to make it clear what was going on.  I added explicit support for

  • 8bit (aka byte) and 16bit (aka short) numbers
  • And some special cases for:
  • numbers of 16 or more bits that cannot be negative
  • numbers of 16 or more bits that cannot be any smaller than -1
  • and 8 bit numbers (bytes) that are frequently 0

Those are… strange categories, I know.  But when you look at the data we use, and apply the same sort of buzzsaw binary approach, but with more hinting from the higher-level program (as well as more appropriate number formats for variables instead of int32 for everything), then you wind up with some truly amazing compaction.  I’ve detailed the macro results of that here.

Bytes now take an average of 4.74 bits in a savegame, down from 10ish in our previous implementations.  In the benchmarks I just not the percentage relative to the normal 8 bits. “32 bit numbers that cannot be less than -1” are averaging out at 2.71 bits instead of 32.

Overall file sizes for the game dropped in this build to commonly about 70% of what they previously were, and as low as 28%  in one case.  The actual data format change only represents a savings of 10%, sadly, but it’s still a win, even if it is a minority of the gains.

Please Do Report Any Issues!

If you run into any bugs, we’d definitely like to hear about those.

The release of this game has been going well so far, and I think that the reviews that folks have been leaving for the game have been a big help for anyone passing by who’s on the fence.  For a good while we were sitting at Overwhelmingly Positive on the Recent Reviews breakdown, but there have been a lot fewer reviews lately and so that has definitely had a material negative effect.  Go figure.  Having a running selection of recent reviews definitely is helpful, but at least we have a pretty healthy set of long-term reviews.  If you’ve been playing the game and enjoying  it, we’d greatly appreciate it if you’d drop by and leave your own thoughts, too.

More to come soon.  Enjoy!

Problem With The Latest Build?

If you right-click the game in Steam and choose properties, then go to the Betas tab of the window that pops up, you’ll see a variety of options.  You can always choose most_recent_stable from that build to get what is essentially one-build-back.  Or two builds back if the last build had a known problem, etc.  Essentially it’s a way to keep yourself off the very bleeding edge of updates, if you so desire.

The Usual Reminders

Quick reminder of our new Steam Developer Page.  If you follow us there, you’ll be notified about any game releases we do.

Also: Would you mind leaving a Steam review for some/any of our games?  It doesn’t have to super detailed, but if you like a game we made and want more people to find it, that’s how you make it happen.  Reviews make a material difference, and like most indies, we could really use the support.

Enjoy!

Chris

AI War 2 v2.048 Released! “Bugfixes”

This one is nothing but a collection of bugfixes, but there are some very welcome ones.  Full notes here.

What’s new?

  • You can upgrade forcefield frigates beyond mark 4, as they now use the heavy hull tech type.
  • Fleet Research Stations, new in the last version, now properly charge you AI Progress (AIP) for the things you get from them.
  • Handy new cheat code “heal me” that is useful for bugtesting.
  • Multiple improvements to make tachyon sources way more efficient.
  • A fix to make tachyon sources work at the proper speed when they are on background planets (with coarse processing on) or when you have the sim speed higher than one.  Previously it took longer to decloak enemies, but now it works at the same speed regardless of those factors.  This is a super old issue!  At least two years old, if not more.
  • We also found and removed a really super old form of performance profile logging, which generally was unused but could be toggled on by some unknown mechanism and then slow down your game at some points.  This was code that hadn’t been touched in 2-3 years, s it was a surprising find.
  • Fallen Spire cities that were able to rarely get extra flagships now have those properly scaled back.  And if you ever have a city missing its flagship, it will fix that for you (though we’ve no reports of that).
  • And finally, there was a very annoying issue that if you had selected any ships directly and they changed planets, it would deselect them.  Selecting by fleet did not have this problem, so to people who experienced it, it just seemed intermittent.  As someone who pretty much always selects by-fleet, I had not been seeing the issue until it was pointed out with steps on how to reproduce it.

More to come soon!

Please Do Report Any Issues!

If you run into any bugs, we’d definitely like to hear about those.

The release of this game has been going well so far, and I think that the reviews that folks have been leaving for the game have been a big help for anyone passing by who’s on the fence.  For a good while we were sitting at Overwhelmingly Positive on the Recent Reviews breakdown, but there have been a lot fewer reviews lately and so that has definitely had a material negative effect.  Go figure.  Having a running selection of recent reviews definitely is helpful, but at least we have a pretty healthy set of long-term reviews.  If you’ve been playing the game and enjoying  it, we’d greatly appreciate it if you’d drop by and leave your own thoughts, too.

More to come soon.  Enjoy!

Problem With The Latest Build?

If you right-click the game in Steam and choose properties, then go to the Betas tab of the window that pops up, you’ll see a variety of options.  You can always choose most_recent_stable from that build to get what is essentially one-build-back.  Or two builds back if the last build had a known problem, etc.  Essentially it’s a way to keep yourself off the very bleeding edge of updates, if you so desire.

The Usual Reminders

Quick reminder of our new Steam Developer Page.  If you follow us there, you’ll be notified about any game releases we do.

Also: Would you mind leaving a Steam review for some/any of our games?  It doesn’t have to super detailed, but if you like a game we made and want more people to find it, that’s how you make it happen.  Reviews make a material difference, and like most indies, we could really use the support.

Enjoy!

Chris

AI War 2 v2.047 Released! “Perks By Another Mother”

Only a day later, but this is a big one!  Full notes here.

What’s new?

  • First off, Badger found a bug in some of the fire teams code that had been leading them to be less efficient with their forces (using overwhelming force where it was not needed).  This was actually a really cool behavior in the Nanocaust, and the “Nanocaust Deathballs” are both menacing as well as fun and engaging to avoid, so we’ve left that behavior for them.
  • But for all the other factions and sub-factions that use fireteams… watch out!  As Badger puts it: I’m not sure how impactful this will be, but the answer might be “Very”, at least for any faction that had enough ships to be overkilling their targets significantly. There are lots of potential cases. Where the Hunter has just broken through a chokepoint and now has its pick of weakly defended economic planets, it’s now going to be a lot scarier.
  • Next up, mobile forcefield generator ships are now a lot more useful since they no longer come with the damage penalty.  This mostly helps you.
  • …but AI forcefield generators now in general no longer have the penalty at all, for the (relatively) rare cases when they do use a forcefield.  Both of these things bring this part of the game more in line with AI War Classic.
  • You can now have up to 40 ship lines per fleet, rather than 5.  Also, swapping ships between fleets on the same planet no longer destroys the fleets.  Your ability to customize fleets is now far greater.
  • Raiders have gotten a buff, but no longer have the one-off “super-charges the rest of their fleet” ability, since that was out of place on its own with them, and way too powerful to have on random ships you can find now that the fleets can be arbitrarily large.
  • There is a brand new structure that you can find and hack in new campaigns: the Fleet Research Station.  It allows for you to get new, advanced fleet-bonus-giving large ship lines if you hack them AND pay an AIP penalty.
  • There are currently six of these types of ship lines, and they open very new kinds of play and synergies in these large fleets.  If some of them seem expensive for what they are, bear in mind that you may not be considering just how impactful they can be if you have a truly giant fleet.  All of these things give fleet-wide buffs ranging from the raider-style speed boost, to attack and defensive boosts of various sorts.
  • We will likely explore the concept of these sorts of fleet-wide perk-centric ship lines through FRSes more in the future, either through future free updates or in DLC, or both.  But basically this gives the sort of flavor I was thinking of with what fleet EXP upgrade perks would once have given… but still minus the grind, and now with potentially even more power as well as more flexibility.  You may not use these much, depending on your playstyle, but they should hopefully be the sort of thing that is a cool and incredibly helpful tool to use a minority of the time.  I really enjoy mechanics like that, where they aren’t mandatory for play but are things that are killer if the circumstances are right.
  • Plus some bugfixes and other tweaks!

More to come soon!

Please Do Report Any Issues!

If you run into any bugs, we’d definitely like to hear about those.

The release of this game has been going well so far, and I think that the reviews that folks have been leaving for the game have been a big help for anyone passing by who’s on the fence.  For a good while we were sitting at Overwhelmingly Positive on the Recent Reviews breakdown, but there have been a lot fewer reviews lately and so that has definitely had a material negative effect.  Go figure.  Having a running selection of recent reviews definitely is helpful, but at least we have a pretty healthy set of long-term reviews.  If you’ve been playing the game and enjoying  it, we’d greatly appreciate it if you’d drop by and leave your own thoughts, too.

More to come soon.  Enjoy!

Problem With The Latest Build?

If you right-click the game in Steam and choose properties, then go to the Betas tab of the window that pops up, you’ll see a variety of options.  You can always choose most_recent_stable from that build to get what is essentially one-build-back.  Or two builds back if the last build had a known problem, etc.  Essentially it’s a way to keep yourself off the very bleeding edge of updates, if you so desire.

The Usual Reminders

Quick reminder of our new Steam Developer Page.  If you follow us there, you’ll be notified about any game releases we do.

Also: Would you mind leaving a Steam review for some/any of our games?  It doesn’t have to super detailed, but if you like a game we made and want more people to find it, that’s how you make it happen.  Reviews make a material difference, and like most indies, we could really use the support.

Enjoy!

Chris