@hoijui,
Yeah, your ideas sound good.
By coincidence, I started looking at adding options today:
@all:
git and staging updated:
- options added to ais, leagues, and matchrequests
- can change account password
- mapadmin, modadmin and leagueadmin roles added
- can add a download url to maps and mods (maybe that was done earlier? can't remember...)
http://manageddreams.com/ailadderstaging/
How the options work
For now, they don't actually
do anything, they're just assigned to leagues, ais and matches.
The vision however is that:
- a set of options are assigned to each league, for example 'cheatingallowed' or 'cheatingequalslose'
- any ai with at least those options assigned to it as compatible options will play in that league
Certain options may be hard-coded to do stuff, for example, the cheatingequalslose option is likely to result in a check being carried out by the calcengine at runtime: any ai that activates cheating automatically loses.
The reason I added options is that there are only two cheating AIs available at the moment: E323AI and HughAI, AFAIK; so to add more AIs to the list, I need to make it possible to have at least two leagues: cheating and non-cheating.
The reason I added the ability to change the password is that I will probably upgrade the main
http://manageddreams.com/ailadder website soon, and change the admin password, and then hand out indviidual accounts to anyone who wants one, with roles as appropriate; and then it will be possible to get the calcengines to trust the ai urls and so on, and automatically download ais, maps, mods...
So, the next steps most likely are:
- enforce the cheatingequalslose option on the calcengine
- add AAI to the static data
- add a matchrequest scheduler
- setup some matches between AAI and HughAI (I think HughAI can win those... but anyway, that's not the ponit

it's just to get some games out there).
... and then, at some point after that, figure out how to crunch results, and display them appropriately.