8 ms·
This isn't specifically about this implementation, but I've noticed perhaps almost ten similar projects (virtual, programmed PCROBOTS descendants) on HN over th
by petercooper 13y ago
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?
- ColinWright 13y agoThe C++Robots combat engine is available for download: https://news.ycombinator.com/item?id=6748373 https://news.ycombinator.com/item?id=6748373 http://www.gamerz.net/c++robots/ http://www.gamerz.net/c++robots/ http://www.gamerz.net/c++robots/c++robots.tar.gz http://www.gamerz.net/c++robots/c++robots.tar.gz
- jacques_chester 13y agoThe Urgame for this seems to be RobotWar: http://en.wikipedia.org/wiki/RobotWar http://en.wikipedia.org/wiki/RobotWar Which I'm aware of because it inspired Robot Battle: http://www.robotbattle.com/ http://www.robotbattle.com/ Which inspired RoboCode: http://robocode.sourceforge.net/ 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/ http://realtimebattle.sourceforge.net/
- dserban 13y ago> "One problem is that almost all of them are language-specific." Shameless plug: I built a platform [0] like this - but language-agnostic - for use during hackathons at the local TU's department of CS / software engineering. By language-agnostic I mean both bots and engines can be written in any programming language one prefers, as long as that language can encode/decode JSON. Three game engines are ready, one more (called Trapdoor Reversi) is in the planning stages. I've already gotten enthusiastic feedback from a group of sophomores at a recent hackathon. If anyone finds it interesting, please star the repo. [0] https://github.com/rosedu/I.GameBot https://github.com/rosedu/I.GameBot
- xerophtye 13y agoHi! i actually built one too. But it was for a rather specific Competition at my university. the json idea is pretty cool. I built one in Java that ran the bot code as a process and used i/o redirection to talk to it. So the system had a client side program that would talk to the bot and a server side program that would arrange matches and maintain leaderboards etx
- pudquick 13y agoActually, the real original was a bit farther back - Darwin (which later inspired Core War): http://en.wikipedia.org/wiki/Darwin_(programming_game) http://en.wikipedia.org/wiki/Darwin_(programming_game) http://code.wikia.com/wiki/Core_War http://code.wikia.com/wiki/Core_War
- jacques_chester 13y agoI thought about mentioning CoreWar (I hadn't heard of Darwin, but that's pretty neat), but figured that it isn't really the same genre.
- mkramlich 13y agoThe ideal language-agnostic "robot wars" engine would prob involve just passing structured text messages over a socket via TCP. Then the robot's logic can be written in anything, as long as it could do sockets (which almost every language/stdlib/runtime/OS you care about can do already), and, could be running remotely or locally.
- Semiapies 13y agoI'm pretty sure there was one in the 90s that used just STDIN/STDOUT for cross-language competitions, but I don't remember the name...
- d23 13y agoYeah, but it doesn't really seem to fit this particular format, in that this one is sort of an "idempotent" method where you submit your code and the results are calculated deterministically by the server. The other way would require something to be compiled and run on the clients' individual machines. It'd be nice to not have to install any libraries or worry about connecting to a server at the "right" time.
- jacques_chester 13y agoDepending on the format, it's not idempotent. Most such games include some random elements, such as starting positions, "energy cookies" and so on. But you're right that a more agnostic system makes submission to a server trickier for the server.
- aymeric 13y agoI have open sourced terrarium.js: http://terrariumjs.wiselabs.net http://terrariumjs.wiselabs.net You program herbivores and carnivores and try to invade other people's terrariums. Your creatures can see, move, attack, defend, reproduce, eat.