Page last modified 2 September 2008
UT Behavior Library last modified 11 November 2007;
Level File Last Modified 9 August 2005
UT library last verified with current jyPOSH 22 April 2008
Note: as of April 2008
this library is running with SPOSH. Scheduled
jyPOSH is currently deprecated.
BOD / UT
Behavior
Oriented Design
(BOD) is a way to develop AI systems. It requires a modular
behavior library in any OO language, and a version of POSH
action
selection for that language.
jyPOSH
is a version of
POSH
that runs in python and jython. Unreal
Tournament is a
commercial game that you can buy quite cheaply on ebay, since it's a
bit old now.
This web page get you running in pyPOSH using our Unreal
Tournament behavior
library. (Note the screenshot is from a Windows system using UT patch 436.)
Installing pyPOSH Unreal
Tournament
Here's what you need to download:
- First, get a (legal, of course) version of Unreal Tournament.
- We bought our M$ versions off of ebay for about $3 each (be
careful of postage charges though.)
- You need to get the classic/original
version also packaged as "Best of Unreal Tournament"(or the
game-of-the-year edition apparently, though I haven't tried this.)
- Do not buy the 2003 or 2004 versions! (at
least, not for this!) The gamebots interface won't work.
- If you use linux, buy a Windows copy to be legal & then use
this to get it
working. Or you can use CodeWeavers.
- On Mac
OS X, you can use CodeWeavers
CrossOver Mac. It costs money (not much! well worth it), but
you can also get a trial demo for a week.
- Next, you need to install something called GameBots,
which many AI programmers use (that's why we are in UT).
- It's normally easiest to use/install the .umod file.
- But for Mac / CodeWeavers, it seems easier to drag the files
from the zip into your UT bottle.
- Start up CodeWeavers, click "manage bottles", then click the
button "open C drive in finder"
- Copy the files from the sub directories in the zip directory
(once you've unzipped it) into the directories with the same names
under drive_c/UnrealTournament
- To make it easier to see what's going on with your bot, you might
want to use this simplified level
file, which is a slight modification of the file distributed with
gamebots.
- Move this file to Maps directory under your Unreal Tournament
directory.
- Now follow the jyPOSH
installation instructions.
- The UT behaviour library comes with our standard jyPOSH
distribution.
- You may also want to download ABODE to
help edit your POSH plans.
Here's what you need to do to run things:
- Start UT
- Doubleclick on the game (or run it from the programs menu.)
- If you have any trouble e.g. with graphics, start in safe
mode. You may just want to do this anyway.
- When the intro sequence starts, type Esc (the
escape button).
- To to Game->Start practice session
- "Choose the category "Unreal Tournament"
- Game Type should be "Friendly Remote Bot CTF" (CTF == Capture
the Flag)
- Map Name is CTF-SimpleSteve (the one you just copied in.)
- Choose any other settings as you like.
- Click Start.
- Start your BOD bot
- Press Alt-Enter to get out of full screen mode of UT (unless
you are already in safe mode).
- Type Esc to get your mouse back (suspends UT)
- Run jyposh:
- jython jyposh.py
- This should produce a GUI
- Choose the bodbot behaviour library.
- Either:
- Click Choose... button in the Agent Initialisation
section.
- Open init_agent for a single bot or init_team for a team
of bots
- Click Load Agent Init File button.
- Or:
- Click the Add... button and choose a plan file.
- Click Initalise World and Agent(s) button.
- On the new window, click Start Agent button
- Go back into UT and play!
- press ESC again and go look for your bodbot!
- You may need to switch teams in order to make sure you aren't
on the same team as your bot (e.g. if you want to fight it.)
- Bots have some trouble seeing waypoints, esp. if they start on
the red team, but if you interact with them they can learn by following
you.
- You can have two bodbots if you like!
- Just add another plan file using the Add... button.
- Or, like we said above, use the init_team script, or edit
your own!
Acknowledgements
- Andy Kwong made the initial UT gamebots BOD
library (see his 2003 dissertation).
- The current agents were mostly built by Sam Partington
(see his 2005 dissertation).
- Tristan Caulfield helped with this web page and improved
the UT
library code & interface (Summer 2005).
- Steve Couzens discovered and fixed CMU's hacks on the
level file & provided the offense / defense bot "team" plans
(Summer 2005).
- Jan Drugowitsch maintained and improved jyPOSH from
2005-2007, including some support of our modifications of the UT code.
- Francis Binns and Andrew Mansfield improved on Sam's code
so it deals better with temporally-dependent decisions. They have also
been maintaining the UT code as Jan & others improved jyPOSH. (2005-present)
page author: Joanna Bryson