1. AI War 2
  2. News

AI War 2 News

Beta 3.700 Bulk Of The Great Refactor

New beta build! https://wiki.arcengames.com/index.php?title=AI_War_2:The_Great_Refactor#Beta_3.700_Bulk_Of_The_Great_Refactor

Wow, it's been 26 days since I last pushed a public release. You know, the last release was called "Code Will Change," and that was SUPPOSED to just be a reference to a Persona 5 Song (Life Will Change), and a kind of play on words about how much code had changed in the prior build. Instead, uh... it was prophetic.

The last 26 days have been grueling and intense, but at the same time really satisfying. The release notes JUST FOR THIS RELEASE are 44,000 words. That is novella-length, and it is also similar in length to entire sections of release notes from AIW2 and AIWC in the past.

So... what the heck is going on? Essentially, I've reconstructed most of how the game talks about "external" data, and made it a lot more controlled, better-designed, and multiplayer-friendly. It's a lot harder for modders (or faction programmers, or me) to make errors now. RAM usage is down, CPU usage is improved, bandwidth requirements should be way down, and many other benefits.

On the front end, in-game, not a whole lot is different. In this specific build, there are a few things that don't work or are temporarily disabled. Tutorials, random factions, beacons, multiplayer, and most mods are out of commission temporarily. The savegame format has also been completely reworked, so all savegames prior to this version are now unusable in this version.

Why was this worth it? Well, I had kind of hit a wall with multiplayer where it was just going to be a mess in an ongoing fashion, and this was the only way forward. But even for single player, this brings clarity to the code, makes modding easier, and reduces the chances for errors. It also should help performance, particularly in large and complex games.

We're working towards completing all aspects of this game and putting it into "long term support" by January 2022, and I wanted to really make things shine here. On the surface, not a whole lot is different in this new version, but under the hood this is just a whole new world, and I'm really proud of how it's turning out.

Expect some bugs in the short term, but please do help us test, if you don't mind. You do need to use the beta branch to see this build, of course, for now. Also, I will be breaking savegames more in the near future, just as a fair warning. There are some notable improvements I want to make to various factions (like fallen spire, etc), that should make the user experience better. I also am planning on getting loadouts in place, and adding more features to DLC1 to finish up the last kickstarter features.

Anyhow, we have a lot of things going on at the moment: kickstarter last features, DLC1 additions, loadouts, expert mode, ship encyclopedia, all the stuff for DLC3, general polish, and finishing up the last of multiplayer. This giant refactor is a strange thing to do late in the life cycle of a game, but it's hopefully a solid demonstration of our commitment to wanting you all to be able to enjoy this game for years and years. My time working on this in a fulltime capacity is winding down, and we plan on releasing the Complete Edition in January, but this game has a long and healthy life ahead of it, I predict.

In a month or so we'll also be adding a Super Supporter optional DLC that lets you help offset the costs of development, which really have been way higher than earnings. At the moment, the game needs to gross another $800,000 or so before I'll see my first dollar of actual profit from this five year project. I don't know that that will ever happen, but at the moment I'm cool with that. I'm just really proud of how this is turning out, and I'd like to see this end on a really positive note.

More to come soon. Expect rapid releases on the beta branch again, now that the bulk of The Great Refactor is done.

Enjoy!

Beta 3.605 Code Will Change

New beta build! https://wiki.arcengames.com/index.php?title=AI_War_2:Finalizing_Multiplayer#Beta_3.605_Code_Will_Change

This one's title is a reference to the Persona 5 song that I'm rocking out to right now (Life Will Change), because I'm feeling pretty darn good after today's work.

We now have some networked personal settings that can be handled really easily with xml and which transmit themselves to the host ONLY if they differ from the defaults, and which allow us to make intelligent automation decisions on the host based on client data that was previously inaccessible.

We also now have a whole new framework for checking achievement statuses, tips to give you, automation to run, and many other things that were previously very expensive (in terms of CPU time) when you add it all up cumulatively. We used to run that stuff (until today) on the main simulation thread in what we call the "stage 3 faction code."

It turns out that had a number of problems with various things like the host being a spectator in MP, or the host not being a human empire (maybe they're a necromancer), or even in solo games if there is no human empire at all (maybe you're playing solo ark plus vassals, or maybe ark empire). All those cases now work, whereas before they would not have.

More than just solving problems, though, this provides a really high-performance and easy-to-read model for modders to follow with their own factions. It is quite "puppy proof" (as described in the prior release notes), without restricting what coders in that part of the codebase can do. So, yeah. I'm feeling good.

There's still more to do for multiplayer (waves, some notifications, and AIP are not visible on clients right now, and I'm not sure MP clients even connect properly because of general bugs that I just haven't bothered to fix yet during this rip and tear phase). And there are a couple of other little odds and ends there. But overall these are great strides forward, they benefit both solo and MP, and we're coming closer and closer to being back off the beta branch for solo, and hopefully then shortly after out of beta for MP.

Happy weekend!

Beta 3.604 Puppy Proofing, Part 1

New beta build! https://wiki.arcengames.com/index.php?title=AI_War_2:Finalizing_Multiplayer#Beta_3.604_Puppy_Proofing.2C_Part_1

Not a lot is different in this one, from an end-user player perspective, but... uh... a LOT is different, at the same time? I fixed a couple of minor bugs, or made them report themselves better so I can see them and smash them when they surface again. Also, chain lightning looks suitably awesome again. But that's about it...

...Until you see this giant section called "Rip and Tear for Multiplayer." I am essentially ripping the guts out of many parts of the game, and putting it back together differently. At the moment, on the beta branch, it means multiplayer is completely trashed, by the way. Why do all this -- is this just shuffling the furniture around?

No, it's... super important, but it's really also very hard to explain. But I'll give it a shot. See... coding multiplayer games is hard. And no two are exactly alike. Trying to code multiplayer is like trying to... um... analogies are also hard. It's a bit like trying to teach in a foreign language that's just similar to one you actually know? The assumption is that you're going to make many mistakes, some of them hilarious, and people will correct you and it will be fine.

The problem is, that's assuming that you have someone to TALK to, in that analogy. Let's instead imagine you are writing a paper in this foreign language you sort of know. It's going to be a long paper, maybe a dissertation. Maybe a whole series of novels! This is a big important project to you, and you keep it mostly under wraps until it is done. You test it all in single player and it's great, and then you show it to people and... well, native speakers are going to give you an absolutely apocalyptic amount of feedback, and require you to pretty much redo the whole thing.

Right, so who am I talking about, anyway? Me? Badger? Modders who code to the game?

...Yeah, pretty much all of the above. Every multiplayer game is like a new foreign language, and as I've been developing this one, I've been putting in safeguards against even myself, and learning what doesn't work. But what gets really discouraging is when there's a seemingly infinite surface area for cross-threading issues or memory leaks to pop up in, in particular. So, with my code architect hat on, I have to think about that less from a "just fix what's in front of you" sort of manner, and more from a "make it so that we can't break it so easily" standpoint.

The engine of your car is really dangerous. It's hot, stuff moves around really fast, there are gears, etc. But it's also REALLY hard to get your hand caught in there. A lot of thought goes into making it so that the appropriate service technicians can get in and do what needs doing for maintenance or for more drastic repairs, but so that they don't cause collateral damage and nobody gets hurt. This is a lot like that.

I'm less worried about the bugs of today, as far as multiplayer goes, than I am the bugs of next year, or the year after. If AI War 2 has a rich modding scene, I want it to thrive for years after my main time with it is through, and to do that I need to code to protect against errors in code that hasn't even been written yet, potentially by people who have never even heard of the game yet. As a side bonus, lest that seem needlessly ambitious, it also solves some bugs that have very much been present in the last year in actual code, and which I have struggled repeatedly to eradicate.

This last month has been a lot of stepping back and trying to make the whole thing "safer" (harder to create bugs via mistake-because-did-not-know-secret-word-conjugate or whatever), as well as lowering the amount of data being sent. In essence, pulling it a bit more toward the single player experience.

I'm getting close, but new things pop up all the time still. When I'm done and it's tested, we should be out of MP beta for good.

Beta 3.603 Last of the Recent Known Regressions

New beta build! https://wiki.arcengames.com/index.php?title=AI_War_2:Finalizing_Multiplayer#Beta_3.603_Last_of_the_Recent_Known_Regressions

This one fixes all of the recent regressions of which I am aware. I wish chain lightning was a bit prettier than it is at the moment, but I'll worry with that later on if I need to. This still hasn't really been stress tested with a bajillion tractor beams using the new beams pipeline, and I have not tested to see if the hacking beam works, but all of the engineering beams are working great, and chain lightning works great (if slightly less fancy than I want).

All of the other strange stuff of late with pause causing some oddities, or starting new maps being not centered properly on your planet, or saves not seeming to remember your last planet you were at, are all fixed. So is the Exit to Desktop just taking you back to the main menu!

There are certainly other bugs that I'm aware of, but all of the really annoying or serious ones seem to be dealt with now. Actually in the most recent beta you couldn't change lobby settings! So that's also fixed.

Zweihand added in a new starting fleet option, for Zenith Onslaught, which has a bunch of ships from that DLC.

There's still lots more to come in terms of bugfixes and QoL and such, but depending on the urgency of those things I may just focus on multiplayer for a bit. There's still a pair of remaining issues where I really need to rip and tear some code before things get better (notifications at the top bar, and the "description appenders" for certain units), so I had probably better start there. Those might accidentally break some things for single-player (again, sigh), but those are the last really main such things involved for multiplayer.

After that I need to load up multiplayer and start fixing whatever I find until it's fully functional again in the new reduced-scope-on-client paradigm. There are some optional things that I can do to help with RNG determinism past client-or-host-gates, but honestly when it comes to those the game self-repairs so fast in MP that I'm not overly worried about the problems those cause. I will get to that, but it's probably not urgent. We shall see.

Anyhow, MP is almost certainly not going to be ready for play this weekend, because this stuff with the ship to ship lines took VASTLY longer than I expected, but I will be supremely frustrated if we aren't in a MP-ready state for the weekend after. My hope is that maybe sometime next week, or the week after at the latest, that we can merge the beta branch back into stable. I won't be ready to declare MP out of beta until we have more testing on it, but all these code upheavals of the last month should mean that the surface area where things can go wrong in MP is way reduced, as well as bandwidth itself also being reduced.

Now that we're taking more time on DLC3, I can also try for the original vision for Expert mode, so that will be sometime soon, too. But not prior to merging back to the stable branch, unless I'm for some reason just waiting on tester feedback.

More to come soon.
Enjoy!

Beta 3.602 Linesanity

New beta build! https://wiki.arcengames.com/index.php?title=AI_War_2:Finalizing_Multiplayer#Beta_3.602_Linesanity

Please bear in mind that this one has some known issues. If you have a bunch of problems, please use the most_recent_stable_beta to get the prior build.

If you have big cases of tons of beam weapons or chain lightning or tractor beams or tachyon beams (if you have those turned visible) in a savegame, then seeing how that runs for you in the prior version versus the new version would also be really interesting to me on a variety of hardware. Some folks were struggling before with ultra-many-tractors being shown, but that should be a thing of the past (knock on wood).

Overall this new build has a couple of small QoL improvements, mainly better hover and tooltips over wormholes, and then a tiny bit of balance (one unit -- electric bombers), and then everything else is bugfixing work / refactoring.

The way that we draw "ship to ship lines" like repair lines, claim lines, chain lightning, beam weapons, and so forth has been re-coded from absolute scratch. It was having performance problems before, as well as three interlocking pools that were really complicated for me to manage, as well as various bugs like some beam weapons or hacking lines not showing up in the past.

There are NEW bugs now, but these ones are at least in a simpler (from the outside, to manage) framework that doesn't require pools. It did require quite a lot of computer science / mental acuity testing on my part, which I may or may not have passed with various levels of success. ;) There's a list of known issues, most of which are cosmetic or minor QoL right now. I don't think any of the new issues are actually about correctness or performance, but fingers crossed. This is hot off the presses, and I've only been able to test it on so many scenarios.

I'm releasing this one now, despite knowing there are still some things wrong with it, because (as noted) those are mostly cosmetic, and I could really use the testing help from folks who are interested. I'll be banging on this more tomorrow to get the rest of this out. This is one of those things that affects both single player and multiplayer, but one thing that was part of my plan this week was to get a lot of multiplayer stuff shored up and to hopefully get us closer to exiting the beta branch for both SP and MP sooner than later.

Also, our timeframe for releasing DLC3 (aka NA) has been pushed back to January. There's an actual much more accurate description of what is in the new DLC there now, though: https://store.steampowered.com/app/1466780/AI_War_2_The_Neinzul_Abyss/

This is going to be the final DLC, and it's a really big one. Some of the things that you may notice that have vacated from the old page description are roguelike stuff (that is out NOW, for free, in the base game instead!), and the Obscura (those got cut and replaced with a ton of other stuff).

My goal is to finish up all the kickstarter last items by sometime in November still, and so when the AI War 2 Complete Edition comes out in January, that should really be the complete thing. We will of course still have some bugfix releases, and the modding scene will hopefully continue to grow post-complete-collection, but I'll be working on some other projects. At the moment a smallish hex-based turn-based strategy game is sitting at the top of my interest pile, but I keep switching concepts, so we'll see what sticks. Part of my time will start going to that starting in November.

Anyway! In the short term, it's all AI War 2, all the time. Lots more to come soon.
Enjoy!