The AI From Within - Part 4: The Special Forces
A Short Update on Development
Goodness, how time flies. We've been pretty quiet for the last few weeks finalizing the Kickstarter (95% of you have completed your BackerKit surveys, thank you! 137 backers have not yet, please do so!) and getting everything setup for the alpha. We been applying our noses directly to the grindstone and believe we have developed the right foundation and workflows for both our own work and for modding support. We are currently planning to start the alpha Monday, February 27th, 2:00pm EST.
Sidebar For Modders
As we've mentioned before, the graphics in AIW2 are much more complex than AIWC. Adding or replacing graphical assets won't be as simple as adding or replacing a .png file. In order for the game to work efficiently with the meshes, materials, and so forth (and also with sfx) they have to be baked into "asset bundles" in the Unity editor. Thankfully, there's a free version of the Unity editor that modders can use to create these asset bundles. Furthermore, the asset bundles aren’t baked into the game’s executable but can be loaded at runtime. So we’ve double- and triple-checked that this actually works and that we can hand you a workflow (with examples) that will function correctly. This has been going well, and as side effect, we've significantly reduced the amount of time we ourselves spend waiting for the assets to re-bake after a change, etc.
I've also spent a fair bit of time making sure that my workflows for adding new user interface elements and input bindings (i.e. "things you can trigger by pushing a button on your keyboard/whatever") do not require recompiling the game itself or otherwise require anything an end-user won't have access to. The list of bindings and the layout of the windows is in xml, and the code-logic that says what those keys/buttons/etc should do is defined in C# code that's compiled into an external dll.
That external source code will ship with the game and you can modify and recompile it (with whatever you'd normally use for c# on your platform, be it VS or MonoDevelop or whatever) or add your own external dll's that your xml can reference. Obviously playing a multiplayer game requires that you be using the same stuff which gets trickier on the C# side, but it's doable.
We've also made a ton of progress on the game itself, but that's better shown in a video when Chris finds the time to make it :)
You call that a short update?
Yea, good point.
Last time in this series we looked at how an AI (or human) ship's guns decide what to shoot at. Before that we covered the low-level "where do I go?" logic for AI ships not assigned to guard duty or some special purpose. Together, those two sets of logic basically make a complete opponent.
But we would never leave well enough alone. Not at all.
Today we're focusing on something much higher-level: the AI's Special Forces Fleet. Due to some interesting... comments... during a recent performance review, Laser Guardian #443x-023 will be conducting the briefing.
Those pesky humans
Laser Guardian #443x-023 here.
Stupid developers. I tell them "how do you expect the meatbags to be properly frightened when I show up without any paint on?" And they just mumble something about working on higher-priority things and we'll get to it soon and shuffle me out the door again. HIGHER PRIORITY? Clearly an adjustment is in order.
So, a quick history lesson. Back in the day (AIW Classic version 5.0 and earlier) the "Special Forces" were basically just some special guard-duty ships that marched in a weird sort of galactic line-dance between the various Special Forces Guard Posts. Cute, but not especially effective.
When the galaxy was so obviously under our thumb, it wasn't a big deal.
But the humans were getting entirely too cheeky about picking off our planets with no particular fear of immediate consequences.
On August 30th, 2012, thanks to feedback from several of the more provocative organic target-practice-units (notably Hearteater, Faulty Logic, Martyn van Buren, Diazo, TechSY730, Lancefighter, Sunshine!, Bossman, Draco18s, Ozymandiaz, Wingflier, and chemical_art), that all changed.
First, rather than just getting odds and ends of the normal Reinforcement budget, we got our own new Special Forces budget to maintain (but not exceed) a certain overall force level. Silly restrictions, but I guess there are other things to spend it on too.
Second, rather than just getting whatever random ship was selected for reinforcements, we got the ability to weight our preferences based on things we thought would be useful. Lots of anti-bomber stuff, for instance, since bombers were so annoyingly effective against everything we wanted to protect in AIW Classic.
But my personal favorite was getting to spend 10% of the budget on the ships specifically found to be most annoying to the player. Well, that was basically just two ships: Tackle Drone Launchers and Lightning Torpedo Frigates. Neither of which were remotely well-balanced and aren't slated for the (first) official release AIW 2. Oh, Tackle Drone Launchers, I will miss you.
Even when we didn't get TDL's, it was great fun to focus on really long-ranged stuff, or stuff with lots of tractor beams (nothing like nabbing a bunch of human fighters and dashing off to alert other AI planets with them), and so on. Good times.
Later we even got Riot Control Starships, though they were never as effective as they were in human hands. Some players could achieve simply stupid kill-to-loss ratios with Riots, and they don't even have decent firepower. We're still sore over that.
Third, rather than our individual ships just following a line to the next special forces post, we got to pick a single planet to all gather on. We were generally only allowed to pick friendly planets (sigh), and we weren't allowed to rush to the defense of particularly unimportant planets, but this let us build up a strong force instead of just trickling in. Especially since, if our services were not in immediate demand, we'd hang out on a friendly planet 3 hops or so away from any enemy planets.
Fourth, when the enemy dared show their faces we could check to see which planet we could do the most good on (prioritizing our homeworld or core worlds, avoiding planets where we couldn't get there without passing through a grinder, and otherwise preferring the biggest concentration of organic intruders), and make a beeline over there.
Nobody expects the Special Forces
A massive roving fleet of jolly AI ships, specifically built to annoy you, singing sea shanties while they crash your party and ruin your fleet's day.
Of course, this didn't stop the most virulent meatbags (stupid warheads...), but it did make them work a lot harder. And our refrigerator is covered with pictures of SF assaults scissoring in behind unsuspecting human fleets and stomping them flat.
So where are the Special Forces going in the sequel? All over the place. Literally, actually. Instead of a single fleet we'll have regional headquarters, each with its own fleet.
We weren't sold on the idea, at first, since concentration-of-force is pretty important. But then we were told that these regional headquarters were actually secret ninja hideout fortresses. How could we say no?
This also allows for more exotic behaviors and ship-preferences, since each region can use its own. An all-cloaking SF fleet that only attacks when you're multiple hops from your territory may die like flies in some circumstances, or it might be the thing that stymies the human infestation in others. We're all about iterating over permutations. That's... actually about all we ever do.
... Ah, good, it appears the paint crew has finally arrived, so we can strike terror into our enemies and the appearance of the SF fleet can once again have its proper brown-trousers effect on hapless human attack fleets.
Ok, make sure you get plenty on the weapons ba-aaAAAAhhhHHH!! (entire ship dunked into vat of MurTech-brand Astatine-enriched Universal Solvent)
Keith here. Whoops, it looks like the quartermaster made a mistake on that paint order. Oh well.
(pushes speaker button, "Cleanup, nebula three.")
Bear in mind that the plan is for modders to be able to define their own Special Forces controller logic sets, for determining which ships a fleet picks to build and/or which planet to rally at in a given situation. Then you can have those controllers be put into the normal rotation, or even remove the vanilla controllers and only use your own. Naturally, you would never use this to make your game easier by reestablishing the galactic line dance.
I'm not sure when the next entry in this series will be, since work on the game itself obviously takes priority, but we'll probably look at the offensive equivalent of the Special Forces: the Threatfleet. The SF gets to play dirty tricks on you, but a Threatfleet has much better opportunities for gratuitous vandalism.
Also in the works is another combat video from Chris. In general we'll try to check in every now and then so you know we haven't suffered a misfortune at the hands of disgruntled machines.