Robot player tournament framework
Posted: Fri Jun 14, 2013 8:43 am
Short version
I made a ServerSidePlayer framework which means you can compile some robots then load and unload them on the map dynamically in a plugin. No support for map objects, but basically for the first time in years it is viable to run a lagless easy-to-program robot tournament for a simple map e.g. 2-shot default variables with all players inside a ring (with ricochet). See live demonstration of my optimal-shooter-training-bot project at 205.185.126.195:5154 (private server) which uses the API.
Useless example (see attached API which is Public Domain):
To my knowledge, less than 10 people have ever been interested in having a robot tournament. If you are genuinely interested and have at least two of the necessary (sufficient time, some ability in C or C++, math) then contact me and we can discuss. Personally I'm pretty sure no one that I don't already know of (which is only 1 other person who is busy) has a qualified interest, but if someone does front up I'm even willing to help them because it is a lot of work to get anything clever working. That said, this opportunity is about implementing nice ideas and writing a kick-ass robot, not "learning by example".
Or if you know anyone who might be interested please ask them.
Aside: I guess you could propose other crazy ideas if you're interested in making them happen. For example I imagine it's quite achievable to write a parser that generates a robot using a simple language, like:
I made this up randomly but the point is you could have a simple language that map-makers can grasp and use it to generate robots that have some predefined behaviour on a map (for the purpose of acting as targets or obstacles or Ghosts on a Pacman map etc). Obviously if you want it to react to players as well, that's a different story.
I made a ServerSidePlayer framework which means you can compile some robots then load and unload them on the map dynamically in a plugin. No support for map objects, but basically for the first time in years it is viable to run a lagless easy-to-program robot tournament for a simple map e.g. 2-shot default variables with all players inside a ring (with ricochet). See live demonstration of my optimal-shooter-training-bot project at 205.185.126.195:5154 (private server) which uses the API.
Useless example (see attached API which is Public Domain):
Code: Select all
void ServerSidePlayer::frameUpdate(double /*dt*/) {
static bool forward = false;
if (forward)
in.tryMove(1, 1);
else
in.tryMove(-1, 1);
float r = (float) rand() / RAND_MAX;
if (r < 0.05) {
forward = !forward;
in.tryShoot(); // API won't actually let you shoot as many bullets as you want
}
}
Or if you know anyone who might be interested please ask them.
Aside: I guess you could propose other crazy ideas if you're interested in making them happen. For example I imagine it's quite achievable to write a parser that generates a robot using a simple language, like:
Code: Select all
Start:
Forward 3 25.0 # 3 seconds at full speed 25 units per second
Delay 1 # Pause 1 second
Turn 1 90.0 # Turn 90 degrees over 1 second
If random < 0.4
Goto Start
Else
Teleport 0 0 0
Shoot 0 90 180 270 # Shoot in 4 directions
...