Imperium has an AI opponent for the single player campaign. The AI player is controlled using a behavior tree which determines what the AI units should do at any particular time. The behavior tree is evaluated for each AI controlled unit and the behavior nodes can set up missions for the units.Each scenario can have a customized behavior tree or can use the generic tree.
A custom editor is used to create the behaviors. It can be downloaded from GitHub. It requires Qt 5.x but no other libraries and should be quite trivial to build. The editor saves behavior tree files that can be included in Imperium.