Representational Learning is a simple example of AI [artificial intelligence]. In this particular case, we present an AI based on Valve's "Half-Life" engine. This is actually a MOD [modification for a game] that uses another utility called HLB_bot, which is an AI of a character in the game. We use the character to demonstrate a model of navigating through space. It coordinates itself by placing waypoint markers along the way. It places a new marker every 200 units away from the previous waypoint. [a specific parameter measure of the engine] In addition, the BOT is able to perform random rotational moves. Thus, a change of trajectory sometimes occurs.
The algorithm behind the BOT's logic is extremely simple and limits the BOT to making rather stupid move choices sometimes. However, when running the simulation for quite a while you can see the progression of the BOT, and how it enables itself it to build up a network of connected nodes, or waypoints. Using these waypoints, the BOT can navigate throughout the space. After an inordinate amount of time we can safely assume that the BOT will be able to cover the whole map without getting stuck in any dead ends. We can see the storing mechanism represented graphically in real time via the placement of these waypoints and the network they create.
Waypoint markers are represented by blue rods. The white lines between them represent the shortest path calculation from one point to the next. The result is a self-learning mechanism created by the BOT's ability to store environmental data and then use this data for navigation. The resulting web of lines is a graphical representation of what space the BOT knows to exist. In short, the BOTs are mapping out their surroundings. All the processes are happening in real time in an OpenGL graphics environment.
- John Bruneau and Michael Chernobrod
Hello, My Name is John Bruneau. This is my first gallery graduate show here at San Jose State entitled "n0easyAnswersThisTime". It took place in the BLACK GALLERY, the first week of April 2003. It features my collaborative project with Michael Chernobrod Representational Learning.
Representational Learning is a partial code rewrite of the middle eastern set first person shooter called "Counter Strike" (otherwise known as a game mod) We were interested in the idea of mapping game space, Artificial Intelligence exploring an artificial landscape. The computer controlled game characters known as BOTs were initially programmed to merely seek out and shoot the BOTs and players on the opposite side. We took the decompiled source code for the BOT's AI and manipulated it giving them a new prime directive if you will. Displayed along the right wall from top to bottom is the C++ code for the new algorithm we gave them. We caused the BOTs to now drop their own waypoints if they moved a set distance in a given direction they hadn't been before. We wanted to visually represent this growth of knowledge as the BOTs attempted to comprehend this world which they inhabited. The result worked out quite well. We can see the area explored by the BOTs increasing as they slowly build up a working map of the space in the form of points and paths. Paths are lines between the waypoints representing a clear path and a possible choice the BOT can make. Because the BOTs follow their own map they learn to avoid obstacles like rocks and walls in already explored areas, but also because of this, the BOTs tend to stick to what they know and expansion of the map is slow growing. In time the BOTs will have mapped out the entire gamespace. At this point they will know the layout of their world and will transverse it easily without running into anything...(except themselves)
Why are sometimes the BOTs stupid?
When BOTs fallow their map they think their path is clear but every once in a while they hit an unmapped obstacle - Another BOT. This freaks them out and the two BOTs spin on each other for a while. It looks kind of sweet like two army guys dancing with guns.
This leads to the next problem. To get unstuck from each other the BOTs sometimes jump. Sometimes when they jump they leave a waypoint in mid air. When they come back to that point they don't think to jump to get to it and they just stand there for a long time looking at it and sometimes aiming at it. It looks like they are worshiping a pillar of light while the other BOTs are running around frantic.
The BOTs are always stupid in general that's why a little learning is a big deal.
Why Counter Strike?
- When we started this project out nation was about to go to war in the Middle East (again).
- It was a simpler game engine than most of the more modern ones yet its still widely played.
- We were able to get are hands on the source code.
Does it say something about war?
Yes, most definitely. What are we saying? That is up to you. On the most basic level we wanted to take code that said "kill" and make it say "think" We are ourselves not saying anything specific but we are making the viewer take with them their own conclusion.
2005: Joint Venture 2005, HP Pavilion, San Jose, CA (invitational)
2003: n0easyAnswersThisTime, Black Gallery, San Jose State University, San Jose, CA (solo) Collaboration: Michael Chernobrod
John Bruneau and Michael Chernobrod, "The Maze Solving Problem," _Switch Journal for New Media, San Jose, CA. Mar 27, 2003. (pdf archive)
Special thanks to my partner Michael Chernobrod
Joel Slayton for the push and encouragement
BOT MAN for the code hookup
Kyungwha Lee for helping me hang a million giant sheets of code
and Tom Hunt for the flagrant misuse of a plotter