Unreal Tournament 3 Bots for .NET

If you're interested in contributing (or just reading) the source for UT3 bots this is the place to be! If you're just looking to code some bots or get help with one you're best bet is http://www.utbots.com there you'll find a live version of the Visualizer and all the starter kits and documentation, plus UT3 server :-). A public UT3 server with the mutator is running at ut.utbots.com (174.133.254.34) which any bot can join, if you want to join from UT3 the password is UT3Bots. From the console (~): open ut.utbots.com?password=UT3Bots or as a spectator: open ut.utbots.com?password=UT3Bots?spectatoronly=1

Since you're still reading this that probably means you're interested in reading more about how this all works. Well basically there is a custom Game Type for UT3 that listens on a socket and when a client is connected it pumps down information about the game state the server also spawns a player into the UT3 game. The client controls this player by sending up messages to the server which are them parsed and acted upon. All pretty straightforward, the source code here is broken into different projects as listed below:

PublicWebSite
This is the (C#) source code for the web site at http://www.utbots.com nothing too special here just some pages with help and files as well as a compiled version of the Visualizer.

PathNodeMutator
This is the (UT Script) source for the UT3 mutator that renders path nodes visible in the game. This allows you to see what your bot can see, which will help you debug and complete your bot.

ServerMutator
This is the (UT Script) source for the UT3 Game Type and is the heart and soul of this project. This little box of magic is what interupts the commands sent by the clients and pumps out the game state for the visualizer to use.

UT3RemoteBot
This is the (C#) source code for the .net assembly that acts as a go between for the ServerMutator and UT3UserBot, it handles all the boring work of parsing messages and building up object graphs which are easy to develop against.

UT3UserBot
This is the (C#) source code for the .net console application that is a sample of how to build a bot, this project gets exported to a starter kit and is used as a handy way to test the project out.

Visualizer
This is the (C#) source code for the Silverlight 2 app that shows the current state of a UT3 game.

Last edited Nov 10, 2008 at 7:23 PM by AndyS, version 10