This isn't specifically about this implementation, but I've noticed perhaps almost ten similar projects (virtual, programmed PCROBOTS descendants) on HN over the past year. There seems to be a real interest in this area (I made one myself on a hack day a few years ago ;-)) but a lot of reinventing the wheel.
Are there are any particularly popular open source projects of this sort that people interested in this area could perhaps collaborate around?
(Reads a bit like the Old Testament; all that begetting.)
One problem is that almost all of them are language-specific. Robot Battle implemented its own language, RoboCode uses Java, this game is in Python.
One game in the genre is RealTimeBattle, which instead allows bots to communicate with the game simulator via standard IPC. So, in theory, robot programs can be written in a variety of languages.
Every year the UofI ACM puts on an AI programming game competition. I've competed and worked on the 2012 game, its a lot of fun. If you're a student or corp in the midwest, take a trip down in October. And the game is usually language agnostic.
Did I mention there's also a whole conference with a bunch of tech talks, student parties, etc?
I saw AI Challenge earlier! It looks really fun. I might steal one of their ideas and of put five or so teams of robots in a bigger map and see what happens.
This is how we should teach kids programming; the goal is simple, the API is simple and they can play against their friends... This has got me thinking...
Heh this reminds me of a game I wrote a while back, also python: https://github.com/phreeza/cells In fact I would guess the API is perhaps inspired by the cells API.
Writing a web frontend is something I have been wanting to do for this a long time, nice to see someone implement that!
It seems a large part of the previous discussion surrounded sandboxing Python; anyone know where the author is with that? I find it hard to believe it would be very hard if you just embed the players game in a C++ engine.
Well, it turns out you can't sandbox Python at the language level. So now each user's code is run (a) in a separate process (b) in a chroot jail (c) as user nobody (d) with umask set to 0 (e) with a time limit of 300ms.
And this one is ok, http://berlin-ai.com/ - you just provide the URL of your AI and they POST game states to you, and you have 5 seconds to reply with your orders.
I always get a maximum recursion depth exceeded exception in game.py using the rgkit. The exceptions aren't very helpful and only point to problems in the runner, not the bot. I'm not even sure what is triggering it. The only rg method I'm using is locs_around.
Seems to happen whenever I use locs_around. I think I'll replace that method with my own. Half my robots are guarding because this function is hitting recursion limits every god damn time.
Why python? The API could have been a simple textual one (or maybe JSON, or whatever) and piped to/from the robot programs. That way, robots could be written in whatever language the authors like. It would also help sandbox the robots from the game server.
My guess is one of the project's goals it to reach programming. If that is the case, Python is a great language.
If the goal was simply to make fighting robots, something more agnostic would be cool. That said, the system enforces a 300ms response time per robot, so compiled languages would have a big advantage.
This would be better if there were more in-depth docs. I want to know if my a bot is on my team? But how? Let's check the docs..oh wait..they're incomplete.
Anybody aware of a similar game to ~teach~ python? I remember seeing a thread that used a war game to teach java, was hoping there's one for python too
cheers
[+] [-] petercooper|12 years ago|reply
Are there are any particularly popular open source projects of this sort that people interested in this area could perhaps collaborate around?
[+] [-] jacques_chester|12 years ago|reply
http://en.wikipedia.org/wiki/RobotWar
Which I'm aware of because it inspired Robot Battle:
http://www.robotbattle.com/
Which inspired RoboCode:
http://robocode.sourceforge.net/
Which seems to have inspired a lot of others.
(Reads a bit like the Old Testament; all that begetting.)
One problem is that almost all of them are language-specific. Robot Battle implemented its own language, RoboCode uses Java, this game is in Python.
One game in the genre is RealTimeBattle, which instead allows bots to communicate with the game simulator via standard IPC. So, in theory, robot programs can be written in a variety of languages.
http://realtimebattle.sourceforge.net/
[+] [-] ColinWright|12 years ago|reply
https://news.ycombinator.com/item?id=6748373
http://www.gamerz.net/c++robots/
http://www.gamerz.net/c++robots/c++robots.tar.gz
[+] [-] aymeric|12 years ago|reply
You program herbivores and carnivores and try to invade other people's terrariums.
Your creatures can see, move, attack, defend, reproduce, eat.
[+] [-] jtfairbank|12 years ago|reply
Did I mention there's also a whole conference with a bunch of tech talks, student parties, etc?
https://en.wikipedia.org/wiki/MechMania
[+] [-] matmann2001|12 years ago|reply
[+] [-] LoneWolf|12 years ago|reply
[+] [-] _xhok|12 years ago|reply
[+] [-] alexchamberlain|12 years ago|reply
[+] [-] jlas|12 years ago|reply
[+] [-] phreeza|12 years ago|reply
Writing a web frontend is something I have been wanting to do for this a long time, nice to see someone implement that!
[+] [-] pavel_lishin|12 years ago|reply
[+] [-] alexchamberlain|12 years ago|reply
[+] [-] _xhok|12 years ago|reply
[+] [-] _xhok|12 years ago|reply
[+] [-] hkmurakami|12 years ago|reply
[+] [-] hayksaakian|12 years ago|reply
[+] [-] Sami_Lehtinen|12 years ago|reply
[+] [-] monkeypizza|12 years ago|reply
And this one is ok, http://berlin-ai.com/ - you just provide the URL of your AI and they POST game states to you, and you have 5 seconds to reply with your orders.
[+] [-] ElongatedTowel|12 years ago|reply
[+] [-] ElongatedTowel|12 years ago|reply
[+] [-] joosters|12 years ago|reply
[+] [-] wiremine|12 years ago|reply
If the goal was simply to make fighting robots, something more agnostic would be cool. That said, the system enforces a 300ms response time per robot, so compiled languages would have a big advantage.
[+] [-] ColinWright|12 years ago|reply
http://www.gamerz.net/c++robots/
I've still got two robots in the top ten there, and another just outside.
[+] [-] mabbo|12 years ago|reply
The only time I got it to do something else was by taking the sample code, raw copy-pasting it in, and running that.
[+] [-] imdsm|12 years ago|reply
Promising but not ready yet.
[+] [-] _xhok|12 years ago|reply
[+] [-] QuasiAlon|12 years ago|reply
[+] [-] abus|12 years ago|reply
[+] [-] _xhok|12 years ago|reply
[+] [-] thejosh|12 years ago|reply
[+] [-] yasyfm|12 years ago|reply