In fact, atm the moment DOM already has most of the necessary architecture. The problem is "simply" that the AI is located within the server and does not form a "virtual client", so they "just" have to pull it out:
now
- player client
- player client
- player client
= send orders (turn file)=>
server ("fills unused" nation in by AI)
needed
- player client
- player client
- player client
= send orders (turn file)=>
=> server (does not care who the turn file is from <=
<= virtual AI client (own thread(s))=
You could even make the AI standalone (process instead of thread). That would enable "plug-in" AIs, and if they would make the "APi" public, even players could write AIs.
For an example, check out Civ Evolution (
http://www.cevo.org), they're using plugin-dlls for AI which can be written in C(++) or Pascal/Delphi IIRC. (Sadly I don't have a clue about both languages...)