They are meant to faciliate life for spring players/users, and faciliate automatic testing of AIs, eg for comparing CPU performance, play strength, memory usage, or simply for automatic bug testing.
This will mostly be about options formats and about data-dir structure.
In the end, this will only work if some AI devs adhere to these conventions, so i encourage them especially, to take part.
Cheating
As a start (extracted from the AI Ladder thread), two proposals:
A common way to allow/disallow the AI to cheat through options (AIOptions.lua):
Code: Select all
{
key="cheating",
name="Supported Cheating Modes",
desc="What cheats shall be used by this AI",
type="list",
def="default",
section="difficulty",
items={
{key="none", name="None", desc="Do not use any form of cheating"},
{key="all", name="All Supported", desc="Use all cheats supported by this AI"},
{key="default", name="Default", desc="Use the default set of cheats, as defined by the dev(s) of this AI"},
{key="events", name="Cheat-Events", desc="Perfect intelligence agency: AI knows about events it can not see"},
{key="resources", name="Resource-Hacks", desc="The AI can give resources to its self, for free"},
{key="map", name="Map-Hacks", desc="AI can always see the whole map"},
}
},
Eg, an AI that does not support cheating at all would only have the "none" and "default" keys listed, while others may use exactly this set, or define additional values like "units" -> "the AI may use cheats to randomly give units to itsself".
The benefit here is a uniform image towards the user, and making the AI comparable more easily/accurate.
Logging
a common base structure for log files, relative to the AIs data dir. for RAI, it would look like:
Code: Select all
AI/Skirmish/RAI/0.601/log
AI/Skirmish/RAI/0.601/log/archive
This would allow lobbies to automatically show the log file when the AI crashed, or the AI Ladder system to pack all logs of an AI for a game into an archive, and make it available for download. the same could be done by an automatic AI bug finder.