AI War 2 Alpha v0.112 “Plasma, Forcefields, and DirectX11” released!

Since the last blog post I made, we’ve done two intermediate versions, and this is the third.

In cases when I just don’t have time to update the blog for whatever reason, bear in mind that there are three places that always get updated:

  • Steam itself will auto-update you unless you’re on a specific locked-in “beta” branch for whatever reason.
  • Our official forums always gets a quick post, because that’s super fast.
  • The release notes page always gets a new entry, and the date logged for the build.

At any rate, apologies for not updating the blog on the last two builds.  It’s something I try to avoid doing, but I’d rather miss a blog post than a release.

So: what’s new lately?

  • Keith updated a ton of stuff with the modding capabilities in 0.110, which is a big deal for modders.  It really increases the power/flexibility of the modding system.
  • I upgraded the version of unity that the game runs on in that same build.
  • As part of 0.111, Keith fixed a bug that was causing crashes on linux and milder problems elsewhere.
  • This new 0.112 build includes three new units in the game.
  • This build also now includes DirectX11 support, to deal with an OpenGLCore crash bug on at least one windows install.
  • There are a variety of under the hood improvements in this new 0.112 build that are getting us a bit of extra performance and quality in a few areas, and which get us closer to getting into some of the GUI work.

Other stuff?

  • Blue has been pulling her hair out working on the new icon system for the game, and the results are coming along really well at this point.  It’s been a big task and the topic of much discussion with players; even after the direction was set late last week, that still left a lot of experimenting to get something that looks cohesive and clear while still being attractive.  Getting just the right amount of detail is a big deal.  We’ll be ready to show that off later this week, I think.
  • There is a backlog of 3D models and textures that are done and ready to get into the game, but unfortunately Cinth had a very serious medical emergency over the weekend and so will be out for a few weeks at bare minimum, and possibly more like months.  At the moment he’s still in the hospital.  Please share your well wishes for his recovery.  At any rate, a bunch of that stuff will drop all at once sometime soon once I have a chance to get to it.
  • In general, Keith has been looking at the GUI more now that I’ve gotten the unity project set up for him to be able to do that sort of thing.  So we’ll see what happens with that, in terms of what he does with it both with and without Blue at this point.  He can speak to that better than I can.
  • I’ve been working on a modified version of the sort of sprite batching system that I use in starward rogue for actually displaying the ship icons that Blue is creating.  That’s been a tricky thing, because they are pretty different systems, but after a lot of study I just don’t think there’s a more efficient way of handling it.  The actual GUI won’t use that system (that would be less efficient, not more), and of course the main game doesn’t either (same deal when it comes to large ships).  But for this particular case it should pan out well.
  • I was also working on some cool stuff relating to a new system for explosions of ships, although I’ve temporarily set that aside.  The general principle of it works and looks great and seems to perform well, so that’s enough for me for the very short term — I have bigger fish to fry before I finish that one up.

So that’s what’s going on with us.  Thanks for reading!


AI War 2 Alpha v0.109 released!

Version 0.109 – Special Forces And Modding is short on release notes but long on impact.

There are two really major components added in this one that Keith and I have been wanting to get in there for a while.  The first one is the special forces from Keith, which you may remember from The AI From Within: Part 4.  So that’s… a pretty awesome big deal. 🙂



The second item is one that has been on my todo list since before alpha even started, which is the unity project for modders.  That link has a good video tutorial that covers the setup on all that, and it’s that screenshot that you see above.

This lets modders start experimenting with graphics, and soon sound, for the game.  But this also is a project where we’re going to be putting all our GUI bits — meaning that Keith is able to manage those assets more directly when they are in the prototyping phase at least, and meaning that the GUI will be as open as possible for people to make any sort of edits to.

Blue and Cinth are both still plugging away at some cool things at the moment.  She’s finished well over half a dozen new ship models that had backed up in my queue for processing into the game, and Cinth is taking that load off of me.

Blue is working on a new version of the icons for squads, based on lots and lots of feedback from folks so far, and then our interpretation of the overall trends (since individual opinions vary quite widely).

We’re not going to show off the new icons at all until they’re fully integrated (sometime early next week, I imagine), because we’re now to the point where it will be most helpful for all of us if you can see the next prototype fully in place in the game.  We’ve had a lot of people having to try to imagine how things will look in actual practice when there’s a lot of stuff onscreen at once, and while people have done a fabulous job with that, hopefully we can all agree it’s time to stop imagining and start seeing.  Then we’ll continue iterating from there, as needed.

Anyhow, there’s a lot of other random bits of things inwork as well.  As always, I suppose.  Definitely an enjoyable time at the moment. 🙂

Thanks for reading!


AIWar 2 – “AIW2ModdingAndGUI” Modding Tutorial

This video is directed at external modders, for whom we’ve now set up a unity project that comes with the game and which makes it easy for you to add your own ships, models, sounds, visual effects, and more.

This does NOT cover code additions or changes, and data changes like balance statistics, etc. Those are handled through the AIWarExternalCode visual studio project, and the GameData/Configuration xml files, respectively.

Actually creating content for any of the above is beyond the scope of this particular video, which is more about how to get set up and find what you need. There is an ongoing series of videos that I’ve created that does cover all sorts of topics related to this, however.

And in the future I’ll create more videos that are more concisely focused on specific modder-oriented topics.

This video requires you be on version 0.109 or later of the game.

Thanks for watching!

AI War 2 Alpha v0.107 released!

0.106 was just a minor bugfix version on Monday.  This one is more midsize.

There are a variety of visual and performance improvements in here, and some things to help us figure out why OpenGLCore may have been in use on some (all?) machines instead of DirectX9.  There are a lot of visual tweaks to the ships themselves.

The biggest new thing that Keith is working on isn’t in this build, but should be ready tomorrow from the sound of it — that’s special forces. 🙂

Blue and Cinth and I all have more goodies that we’ll be sending your way soon, too.



Tutorial – Mesh Importing And Setup From Maya

March 7th, 2017 – Quick notes for Cinth (or modders!) on importing models and then getting them properly combined and atlased. Unfortunately if you want to use the same tools that we are for the atlasing and the combining, you’ll have to purchase licenses for those for yourself. But there are tools in Blender and other locations that do similar things for free.

The tools shown in use in this video were:
Mesh Simplify
Pro Draw Call Optimizer

This is a really good talk by Unity.

This is the sort of thing that is bread and butter for Keith and I.  Unfortunately, past a certain point Unity is a black box.  This guy pulls back the curtain some and reveals some important things that we’re going to be integrating into our existing optimizations that we already have worked into AI War 2.

And before anyone asks: no, this wouldn’t help any of our prior games (Release Raptor aside).  We rolled our own with pretty much everything previous to now, so we didn’t have to know the internals of their transforms or gui dirtying passes, etc.  We had our own.

Granted, that’s been a subject of intense study for me for over a year now, but there’s still not relevance to older projects.  Should be nice for AI War 2, though. 🙂

AI War 2 Alpha v0.105 released!

0.104 was just a minor bugfix version on Friday.  This one, however, is hefty.

Lots More “Core Work” By Keith

Keith’s been working on a ton of things, ranging from bug reports and minor feature requests from testers, on up to getting more of the game itself implemented.  It’s really nice to see that progressing on both fronts solidly.

My favorite change on that front has to be how the guardian behavior is different — it’s a lot more akin to how guard posts worked in the first game, which was always the point.  It actually allows for some degree of stealth, etc.


Blue is doing a lot of work with players seeing what she can figure out on the squad icon front.  Basically there are a few competing processes pulling the design for those in different directions:

  • Blue is doing her best to make something that is attractive and that she can be proud of.
  • I and various players are trying to cram as much information as possible in there.
  • Blue, myself, and various players are trying to strip this down to be as simple as possible given the desire to have this be both attractive and informative.

So that’s basically an iterative usability study, in essence.  It’s a lot easier to arrive at something attractive when you don’t try to hit it all in one go, so having you folks to work with on that has been golden.

On my end, I’ve been chasing upgraded ship shaders thanks to Cinth and some work he did.  I’ve also been working on the skyboxes and making those look better, which is something that had been on my list for a while, anyway.  I hadn’t intended to work on that so soon, but the time turned out to be right.

So overall the game has taken a few leaps forward visually already in the last week, this build in particular… but we’ll be seeing a lot more of that coming up as I get more shader work done and Blue gets more icon work done.



Next release likely on Monday — but check this out!

Hey all, Chris here.  As I wrote earlier today, I’ve taken a tangent into some other work.  This was work that was on my todo list anyhow, but it’s stuff that is coming up much earlier than I had expected because Cinth thought of a few things and I then wanted to try those out sooner than later (to avoid later rework).

It’s been a lot of shader-writing today, as well as a lot of experimentation and post-image-processing work in general, and profiling the GPU pipeline, and so on.  The result, so far, is something that I think should be about equal load to the prior version of the game, but which looks far better.

But the tricky bit is that now this is bottlenecking everything else; I have to finish this before I can even check in my current batch of work, and it touches a great many things.  So no release today, but I think I’ll have it fully sorted out for one on Monday.

Here are some screenshots of how things look at the moment in my little testing scene for all the various ships:

The image above shows the forcefield generator transitioned over to using the Standard shader in unity (and thus the PBR — Physically Based Rendering — pipeline).  Previously this was all using custom shaders by me, and using lots of rim lighting and such.

But now it is keeping the painted look from Blue, mixed with the metallic look that is very modern, mixed with the existing emission maps.  The result is something hybrid, as you can see with the forcefield generator, above.  I’m really excited about it.

You can also see one of the new space skyboxes that I’m working on.  These look more modern and are more gradient-based, as well.  More stylized and less perlin-looking noise and gaussian effects in the nebulae.

Oh, also, you can see how the warp gate is looking now.  It’s vastly more metallic in most of its parts, except where it has emissions.  The purply look was rubbing me the wrong way the longer it stayed, and I wanted something simpler while still keeping the emission maps and the LINES that go into the normal maps (bumps on there).  This hits a good middle-ground.

This next one, above, shows a different space skybox scene.  And then it also shows a view of the converted bomber and fighter.  Those are using the PBR shading, as well as the existing paint style from Blue.

With the bomber I actually made a metallic map for it so that the really pretty painted areas of orange on it (barely visible in this one) would stay very matte-feeling.

The fighter will need one of those also, and/or some lighting adjustments in general; but that one already had some texture checkup work scheduled.

In the very far bottom area, you can catch a glimpse of some of Cinth’s derelict alien husk models that got all this started. 😉  They aren’t done, but they’re coming along well.

This last one, above, shows a bottom view of the space dock (why not).  This gives a good view of some of the metallic effects and how that changes it to not look matte, mixed with the existing emission maps and so on.  I think it works out as a really nice hybrid.

And then there’s the background sky, which is yet another of the new ones.

Meanwhile, Blue has been working on the icon rework process with a lot of forumites, and I’m pleased with how that is progressing as well.  Hopefully on Monday this feels like a pretty complete revamp in some ways, although her new icons stuff won’t be in until later next week even if she finishes it this instant, because there’s some coding on my end I need to do to handle the different style of icons.

Anyhow — happy weekend!

Sometimes you just gotta ignore the priority list.

One of the things that will become apparent for those in the alpha is that I don’t really work in a linear fashion. 😉

I have a todo list of things that is long, and there are things of relative priority in there even within priority categories.

One of the things that is funny about todo lists like that is that if you never take time off from the highest-priority category, often the lower-priority ones don’t get done at all.  The highest-priority one just fills up again and again, etc.

At any rate, the other comment I have is that typically you have to seize upon inspiration when it strikes.  Sometimes I look at a piece of code or other work and just think “oh man that’s going to be a slog,” but I’m excited about something else on the list.

In those circumstances, unless the house will burn down if I change items, I switch to the item that I’m excited about.  That gets that item off my list, and I’ll wind up doing it faster because I’m more excited about it.

Later I’ll revisit the thing that I had been dreading, and one or more of three things will now be true:

  • I’ll be excited about that now; or
  • I’ll have at least had an epiphany about it so it doesn’t feel so bad; or
  • I’ll feel so guilty for “slacking off” that the energy from that will propel me through.

Sometimes people comment on how darn fast Keith and I are at doing various things.  I don’t know what Keith’s methods are, but I tend to use various tricks to get myself to work harder than my natural inclinations.  “Slack off” by doing a lot of little things, then tackle the big thing out of guilt, etc.  It’s surprisingly effective at chewing through large todo lists.

The last couple of days I’ve felt particularly slack because there’s been so much OS-specific stuff that I haven’t been able to really focus much on my todo list at all.  I’ve gotten a few things done, maybe a dozen at most, but it’s not what I’d prefer.  A lot of the other things I got done never made it onto that todo list at all.

Today is another funky day for me, in that regard.  Cinth made some mockup derelict ships that look amazing, but are very metallic and thus PBR-lighting-model-based.  I told him I’d have to redo that of course, which he knew going in, but dang if we both didn’t really love the look.

Soooo… I thought about the performance gains that we’ve unexpectedly had with the game thus far, and started wondering about going with a PBR pipeline approach with the main game ships themselves.  It means throwing away my rim lighting shaders and a variety of other things, but it could be awesome, right?

Turns out: yes.

So I’ve been working on a hybrid style that gives those homeworld-2-looking flat shaded models a more modern metallic styling to go with them.  The approach actually works really well!

But it does make the ships a little bit darker, which fits with another issue I have in general, which is to do with the space backgrounds for the game.  It was way down on my list, but I had already noted I hate the backgrounds for the skyboxes, and wanted to change them.

So that’s also happening.  We’ll see where performance winds up, but this is all GPU-side stuff.  It’s possible that my Mac will have some sort of issue with this on the GPU side, but somehow I suspect not.  I have some more shader work to do with the lower LODs than 0, but I think that I can get some really interesting things going there.

Also of note, on windows in particular it was using DirectX9 in builds up until now, which means that the BC7 compression format was being uncompressed and then sent to your GPU in an uncompressed format, wasting a lot of bandwidth on the GPU bus as well as VRAM.  I’m switching over windows to primarily use OpenGLCore, since that can use BC7, near as I can tell.

I could just make it use DX11 on windows, but I have endless problems with the unity editor itself bugging out on me in DX11 for some reason.  On like 5 computers with fresh installs on 3 different windows versions (7, 8.1, 10), over multiple years, on many different unity versions (4.x to 5.x).  Curiously, almost nobody else has this problem, so I guess I just have some sort of strange DX11 Editor curse.  Actually running DX11 in the standalone player works fantastically.

Anyhow, that’s yet another aside.  But basically I’m now finding that I want to toy with a few more styles and options now that we have all these different machines with different performance coming back to us.  Almost all the machines are running at 60fps+, and I’m wondering if I can keep that happening while also sliding in a few more advanced bits.

I’m betting so, but we’ll see for sure when the next build comes out tonight.  That’s what I’m working on today, anyhow.