Greetings,
I thought I should introduce myself as I'll be around for at least the
next few months. I'm a Masters student in Computer Science and I'm
writing an RTS AI for my thesis. As you can guess I'm doing it on Bos
Wars. There's a few tweaks to the game that I'm making to support
better automated AI testing: improving the command line options and
adding Machine vs Machine games.
Bos Wars is a good game for RTS research. It's a full game that isn't
too complicated (Zero-K) nor too simple (ORTS). It's maintained so it
still works on modern systems, but isn't so actively developed that
it's APIs are unstable (0 A.D.). The code is free and not closed
source (Starcraft) and mostly easy to understand. There's a
surprising amount of papers using Stratagus and I think that would
increase if every researcher didn't have to make these same tweaks.
The largest change I'll be making is the addition of a new AI API. My
AI needs to have the same abilities of a human player and the nice AI
framework you guys have is too simple. I don't have all the details
yet, but I'm thinking of:
* OnUnitVisible() - List of all newly seen units this cycle/turn.
* OnUnitHidden() - List of all units that moved out of sight (and
maybe died. I'm not sure how to handle entering/leaving transports.)
* OnDiscoveredTitle() - Titles the AI has uncovered. This is only
used for unexplored areas, not fog-of-war.
* OnActionCompleted() - Completion of something the AI asked the game
do to.
* PerformAction() - How the AI yells at it's units.
* GetUnitStats() - For getting details about units (health, location,
etc...).
I was thinking of only passing around unit ids to avoid tolua++ object
reference issues. I want to keep the cross talk as minimal as
possible. I know some of those functions already exists in various
states. I need review the current AI API a lot more. I'm not sure
how this fits in with BigBrain, if at all.
While it doesn't have any bearing on my thesis, I'd like to work with
you guys and try to get my AI updates into the game. If I can improve
the game, I'd consider that a job well done. Research is pointless if
it isn't applied anywhere.
Regards,
~zerted