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