I'm writing a small browser game and as I'm not a good designer, I wanted to start with the technical part first and add the user interface later, so I wanted to have the first version include bot support, so everyone could write their own bot and have it play the game. This way, I don't have to care about making graphics for the user interface and can concentrate on the game's core while having a steady flow of test data and many testers.
However, I can't decide betweens the various ways of exchanging data between the server (C++) and the clients (any language, but the first reference implementations will be in C++ and Python).
For the transport I thought of offering HTTP and TCP (some simple homebrew protocol), as most languages have beginner friendly implementations of those protocols.
For encoding the data I considered something arbitrarily defined by me (something primitive like CSV), JSON and XML, but I'd like some comments regarding ease of use in C++, easy implementations on various languages and understandability by humans.
What should I do?