AI Development Guidelines

GSonderling edited this page Jan 20, 2018 · 2 revisions

AI Development Guidelines

Axioms of OpenRA AI development

Organized (roughly) in order of importance.

  1. AI shouldn't cheat. That is, use any resources and or information not available to human player.
  2. The performance impact of AI on game play should be minimized.
  3. Behavior of AI must respect the units and environment of the specific mod.
  4. Adjustments to the AI must be tested in each of the core mods. Improvement in one shouldn't negatively impact other mods.
  5. Complexity for it's own sake should be avoided. Simple solutions should be prioritized.
  6. AI should offer challenge to the player.
  7. AI shouldn't babysit the player. Removing micro from RTS genre is not the goal of OpenRA.
  8. OpenRA AI should approximate original Westwood AI in performance, if not in behavior.

Current issues

The plumbing and general logic is handled, and should be handled, by C# code. The variables, such as building ratios, squad composition, queues and unit names are stored in miniYAML file. This allows developers to perform minor tweaks on the AI, with relative ease.

However, most mod specific behavior, and all more complex behavior, can not be reasonably implemented in this fashion. This is because of many specific features the AI has to support in different mods, most of which are exclusive and even conflicting with each other.

Issues arising from this cripple AI in many key areas, including but not limited to: tactical decisions, resource use optimization and base construction.

Solution: LUA scripted AI

Therefore the future OpenRA AI should use LUA scripts for all mod specific decision making, as well all complex behavior. Such AI implementation would allow modders and developers to easily adjust AI to their needs, while also preventing unnecessary bloat of C# code and miniYAML files. There have been several attempts to implement such AI, so far none of them completely successful. The most notable ones include: #12949

Desired (mostly unimplemented) Behavior

  • Team coordination: The AI should be able to share information with its teammates, and react to their circumstances. This includes both human and AI players.
  • Use of mod specific buildings and units, such as spies, engineers and thumpers.
  • Precise economic management. So that AI is aware of it's resources and is able to reallocate them as needed.
Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.