Monday, October 10, 2011

RCBOT 2 for Team Fortress 2

Developing AIs for video games is one of my favorite things to do. When I found about RCBOT 2, I decided that I wanted to be a part of it. RCBOT 2 is a framework for computer-controlled players in a game. It handles and controls all computer-controlled players, making them compete against human players in a fashion that simulates other human players.

RCBOT had been in development since the Gold Source days, which constituted games that were built on the old Half-Life engine. The founding author, Cheeseh, built RCBOT to something quite universal. You could easily run it on just about any modifications for Half-Life. Then Half-Life 2 came along. He started his new project, RCBOT 2. At first, he focused on getting it to work for Half-Life 2 Deathmatch. Later, with the release of Team Fortress 2, he decided that he would focus on that instead. At this point, I joined him.

Developing RCBOT 2 for Team Fortress 2 (will be referred to as TF2 from here on) was a challenge. Although Valve (the developing company of TF2) promised to give us a bot framework, they never delivered. This meant that we had no means to directly receiving information from the game. Many tricks had be to performed to get the information we needed. This made our bots quite unresponsive, but with much refining, they got to the level where they were reasonably competent against human players. All of the code is written in C++.

Unfortunately, as Valve released their own bots and their subsequent updates that constantly broke RCBOT 2's framework, RCBOT 2 eventually became obsolete. Nevertheless, it served as the only fully-functional bot for TF2 for a while.

The code is open source, and you can find it at sourceforge.net here.

Here is the video of RCBOT 2 at work:

NOTE: There is a degree of violence present in the video, as it is the nature of the game. Please be warned.


All players in the game except for the player that took the video were RCBots.

Java Game

Last year, I made a game as a final project for my computer science class. It's an applet-based game in which you, as a tiny red box, must dodge tiny blue boxes and get to the safe zone marked by the larger green box. You simply control your red box by using the arrows keys to move in the desired direction. Every time you move a step, all the blue boxes will make their steps. If you are too close to one of the blue boxes, then you will be caught. The levels and the enemies (the blue boxes) are randomly generated every time you beat the previous level.

The storyline is that you must escape GSSM (the school I am from), but it is meant, in its entirety, to be a joke. I DO NOT support, in any way, escaping from a school. I don't even know why you have to make the effort to escape. I think they'll kindly just let you leave if you are that desperate.

Digression aside, I thought it was a neat little project that I wanted to share on my blog.



Sunday, October 2, 2011

Zero Robotics

There is an interesting competition going on at MIT called Zero Robotics.

It is a programming-oriented competition where all competitors have to strategically program their satellite probes in order to get the most points possible. The concept is interesting, especially in that it encourages cooperation with your opponents. The more you help them, the more points both of you will get.

And yep, our school is competing in it. The large load of schoolwork is draining us, but I think our codes are well on their way to being somewhat effective for the first round.