Thanks for all the help! Major performance improvement pass now complete. :)
26 days ago
– Thu, Jul 19, 2018 at 08:11:08 PM
The details are in the two most recent release posts, for My Friend The Marauder and the newer Mathematics Milestone. And then there's a further rabbit hole into the voluminous release notes from each of those.
Quick Aside: Review Our Stuff!
We're still running our #loveindies giveaway through the end of tomorrow. Sign up to potentially get a free copy of AI War 2 or Stars Beyond Reach. On the subject of #loveindies, would you mind leaving a Steam review for some/any of our games? It doesn't have to be much more detailed than a thumbs up, but if you like a game we made and want more people to find it, that's how you make it happen. Like most indies, we could really use the support. Reviews make a material difference in pushing us out of the obscurity of the sludge that often surrounds indie titles on the storefront these days.
Please note that you don't have to leave a review in order to enter the giveaway; and you shouldn't leave a good review if you don't think good things. Reviews don't help your chances in the giveaway, blah blah blah let's just clearly keep things ethical.
Back On Topic
Since we had two recent kickstarter updates that were asking for help, I felt like it was a good idea to actually follow up with a note that we actually DID get the help we needed.
After I open-sourced the multithreading code, BearPerson came in and made short work of fixing up the core issue it had. He then noted that our actual larger problem is in our timing code. We haven't fixed that yet, but now we know where to look on that one, and Keith's on the case.
On my end, I've been focusing on the visualization layer and making that more efficient. And I have to say, I'm just so excited about that. I'm the only person who has really had a chance to play the game with the new improvements on that front, since I just pushed that release out about 10 minutes ago. It's night-and-day different, at least to me. What felt sluggish in various small ways (switching between planets, for instance) is now instant and crisp. Startup times for the entire program are faster. Etc.
It took even more work than I'd been expecting, and I had been expecting plenty of work, but it was well worth the time. As part of that, we're also now using SIMD hardware accelerated vector math. And the game looks better than ever, thanks to some little graphical tweaks I've been making as I went. For instance, I still love this new animated forcefield visual:
New Friends For Players
Another thing that is unrelated, but super cool of late, are the new allegiance options for factions (we don't even call them minor factions anymore). You can have marauders, macrophage, nanocaust, or even the devourer on your side, now! Or hating everyone, hating just you but not the AI, etc.
The situations you can get up to with all that are pretty crazy, and Badger is the one to thank on that front. It was a super good idea by him and some of the folks on the forums to do that, and then he implemented it.
Basically you can now treat this as a simulation sandbox (ala The Last Federation) and just watch while factions smash each other to smithereens. Or you can put yourself in there as Unicron's little buddy or The Borg's sidekick, essentially. Super cool stuff, and potentially both fun/funny as well as interesting learning scenarios as well as legitimate strategic opportunities.
Either way, even if you're not making the nanobot scourge your friend, it's pretty telling just how much busier and multi-faceted this game can become than just the fight between you and the AI that the first game had. You really have a good shot of seeing a conflict between two factions you hate, exploiting either the distraction or the opening that causes, and making new inroads from that.
If you don't enable these factions, then the game stays pretty much like what you remember, just upgraded a bunch of different ways. If you turn these on... well, it's a whole new era, I feel like. Today is a good day.
Example of Awesome Modding - and Multithreading Help Wanted
about 1 month ago
– Wed, Jul 11, 2018 at 08:49:48 PM
Are you a programmer interested in helping out on a multithreading issue? Be sure to see the bottom (or this forum thread).
Case Study of Modding: Marauders
Before talking about the release or multithreading, this is a great time to talk about the power that our Modder #1 (and volunteer developer to boot), Badger, has been able to exert thus far. He's made a ton of factions, but right now let's talk about Human Marauders, which were in the first game as well.
If you don't remember them from the first game, that's because they weren't too exciting; marauders were units that would periodically show up from the gravity well edge (not a wormhole) and cause some trouble. They were hostile to the player only, and were generally pretty insignificant. It added a tiny bit of spice, but not much.
He started from scratch when implementing these in the new game. His version of Marauders are hostile to everyone. They will attack any system they deem "weak enough to take," then drop in from the edge of the gravity well. If they destroy all the defenses, then they start building Outposts, turrets and additional ships. They're already starting to defend the planet as their own. If you leave the planet alone, the Marauders will keep making outposts, and each outpost will get stronger (ie it will build stronger defensive ships and more turrets).
Once an outpost hits Max Rank, it starts to build Raiders (powerful starships). Once the Marauders have built enough Raiders, they will attack adjacent-through-wormhole systems that they think are "weak enough to take." If you leave outposts at Max Rank, the marauders will be able to attack more and more often -- their "Attack Budget" gets bonuses based on how many Max Rank Outposts there are. Also the Max Budget gets increased every time they capture a planet.
Fun fact: If you take out all the defenses on a swath of AI planets around your empire (but haven't actually captured or defended the planets) then the Marauders will rapidly take all of them over and potentially become a real threat. To you... and the AI and other factions.
TLDR: Instead of just launching quick raids, these Marauders are here to take their own stab at conquering the galaxy.
People have been giving lots of balance feedback on the Marauders, as well as positive impressions for that faction on Discord.
This also illustrates two pretty key points:
The marauders are an example of what can be done with the modding tools of AIW2, but which was basically impossible for AIWC even for us as developers. Gives a bit of context as to why making this sequel was important.
- It's also a really good example of how a "Decent but not exciting" AIWC faction turned into something way cooler in AIW2, so buy AIW2 to get cooler stuff. ;) There are a lot of factions like that (all-new ones and revised ones), even though we're pivoting the core mechanics to be more like AIWC. For anyone worrying that this is just AIWC HD, please fear not!
AI War 2 v0.749: "Release The Hounds"
Just out today. Release notes here.
Where to even start? This release is pretty sizeable.
There's been a bunch of balance to minor factions.
- Mercenaries got some extra oomph.
- AI Waves were previously capped at 100 units (cough, whoops), but now will gleefully flood your planets properly.
- There are auto-build options for your convenience now available in the game settings.
- The salvage and reprisal mechanics from the first game are added back in.
- Golems are now available again -- five of them, anyway!
...and all of that stuff is just what Badger, a volunteer, has put in this release. To say we're indebted to him is an increasingly sharp understatement with every week. Holy smokes.
On my end of things, I upgraded the game to Unity 2018.2 and mono-.NET 4.6. Some performance improvements were possible from this, and a lot more multithreading options. A few boosts happened out of the gate, and I was able to explore (and then discard) the Lightweight Rendering Pipeline as an option.
I spent a fair bit of time on the multithreading problem, but at this point I've been hitting a wall where I can't get the performance any higher. I'm sure with more time I could figure it out, but in the meantime there are bigger fish for me to fry in terms of performance blockers (namely the front-end vis layer's extreme performance hits, which I talked about two releases ago).
Multithreading Help Wanted
Last release I asked for some help on the multithreading problem, which was clarified here. At this point, I've basically hit a wall in my ability to improve the threading without getting really excessive in my expenditure of time. There are a variety of other things that really need my attention right now, so I'm having to put this on the back burner.
That said, I've open-sourced our multithreading code and our core sim loop, so if there are any kind souls who want to take a look at it and help more directly with revisions, that would be super appreciated. I know folks were a bit hampered by being blind to the code before.
How to get at/test code:
1. Make sure that Steam has updated you to the latest build of the game (0.749 or later).
- 2. Inside the install folder for the game, open the AIWarExternalCode. There you'll find a AIWarExternalCode.sln visual studio solution.
- 3. You can open that with visual studio community edition 2015 or 2017, and then it should let you compile directly to the GameData/ModdableLogicDLLs folder.
- 4. Running the game after having compiled a new version into that folder will run it with your changes in place.
- 5. If you want to use a different IDE, or even no IDE and just compile manually, you can do so. Badger has scripts for doing so on linux, for example.
- 6. The actual scripts of relevance are in the AIWarExternalCode/src/Sim folder (and its subfolders), which has a variety of C# files that I've added comments to. There are other files that call into and out of those files, but all of the multithreading bits and the main-thread-bits that call them are all there.
- 7. I've made a mantis ticket on our bugtracker that has the savegame, plus instructions on how to see the issues.
Any help is appreciated! And I'm happy to answer questions. I have made a forum thread that is probably the best and easiest place for us to discuss this.
Right, That Wraps Things Up
Anyway, that's enough out of me. There's a lot of excellent progress.
Thanks for reading!
I again wanted to mention: we have a new Steam Developer Page. If you go there and follow us, you'll be notified about other upcoming releases (including this one, of course).
Any C# multithreading experts in the crowd?
about 1 month ago
– Fri, Jul 06, 2018 at 02:09:34 AM
In the latest release, I talk about some of the various performance profiling work I've been up to this week. It's a lot!
There's a particular multithreading issue that is eluding me so far in terms of the best solution, though, and I thought I'd check here if anyone in the backer crowd has experience in that area. We've got a lot of programmers amongst us, so I figured it was worth asking rather than just me banging on it on my own. Feel free to email me at chrispark7 at gmail.
All will be well either way, don't worry. :)
v0.745 Released! "A Pivot And A Leap Forward"
about 2 months ago
– Thu, Jun 28, 2018 at 01:12:32 AM
Release notes here.
Wheeew! This one is massive. It's been almost two months since our last release, and it shows. Here are some highlights of what's new:
The first two (out of five) waves of the pivot are done.
- As part of that, you'll notice that the game feels way more like the Classic experience, and your prior experience in this sequel is now not so useful.
- There are THREE new factions, thanks to Badger. These don't have proper graphics yet, but you can test them out anyhow.
- Faction 1: Astro Trains make a triumphant return from the first game. This is one people wanted to love, but always hated. I think you'll really love this incarnation of them.
- Faction 2: Macrophage. This one is completely new, and is a bit like reimagining the Devourer Golem as a part of an ecosystem. Note that the traditional Devourer Golem will be returning later (probably with some upgrades).
- Faction 3: Mercenaries! Only the barest amount of content is implemented for these so far, but they are basically hired guns that you can pay for with hacking points or metal, and which have various behaviors depending on the faction you hired. You have to find their Communicator out in the galaxy before you can contact any given group.
- Note that this is how we'll be handling the various Mercenary-related backer rewards from kickstarter, coming up.
- Also note that the Classic-style mercenaries still exist (and are added back in already), but are called Auxiliaries now. So double bonus!
- The Dyson Sphere faction has seen a big rework, so you can now have multiple dyson spheres in the galaxy, and they can be Antagonized like in Classic. Once again, thanks to Badger for adding this exciting stuff. :)
- Lastly in terms of faction-related stuff, Marauders have also been upgraded. They now can capture planets, get larger outposts, and start raiding their neighbors (you or the AI!).
- Note that the core content is comparably anemic at the moment since we're only through 2 out of 5 waves of content, but thanks to all this faction-based stuff that Badger added it suddenly feels new and exciting anyway. :)
- It's a good time to mention that we have a bunch of new graphics and icons for many of the new ships that are now in the game from those first two phases, but we're not wholly done with those yet, either.
- We've added a metric ton of misc bugfixes and quality of life improvements.
The two-color (main color and trim) icons now work fully, and are really cool to look at. There are prefab pairings of colors that look nice and make it quicker to choose some nice things.
- The two types of Rally options for constructors now work, and so does the pause constructor option.
- The mouse/keyboard controls code has been rewritten from the ground up, and the way that the camera controls in both the planet and galaxy map views has been improved a ton.
- The galaxy map itself has seen a ton of improvements and is now vastly more useful and readable. There are still more things we need to do, but it's a lot closer to our final vision for it, at least.
- A notifications bar has been implemented that shows you various information, like incoming waves, CPAs, and places you're being attacked. These come packed with relevant information in tooltips if you're interested in it, but stay very compact and tidy on the screen otherwise. This is very exciting since it doesn't take up so much space compared to the notifications in the first game, but it has even MORE information than the first game ever did.
- Wormhole visuals have been redone AGAIN, but they are now a lot prettier as well as a lot more functional. This probably is the final upgrade for them, for real this time.
And... yeah, that's just kind of briefly describing the highlights, despite how long it was. This is truly a massive release. It completely reinvents the game, just as we'd hoped and planned, but bear in mind we're not nearly done on that front.
At this point I can't directly speak to whether or not we are on schedule for a July release to Early Access. My guess is no. A lot of this is going to depend on how much people report in terms of issues and requests coming up, though, and how quickly Keith and I are able to get through our respective portions (more phases on his part, and then graphics for those bits and GUI re-implementation on my part -- the lobby is still atrocious and temporary, for instance).
Follow Us On Steam!
Hey, by the way -- we have one of those fancy new Steam Developer Pages. If you go there and follow us, you'll be notified about other upcoming releases (including this one, of course).
This is a big milestone for us, so it's very exciting to finally have this out to you.
Soundtrack here! (Also v0.743 Released! "Music Blooms")
3 months ago
– Wed, May 02, 2018 at 08:30:10 PM
Release notes here.
Surprise! The soundtrack is here. :)
For all kickstarter and backerkit backers with that as a reward, you should have an email now with the link to download it, or you can log in here to download it: https://aiwar2.backerkit.com/
For everybody else, these tracks are now a part of the game in general and something you get to enjoy as you play. I'm super thrilled with how Pablo did this soundtrack, and it's absolutely a huge one when you combine in the various returning tracks from Classic, the unused Stars Beyond Reach tracks that are being used in this game, and then of course the new compositions.
On an unrelated note, the bloom style and levels have been adjusted. Various folks requested this, and it was bugging me, too, but getting just the right algorithm and getting it tuned just right so that it's there, but not overwhelming --and also not flickery with fast motion -- can be a tall order. Fortunately I think I finally have a solution in place, although some specific emissive objects might need their emission levels adjusted either up or down.
Repeating myself from last release, and probably for the next few releases: behind the scenes Keith is still working away on the first wave of the pivot
. None of that is in this release, but it's coming along. :)
As a reminder, we're running a deep discount on the original AI War and its expansions
. If you or someone you know doesn't already have that game, now's a super good time to pick it up. If you somehow are reading this here but haven't chosen to get the sequel yet (via kickstarter/backerkit), then now is also a super good time to wishlist the sequel
. If you wishlist it, you'll be notified when it goes to Early Access and when it goes to 1.0.