December 21, 2009 - Mike Booth

With the success of the AI systems of Left 4 Dead, we've been continuing to develop these technologies to create new kinds of game experiences. Team Fortress 2 is an excellent "sandbox" for explorations of this sort, and we've been quietly doing so for much of this last year. Some of the results of these explorations are TF "bots" — AI-driven player proxies with simulated humanlike senses, reaction times, and tactics. Although the TFBots are not yet complete, they play a pretty decent game of King of the Hill.



We thought you might enjoy testing your skill against these work-in-progress digital killing machines.



We'd also like to hear your thoughts on how the bots are behaving. Although we have our list of behavior bugs to tackle (this is a beta after all), we're sure you'll discover issues we haven't yet seen. If you'd like to give us bot feedback, you can post your thoughts in our new Bot Feedback sub-forum, or send us an e-mail at tfbots@valvesoftware.com. In either case, please tell us the three things you hate most about the bots, and the three things you like best about them (as well as anything else you think we should know).



Since this is a beta test, the TFBots are only functional on these King of the Hill maps: koth_viaduct, koth_sawmill, and koth_nucleus. They don't understand the rules of multiple point capturing, cart pushing, or flag getting... yet. There's also no interface in the game to accessing them yet (we'll add one in an update shortly), so you'll need to access them manually.





To add bots to your game, use the console command tf_bot_add . This will drop a random bot onto a random team (assuming there is a free player slot). The tf_bot_add command can also take up to three optional arguments: <count> , <class> , and <team> , in any order. For example, tf_bot_add 10 will add 10 random bots to the game with auto-assigned teams. Typing tf_bot_add pyro blue will add a Pyro to the blue team. Entering tf_bot_add red 5 will add 5 random bots to the red team. The command tf_bot_add red 3 heavyweapons will add three heavies to the red team.



. This will drop a random bot onto a random team (assuming there is a free player slot). The command can also take up to three optional arguments: , , and , in any order. For example, will add 10 random bots to the game with auto-assigned teams. Typing will add a Pyro to the blue team. Entering will add 5 random bots to the red team. The command will add three heavies to the red team. In order to put specific bots on specific teams (for a bots-vs-humans game, for example), you may want to disable automatic team balancing. To do this, enter mp_autoteambalance 0 followed by mp_teams_unbalance_limit 0 .



followed by . To remove a bot, use the console command kick <bot name>. To remove all of the bots in the game, use the command tf_bot_kick all.

TFBots are "players", and take up player slots. They run the exact same code that human players do, moving and firing weapons by pressing "virtual buttons". The bots have simulated humanlike senses, and only know what they see, hear, and touch. They also have realistic reaction times and aiming limitations. They don't "cheat" or use omniscient knowledge of the server state to make their decisions.If you're interested in the technical details, give this a read-through.