|
Finally, the private v1.62 beta has been put to bed. This version represents a lot of AI experiments, which means a lot
of time and effort, and also means a lot of unsuccessful work thrown out and replaced, and then thrown out and replaced
again. Several other tweaks have been added too, and if you want to go straight to the bullet list, then see the
Development page. Otherwise if you're in the mood for some lengthy modding babbling first,
then you can settle in for a long read here about how the AI development is progressing, and hit the
Development page later.
The current AI work revolves around enabling AI usage of the new Beyond Revenge units. It is easy to get the AI to
build and use the new BR units... what is hard is not compromising the AI's effectiveness in other game modes, when the
AI is not allowed to build these units. What must be understood is the AI coding is applied globally - it is not
possible for certain AI attacks to be enabled in some game modes and not others. Any AI attack that is enabled is always
enabled in every game mode. I could take the easy way out and simply not include any Beyond Revenge AI attacks at all, but
I feel it is unacceptable for the player to be able to build the new units and at the same time never see the AI send any
of those same units against him. At the same time, it is equally unacceptable for the AI to build Beyond Revenge units in
game modes where the player cannot.
There are several problems to be overcome, beyond just the simple case of "build the unit or don't" issue. Things
can get quite a bit more complicated when the AI is asked to build a mix of units, some of which it can build all the time.
It turns out that it's rather easy to stymie the AI with a desire to build what it can't, leaving it doing nothing of any
value. Which means the AI in non-Beyond Revenge modes can easily be made much worse. So, I have broken the AI development
into distinct steps, each of which (when successful) can serve as a foundation that can be built upon for later steps.
Step 1 was added in v1.61 beta. It simply involved allowing the building of teams, made up of only Abrams Tanks, only by
the countries which are allowed to build Abrams Tanks, and only in the single game mode where Abrams Tanks are buildable.
This experiment worked out quite nicely, where only the appropriate countries (USA and Korea) built Abrams Tanks, and they
did so only in the game mode where they were allowed to build them. The other Allied countries seemed to behave as always
in all game modes, as did USA and Korea behave as always in game modes where Abrams Tanks are not buildable.
Step 2 is incorporated into v1.62 beta. In this case, the AI is directed to not simply build teams of BR units, but to build
teams which include both BR units and other units which it can build in other modes also. Specifically, attacks which are
only used by Iraq and Libya and only when Beyond Revenge units are buildable. In other words, attacks involving Rad Artillery,
along with other units like Rhinos, Apocs, and V3s. Several approaches to this problem resulted in the AI building a lot of
Rhinos, Apocs and V3s, and just left them sitting around when it couldn't also build the Rad Artillery units to go with them.
While this is wonderful for improving AI base defense, it basically breaks the AI in all non-Beyond Revenge modes. However,
my last effort seems to have happily resulted in creating a workable system where the AI will build the BR mixed teams only
when it is allowed to build BR units in the first place, and not get hung up on trying to build these teams that it can't
complete in other modes.
At this point the mod goes once again into testing, and if this method works out then it will serve as a template for AI usage
of other BR units by the other countries, and I can move forward in implementing Step 3 (which will involve making up teams
from other, smaller, mixed teams including both BR and non-BR units).
Sorry for the long news post, but I thought it might be of interest for those who are wondering why the next public release is
taking so long. In any case, here's another link to the Development page so you can see what's
been added in the internal v1.62 beta.
|