From: Hans Fugal Date: 2005-11-11T05:37:13+09:00 Subject: Re: Equvialent of RoboCode and/or Terrarium for Ruby? I've not used RoboCode (by the time I heard of it I was already happily Java-free), but I have done some AI agent programming in Ruby. I've also thought about writing a game world but never got around to it. First, another existing project to check out is realtimebattle. I think you could write something in ruby for that. Jacob and I wrote ruby agents for an AI class using TCP sockets to the capture the flag game server which has probably been retired since they now do BZFlag agents instead of the shoddy CTF server we used then. But the premise was simple enough: you talk to the server over a tcp socket. You get precepts and send actions. I think this is far and away the best approach. Yes, then someone can use any language they like, and I think this is a good thing. It certainly helps not to get in the way of its growing popularity. The questions then go to what precepts and what actions. It is my opinion that most people will be coming into a game like this wanting to do something interesting as early as possible. Otherwise it will not be fun and there will be a lot of half-written bots and few real ones. So simplicity is key. If it were a serious AI tool you'd probably want to make the precepts and so on configurable, but I say let it evolve there if driven to. A rough description of the game world I decided would probably be the most fun follows. The world is a 3D sphere in space. No gravity sources of consequence are nearby. The agents are spherical (cow-shaped) pods with yaw, roll, and pitch thrusters, and a front-mounted laser. When you shoot another pod, the pod is frozen (can't fire thrusters or lasers) until a teammate unfreezes it in the same manner. Flags are magnetic and so when you get close enough, if your magnetic field is on, you have the flag. You win by bringing the enemy's flag back to your base (a predefined spherical region). Two teams. Each pod has an omnidirectional limited range radar (does such a thing exist in the real world? I have no clue), which is the only means for observing objects. For simplicity (maybe this would be taken out for expert mode) you are told your precise position when asked. If you try to go out of bounds, you just don't. (e.g. you keep your momentum in other directions, but just stop going outwards). The server wouldn't be too hard, the hard part would be the vector stuff (e.g. did that laser hit anyone?) and being time-independent from the network stuff. The clients would be easy, but since you're dealing with 3D and limited information it is still an interesting AI problem. The real hard part (from my perspective, probably not from someone else's) is the graphical part that lets us humans watch and/or participate. I think such a game would be a lot of fun to write bots for, and if a good UI is made has the potential to be a fun game for humans to play too (both against bots and other humans).