The past few weeks I've been working very hard together with my research group on a high-level artificial intelligent agent. As a research project for a seminar I've been doing, we agreed on developing a bot for Unreal Tournament. Just the past couple of days we've been working like mad to get things done for tomorrow.
Unreal Tournament Bots (UTBots), the default bots included in the game, have well-scripted low-level intelligence, as they most probably use a pretty straight-forward A* algorithm to navigate to their goal and react to perceptions along the way. Their goal is determined by one of five orders they can take:
- Attack
- Defend
- Cover
- Hold
- Roam
If there is no human player on the team, or that player didn't order them what to do, a default configuration will take over. For instance, if a team consists of four UTBots, two bots will follow the "attack" order, one will follow the "defend" order and the last will "follow" for the duration of the match.
It is this tactical configuration that RoleBot attempts to improve. Based upon a bot's perceptions and knowledge of the game state, what would be the best role to adopt?
These roles strictly coincide with the orders named previously:
- Attackers persue the enemy flag and attempt to deliver it to the home base
- Defenders guard the team flag and pursue enemies who steal it
- Followers provide cover to the team's flag carrier and pick it up if it is dropped
- Holders guard a certain area of the map
- Freelancers roam the map to kill enemies or steal the flag
RoleBot does not modify the low-level AI that concerns reaching certain locations on the map or attempting to kill enemies; this is left entirely up to the original UTBot that is built upon.
Presently the project is in the experimentation phase to see how long RoleBots have to evolve before a configuration is learned that can compete with same-level UTBots.
The package comes with two visualization tools to help you understand what the bots are doing and why, but exactly what's going on inside the neural network is somewhat of a black box that contains information that is difficult to justify.
You can always join the game as a spectator and enjoy some bot-on-bot carnage. When a download becomes available, you will find it on this site. |