Author Topic: AI War 2 v2.073 Released! "Filesize Finalization"  (Read 5143 times)

Offline x4000

  • Chris McElligott Park, Arcen Founder and Lead Dev
  • Arcen Staff
  • Zenith Council Member Mark III
  • *****
  • Posts: 31,651
AI War 2 v2.073 Released! "Filesize Finalization"
« on: June 16, 2020, 06:07:29 pm »

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

Have ideas or bug reports for one of our games?  Mantis for Suggestions and Bug Reports. Thanks for helping to make our games better!