I'm working on a KOTH contest, and it is a little bit more on the complicated side. Each bot is expected to keep track of a lot of state. For example, move history, position in the board, position of other bots, etc.
It seems to me like the best way to do this would be to make each bot an instance of a class, rather than a full program communicating over command line arguments.
However, I'm worried about this since, by nature, this would restricts all entrants to a single language. Is this okay? And I go through with restricting it to a single language, what language is most appropriate? I'd like to do it in Java since it's very widespread and pretty easy to get started with. If I restrict it to Java, will that hurt participation on a technical or social aspect? E.g, "I'd like to participate, but I really want to do it in <language>
"
Or If I instead allow persistent program that communicate over a pipe, will this make it too technically hard to implement that it will hurt participation?
// Bot logic goes here
and// Turn history; access with this.history[turn_number]
. This makes it easier for people to participate even if they don't really know the language (but can read a tutorial and work by trial and error). \$\endgroup\$