NiklasKoehnecke / DoppelkopfFramework

Doppelkopf Ki Framework
4 stars 0 forks source link

Bot language compatibility #14

Open NiklasKoehnecke opened 5 years ago

NiklasKoehnecke commented 5 years ago

In order to support a multitude of programming languages for the bots, we need a very general interface for the bot - core game communication.
One idea was to have each bot as executable and have them communicating via standard the standard input/output stream.

XPerianer commented 5 years ago

I think this is also how it is done in normal coding challenge websites. So this is at least used somewhere. Maybe there are even Website-Kits for this kind of things?

NiklasKoehnecke commented 5 years ago

It appears we could have used Codingames to write all of our code as they have that option

NiklasKoehnecke commented 5 years ago

Some links i found as potential options: https://www.linuxjournal.com/article/3641 with https://docs.python.org/3.7/extending/embedding.html https://github.com/protocolbuffers/protobuf https://www.boost.org/doc/libs/1_47_0/doc/html/boost_asio.html http://zeromq.org/ https://github.com/skystrife/procxx

XPerianer commented 5 years ago

I like protobuf and zeromq as options to really encapsulate of the game logic from the bots, to give people basically every possibility to code their bot.

NiklasKoehnecke commented 5 years ago

i read a bit into zeromq, which seems to be a great library and would even enable us to have the players/clients running on different systems. A major challenge as far as i can see is starting different processes and connecting them. Zeromq connects them quite it seems (read a bit into the getting started guide) but we still end up with the starting of the processes as a problem. Additionally, Zeromq does asynch io so we'd have to sync it up manually