4 ms·
Robocode
- pryelluw 2y agoI remember using this back in 2004-ish. The web was much different back then. Finding a robots game that allowed you to program your own tank was awesome. This is what got me into building my own sumo robots.
- kbouck 2y agoBack in the 80's there was CROBOTS. https://en.wikipedia.org/wiki/Crobots https://en.wikipedia.org/wiki/Crobots https://github.com/troglobit/crobots https://github.com/troglobit/crobots https://tpoindex.github.io/crobots/ https://tpoindex.github.io/crobots/
- tpoindex 2y agoAnd in the 70's, RobotWar: https://en.wikipedia.org/wiki/RobotWar https://en.wikipedia.org/wiki/RobotWar I created CRobots as a loosely based clone with a C based language, lovingly inspired by RobotWar. I believe there were predecessors even to RobotWar.
- contingencies 2y agoWow, HN is so great. Thanks for creating crobots! It was briefly very popular at my school in Sydney, Australia in the mid 1990s. Some of the then high school student programmers went on to do OS research (SEL4) and at least one joined a kernel team at Apple. I myself recently (10 years ago) veered from software to robotics, possibly subconsciously emboldened by crobots. If you are up to it can I suggest recording an audio interview with the Oral History team at https://computerhistory.org/contact-us/ https://computerhistory.org/contact-us/ about your life?
- flir 2y agoI didn't know there was anything that predated Core War (1984). Cool, thanks.
- jonathanzufi 2y agoThat’s seriously cool. I was a huge fan of RobotWar but had not heard of CRobots!
- tiahura 2y agoWow, just a few days ago I used ChatGPT and Claude to create bots to battle in CRobots! Thanks!
- deleted 2y ago[deleted]
- gamegoblin 2y agoPlayed this back in the day It's neat how teens & amateurs will reinvent classic techniques — e.g. there was a technique in the community known as "dynamic clustering" which was really just K-nearest neighbor, but presumably whoever named it dynamic clustering had reinvented it from first principles and wasn't aware Looks like the robowiki includes this tidbit now: > Dynamic clustering is a technique to find entries in your log similar to the current situation. Essentially, it is a K-nearest neighbor algorithm, and not actually clustering at all. Despite this misnomer, the term "Dynamic Clustering" has stuck with the Robocode community. https://robowiki.net/wiki/Dynamic_Clustering https://robowiki.net/wiki/Dynamic_Clustering
- legohead 2y ago> known as "dynamic clustering" which was really just K-nearest neighbor I'm a self taught programmer. Recently had a technical interview - final interview before getting hired, everything had been going smoothly so far. Guy asked me to describe "dependency injection", and I had heard this phrase, but didn't know the definition off hand. I failed the interview because of this, and they told me so later when I tried to follow up. So I looked up what dependency injection is, and realized it's something that to me is just basic programming common sense that I had already been using 30 years ago.
- IshKebab 2y agoYeah some names make a concept more confusing. Dependency injection is definitely one of those. I understand where the name comes from but it's just a really bad name. Sounds way more complex than it is. Still, not as bad as "dynamic programming". Sounds complicated right? It's just recursion with caching. There the name was almost deliberately bad. "dynamic" is just a generic fancy sounding adjective (yeah really), and "programming" is not a reference to coding; it's a reference to scheduling. Because that's not at all confusing... "Cached recursion" doesn't sound like you've really invented anything though I guess. Please can we all call it "cached recursion" from now on?
- ChanderG 2y ago
- krackers 2y agoThis seems to be the current champ: https://robowiki.net/wiki/BeepBoop https://robowiki.net/wiki/BeepBoop Looking through past winners, it's fascinating how the strategies have evolved over time. I wonder if computation constraints were removed, you could do some sort of self-play RL to "evolve" some godlike strategy that dominates everything else
- flir 2y agoMost likely you'd get stuck on a local maximum. Or rather, you couldn't prove you weren't stuck on a local maximum. It's still very cool, though. Lisp is a preferred language for this because of the whole code-as-data thing.
- rickcarlino 2y agoI am glad to see this is still alive. Can anyone speak to the state of the community in 2025?
- dang 2y agoRelated. Others? Robocode Tank Royale - https://news.ycombinator.com/item?id=31632801 https://news.ycombinator.com/item?id=31632801 - June 2022 (52 comments) Robocode: A Java Programming game (2001) - https://news.ycombinator.com/item?id=25011515 https://news.ycombinator.com/item?id=25011515 - Nov 2020 (1 comment)
- cytocync 2y ago[flagged]
- scrumper 2y agoSpam account, flag & kill.
- scrumper 2y agoI enjoyed this a lot while consulting in Chicago in the winter of 2002. Good clean fun alone in a hotel room while the snow raged, though I don't remember winning much. I'm tempted to dive back in but don't really fancy dealing with Java again.
- petercooper 2y agoI once ran a regional meetup with this as the activity. Walked through how to build the bots, how it all ran, and let people have a go at building their own. After an hour or two, we ran a series of rounds to see whose bot would win. The grand winner? A guy who had no idea to code, so we asked him how he did it. It turned out he just took one of the standard bots and changed a string to rename it.
- 29athrowaway 2y agoIt is a good way to learn Java basics.
- waynenilsen 2y agoReally difficult to get these right
- infinitebit 2y agoI have wanted something like this for a long time but… in something besides java. Does anyone know of anything like that?
- gattilorenz 2y agoLike… this? https://github.com/turkishviking/Python-Robocode https://github.com/turkishviking/Python-Robocode
- larodi 2y ago‘…in Java’ lost me on the subtitle
- fsflover 2y agohttps://news.ycombinator.com/item?id=43099444 https://news.ycombinator.com/item?id=43099444