The old AIs such as RAI and AAI etc, are suffering as a result of fundamental assumptions that they made in their design, which no longer quite hold true.
These assumptions are what plague the 'zombie AIs', and prevent them running as they used to, or being as adaptable as they could.
For example, AAIs original critical flaw that arose almost as soon as it debuted, was utterly simple. AAI cant build mobile units, using other mobile units. I don't remember if submarine addressed this at a later point, but it factored heavily into his architecture amongst other things, and was an easy way for rival AIs to gain ground, as demonstrated by nanoblobz (which was all mobile units building mobile units)
At the moment, Engine developers make sure they still compile, and sometimes put in the odd bugfix, but they rarely fix behavioural logic, that's not their job, and they're kind enough to caretake as it is.
Currently, RAI have the potential to be resurrected. It works on some games, and could work on a much larger number of games with a little work, dramatically extending its shelf life.
AAI needs someone to look over it and report what the effort required to fix some of its current major flaws is, and how feasible is the prospect returning it as a solid TA AI.
There also needs to be a seachange in how we manage crashes & execution failure.
AIs like AAI and KAIK followed the principle that if the AI cannot play the game, it should crash. If a fatal error occurred, it was better that the engine crashed and the user filed a bug report, rather than failing gracefully and ignoring the bug.
This may have been a preferential choice, one that was arguable back in the day, but in this day and age, where the guarantee that an AI that ran solid and did as it was told, would be able to play the game, has gone straight out the window along with the basic tenets of TA gameplay.
Modular AIs have no idea what gameplay will be, C++ or lua, and this invalidates a raft of assumptions made, and is something we need to address.
If an AI deems that continuing the game is no longer possible, due to a fatal error, or the detection of a game that is not playable, then it should terminate itself, and notify the user, or commit suicide.
I suggest notifying the user and halting processing of all logic events. Native AIs that want the safety of a user sending a bug report can collect the data they need locally and send it via HTTP to a bug tracker, which should prove far more reliable.
The Old AIs
Moderators: hoijui, Moderators
Re: The Old AIs
Later versions of AAI did support building mobile units directly (though with some parts of code still treating them like buildings, especially when considering where to place them). Main AAI flaw imo (not speaking of non-TA-like gameplay support) is that it can't reuse a config file when mod version changes, making it incompatible even with TA-like games.
Re: The Old AIs
AAI supports unversioned mod config files since a few (one?) minor versions of spring.