Live data from Hacker News

Battlecode 2015 – AI Programming Competition

battlecode.org

21–24 of 24 posts

Re: Battlecode 2015 – AI Programming Competition

#21
post #7

Earlier quoted context omitted.

We're not happy about the restriction either, and hopefully we'll run a Battlecode that doesn't have a programming language restriction, but we haven't found a way to deal with limited instruction count execution that we are happy with that is machine independent, and counting Java bytecode has worked for us so far. If there are other JVM languages people want supported, we'd be happy to take pull requests on Github…

So any language compiling to Java bytecode is OK?

A majority of them, however since we take source and compile it on the tournament servers, we'd need to get the compile chain and server working with those languages.

Re: Battlecode 2015 – AI Programming Competition

#22
post #17
post #7

Earlier quoted context omitted.

We're not happy about the restriction either, and hopefully we'll run a Battlecode that doesn't have a programming language restriction, but we haven't found a way to deal with limited instruction count execution that we are happy with that is machine independent, and counting Java bytecode has worked for us so far. If there are other JVM languages people want supported, we'd be happy to take pull requests on Github…

Why the JVM? Why not run your own bytecode, or even use Redcode straight up? edit: Perhaps I should explain. I dabbled in rec.games.corewars a few times, and what I found most rewarding was all the tricks you could play with the bytecode. I've never found the Java variants as fun, as one fun part of the game seems lost. I feel like I'm missing something.

While we do allow bytecode tricks, we want the focus of the competition to be on developing high level macro and bot level micro strategy, instead of spending all the time working on optimizing at the bytecode level. Especially since the main competition period is less than a month, we don't want to encourage time being spent on that.

Re: Battlecode 2015 – AI Programming Competition

#23
post #16
post #7

Earlier quoted context omitted.

We're not happy about the restriction either, and hopefully we'll run a Battlecode that doesn't have a programming language restriction, but we haven't found a way to deal with limited instruction count execution that we are happy with that is machine independent, and counting Java bytecode has worked for us so far. If there are other JVM languages people want supported, we'd be happy to take pull requests on Github…

Can you explain in more detail what you mean by "limited instruction count execution that is machine independent"? For example: - Is it measuring the count and making sure it doesn't exceed some threshold, or is the client API designed to actually give each client a specific number of instructions and terminate if that is exceeded? - Does "machine independent" mean it needs to run outside of x86/amd64? - Would it off…

In the past we've had it where where each bot is allowed a certain amount of "computation", with different upgrades giving you more "computation" each turn.

Machine-independent isn't really the write word, more of that we want the same two bots fighting on the same maps to be deterministic regardless of the machine its being run on.

For mechanics like this, we've found that bytecode instruction counts are the best metric we currently have, since anything that is time-based could result in different results depending how the CPU schedules the bots, and doing something like using PIN or another system to count assembly instructions turns it into a competition of who can write the most optimized assembly code.

Post reply on HN