...alternatively everything needn't simply travel in a straight line, every time, at full speed, leaving far behind many (star)ship archetypes that are designed to complement others. That doesn't sound particularly emergent to me, it sounds like the very definition of linear. No one is suggesting that all ships should be somehow tethered to one singular tactic -- even tho at the moment they are tethered to one singular behaviour tactic: the single-minded drive of simply belting hell for leather toward the target and be damned with what can’t keep up – or at least I wasn’t. Yet to have another tool added to the arsenal, to spice things up from time to time and to use in conjunction with the current single-minded behaviour, particularly when Starships are involved, can only increase the gamut of possible outcomes rather than suppress them.
Generally speaking, you then turn it into one large agent instead of many independent agents, and thus that one agent does only one thing. As it stands, sometimes they will combine into larger groups based on having the same objectives get decided upon, and other times they will not. It makes for much more variance. Suffice it to say, the AI does not really use starships in the same way that humans do, most of the time. That does make them somewhat less effective than perhaps they could be at best, but they are still quite damaging all over the place.
As it stands, sometimes they happen to do combined arms, and sometimes they don't, and that tends to make for the most variance overall. You do have a good point that
sometimes having them guard the starships as those move would be interesting. That would indeed be one of those things that could add to the strategic repertoire. But I wouldn't do that more than half the time, I don't think -- and from that perspective, the starships tend to wind up fighting near their allies about half the time already, anyway. I think it could be an interesting thing to look at as a sometimes-branch at some point, but it will take a lot of tuning and should only be used a minority of the time. It tends to cut down on emergence a lot, which I see as a bad thing, so it would have to be very carefully integrated. It could lead to a lot of gap-in-the-wall style exploits, since the group would somehow have to target-select as a group, etc.
I’d be interested to learn which particular RTSs you think engineered their own downfall by incorporating even rudimentary combined arms. Combined arms are generally the sign of a clever AI, not a weak one.
That's a very loaded question, there. Combined arms is one thing, but having that be intentionally scripted versus emergently occurring is where I see the issue as being. The AI in AI War does combined arms all the time, and that's part of why it is so effective -- ships give weight to what their peers are doing, and that leads to a bit of combined arms. Does that sometimes result in a starship being off by itself? Yes. Is that starship sometimes more effective on its own? Yes. Is that starship sometimes slaughtered based on being on its own? Also yes. And lastly, does that often dynamically result in exactly the exact sort of scenario you're wanting me to hardcode in? Very much yes. I was seeing this right this past weekend, repeatedly, in my current 3-player game.
One thing to remember is that the AI is reactive in many ways to the board states that you as a player set up. So it may be that your particular style of play leads the AI to do this sort of thing less. I can't comment, as I don't know exactly how you play. But the beautiful thing about an emergent AI is that it is capable of all manner of things, versus a single "optimal" path that counters a specific playstyle. Therein lies the advantage here, and why it works better in the majority of cases, compared to AIs in which there is too much code for "optimal" cases. My goal as an AI designer is never to make the AI play optimally, or even close -- that makes it predictable. My goal, instead, is to design both the game and the AI in such a way that there is the maximum number of possible semi-optimal choices that will lead to the most possible valid variance and thus unpredictability. And by layering those complexities, you wind up with the most possible second-order and third-order unintended effects, where the AI does things that are truly surprising and innovative-seeming.
The reason I'm so resistant to making them group around starships in this way is that it takes all the possible actions and interactions and layered consequences of a few dozen or a few hundred ships, and condenses them down into one big blob of death that has only one objective at most, and plods slowly toward said objective. Will that make the AI more effective in some specific cases? Yes. But I contend that it
won't make it a more interesting opponent. It's trading nimbleness and the ability to disrupt, distract, and confuse for slow brute force that can be countered much more easily.
The same thing goes for adjusting the AI ships to use group-speeds more often: that cuts down on the possible number of different things they can do there, as well. The decision space shrinks, and the number of possible interactions and surprises goes down. In the main, does this sort of logic that I currently have often wind up with the fastest ships getting to large battles and becoming slaughtered too soon? Yes. (Am I asking a lot of rhetorical questions? Yes, because I'm annoyed at having a variant of the same conversation for the bajillionth time.) But in the course of sometimes getting slaughtered in that way, those faster ships accomplish a variety of things. Sometimes they simply force the human players to stay back and defend while the further-away fleet does something else. Sometimes those faster ships make it to sub-objectives and complete them before the human players can react. And sometimes they reach a location, lay down some suppressing fire in a manner of speaking, and then are reinforced by their slower counterparts that then carry the day.
All
sorts of interesting things can, and regularly do, happen with an emergent system. You don't see that sort of thing in any other RTS, especially not in a dynamic and non-predictable fashion. In AI War, this also means that you get some general "guys falling on their spears" type behavior every so often, as well, but that happens in every RTS and normally isn't accompanied by the flashes of brilliance.
What frustrates me, to be honest, is that 1) I create an AI system that is widely regarded to be a huge leap forward for its genre, 2) I write extensively about how I did it, and what the rationale behind it is, and then 3) a lot of players then completely disbelieve that this is why the AI works, and try to convince me to violate the meta-rules that makes the whole thing functional in the first place. The AI in AI War is heavily, heavily hybridized and complex all over the place, and I've spent a lot of time thinking about it. It's not that I don't want feedback on it -- I do -- but the degree to which players tend to second-guess my responses to their feedback on the AI is, in general, pretty frustrating. If I have the only RTS AI system that works in this fashion, and which works so well in general, might it not stand to reason that I sort of know what I'm talking about in the realm of this specific AI? I don't mean to rant, but it seems like some player or other (always well-intentioned) is dragging me into a lengthy debate on something relating to emergence every couple of weeks lately.
As I once wrote,
don't squeeze a handful of sand, which is precisely what suggestions of this nature boil down to. If I'm not comfortable implementing an emergence-diminishing tactic for the AI, there's generally a reason. And it's the disregard of this sort of restraint that has led every other RTS AI I've played lately to be over-engineered and thus exploitable.
Will I likely do something to make the AI have some more interesting behaviors with the starships at some point? Probably. It is an interesting idea for some new ways to add some more emergence, and to increase the decision space. Having them sometimes "flock" i a dynamic group manner might be just the ticket to making them more effective more of the time. But it won't have anything to do with the formation move mode, or making them one larger meta-battlegroup in the traditional sense. A school of fish is never a codified battlegroup, though they might trend to flying together even in certain semi-dynamic patterns. Enhancing the flockability of the starships is an interesting goal, and if I can think of some algorithmic rules that might make it more flockable without introducing gap-in-the-wall issues, then that would be a great improvement. The battlegroup feature as outlined, though, is far too rigid and other-RTS-like to work in an emergent scenario.
I always hate to rant, and please understand that this is largely not even directed particularly at you, I-KP (or any other individual here). But it is very wearying to be second-guessed from the traditional design standpoint by the same players who otherwise laud how effective my nontraditional method is. I think part of the problem is that most people don't really understand what makes emergent behavior work. Even though I understand it intellectually, it's something I wrestle with at a gut level; it's just too counter to how most humans think, and we have a hard time accepting that the cause of complex behavior can be rules that are so simple at another level. But the entire premise of something like this is simple rules applied to a large number of independent agents in a large decision space, and anything that makes the rules too complex, the number of agents lessened (or the agents less independent in certain key ways), or which shrinks the valid decision space in other ways, is counter to what is healthy for this specific game's AI.
In the end, I think part of the issue with this sort of argument continuously coming up is my inability to really express (concisely) why this AI does work as well as it does. And so then folks think I'm giving their idea the brush-off when I am not, or think that I'm just hiding behind "emergence for teh winz" to exclude their ideas, when I'm not. I'm also not asking people to just accept my rulings that something will or won't work on faith, but my collected writings on the AI are intended to give enough background that people can decide on their own why a given change might not be beneficial. I'll be the first to admit that is a hard thing to do, but I also don't have the time to defend the same stance against new debate opponents on a biweekly basis. I guess I'm going to need to add a second to the Design Philosophy section of the wiki, or something, to just refer people to a collected explanation there.
At any rate, what my hesitation on such ideas boils down to is this: I am supremely, supremely aware that this AI is balanced on a hair. It works as well as it does because of a lot of tuning and a certain design style. Even simple changes to that, if the ramifications of them are not thought through extremely well, can lead to a massive drop in effectiveness and all sorts of gap-in-the-wall problems. So I tend to be much slower to add new functionality to the AI compared to the rest of the game, and all of those changes tend to be incremental and extremely well thought-through. And, no matter what, they don't violate those core tenets of emergence.
Thanks for listening, and I hope that perhaps this post will make it more clear why my stance is the way it is. I tend to do a poor job of explaining that, apparently, but hopefully this one will be more useful.
Back to the main discussion:
The discussion of battlegroups does, however, spark some ideas for how to potentially make some emergence-friendly changes. If smaller ships were sometimes assigned as guards to starships, that would make them keep near the starships. If they were barred from ever stopping guarding that starship (while it was alive and on the same planet), and/or were kept to a much smaller radius around that starship, then that would make for a sort of ad-hoc battlegroup that could form on some player planets and then reconfigure as it changes between planets.
Having ships occasionally decide to guard starships is a good thing, but they would need to do so in a randomized fashion to avoid this becoming too predictable. One thought I had was that if they are way outnumbered they should trend to do this more, but that actually could lead to them being dramatically less successful in a large set of cases because smaller batches of faster ships are better at sneaking through to take out hardened targets that players think they can't reach, or have not yet got proper defenses up for. So that's out.
In that case, that would mean that they would just need to have a random component to sometimes self-organize around a starship for a while, but given the precision of random chance and frequency of decision cycles, there would have to be some sort of trigger for this, I think. Maybe every time their best target is nonvital and way off across the map, they then have a 10% chance of clustering? That might work. But, to make this more effective, that chance would need to be affected when more ships were already attached to the starship.
Hmm. The easiest solution would be to make this logic centralized on the starship itself, so that it calls other ships to itself based on a smaller random component. That defeats the purpose of flocking, though, and will then lead to more regimented and predictable effects. Better to find some sort of way for the ships to add the weighting of guard duty into their normal target-selection behaviors. Going along with that, there should be some sort of non-currently-mapped trigger that can cause them to dynamically leave that flock and strike out on their own. That could allow for interesting and unusual attack vectors from AI ships, as well as supporting the emergent style of those battlegroups.
So, what I'm left with missing at the moment, then, are triggers for why they join and why they leave. Those triggers will need to be something nonobvious that is unrelated to actual strategic play, but instead is more of a pseduo-seed in the underlying game mechanics. In other words, something that creates "ordered chaos" that will appear intentional to players but which will be wholly unpredictable. During gameplay, you should never be able to predict whether the AI is about to organize itself around a starship, or how exactly it will do that organization. I'll have to think on that some more.