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
...