[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[bos-dev] Intro - Another One of Those Student Devs



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