FlexBot Projects
Skip to :
ongoing |
proposed | enhancements
Ledgewalker/Groo
Ultimately, we believe that for computer games, the perception of
intentionality is more important than intentionality itself. To this end,
we've tried to create bots which are relatively simple, very efficient and
are observably intelligent. That is, we sacrifice complicated processing on
the backend, and try to ensure that any intelligence we invest into the bot
is overt to the end user.
Ledgewalker is the name of the bot which has been created as a result of
this approach. It is very efficient; we've successfully run 32 bots, the
maximum number supported by the game engine, on one machine under dedicated
server mode, and 16 in listen server mode. Preliminary results show that
Ledgewalker does exhibit behavior which players would term "intelligent",
even though the rules that govern it are relatively simple. Ledgewalker was
written in Generic Robot Language (GRL), a language originally designed for
robot development. GRL is a simple language that extends traditional
functional programming techniques to behavior-based systems. It is an
architecture-neutral language based on Scheme for describing reactive
control systems. GRL provides a wide range of constructs for defining data
flow within communicating parallel control systems and manipulating them at
compile time using functional programming techniques. Code written in GRL
can be compiled to a variety of languages, including Scheme, Basic and C++.
For more information, see
our paper for the AAAI
2002 spring symposium describing Ledgewalker. We are currently working on
the follow-up to Ledgewalker, codenamed "Groo".
Our new projects PackHunter
and Hunter-Runner make use of the HIVEMind
architecture to demonstrate close team coordination. PackHunter attempts
to coordinate deathmatch bots on the same team. Hunter-Runner scenarios
involve one Runner attempting to escape from a set of 3-5 Hunters. The
Hunters cooperatively search the map until they locate the Runner and
are able to trap him. When the Hunter bots trap the Runner, they open
fire and destroy the Runner.
Project Members: Aaron
Khoo, Nick Trienens
Record FlexBot games as they
happen and replay them later using the BigBrother
game-viewing utility. The ReFlex project provides a "replay"
tool for game review and analysis.
The objective of Patton is a study in the integration and interface of
various technologies for mobile devices. To save vital processing time, FlexBot only outputs
raw stat data. Parsing this data is the responsibility of the Perl servers,
which input the parsed information into a MySQL server. Other Perl
applications are then responsible for creating HTML files which display the
data in a concise and meaningful way to the user. See the Patton
homepage for more details.
Hamlet
is a decision-theoretic system designed to manage the flow of gameplay
experiences by supplying "just-in-time" aid to a player. Using
techniques drawn from probability and utility theory, the system
examines the player's inventory and strategically places aid within
reach at critical points during the action. Our aim is to limit
frustration (needless hunting for ammo or health, repeated death at the
same point) while maintaining the dramatic tension or “flow” of the
game (the player's experience of challenge, struggle and triumph at the
controls). See the Hamlet
homepage for more details.
Project Members: Robin
Hunicke
A primary goal Next
Generation FlexBot Project is to develop a hierarchical control system
whose higher-level components can be reused with other games in the FPS
domain. FlexBot CS is a rewrite of the original FlexBot architecture
geared towards the Counter-Strike environment. The FlexBot CS
environment, which features more complex goals than traditional
deathmatch, will be the first target environment for experimenting with
the Next Generation FlexBot Project's control methods.
Project Members: Greg
Dunham
Porting FlexBot
FlexBot is currently available only for Half-Life under Windows. We in the
process of porting FlexBot to Linux, and creating equivalent FlexBot
implementations for Quake and Unreal.
Skip to :
ongoing |
proposed | enhancements |