This commit implements a prefix syntax in the module specification which allows pelitagame to automatically start a player with a specific executable. Currently, only Python executables are hard-coded but at some point this may be made more flexible. Example: $ python3 pelitagame py2@old_school_player py3@modern_player This starts pelitagame in Python 3 mode which in turn runs subprocesses of Python 2 and Python 3 for the individual modules. If no prefix is given, this defaults to py@, which specifies the same Python interpreter that was used to run pelitagame itself.
Practically, this allows us to run games where both player modules have an identical name (but are otherwise unrelated). Previously, the first imported player module would take preference over any module imported at a later time, which meant that it was impossible for two players to use the same module name (a common situation when several teams start out by forking their code from one reference repository). Additionally, this brings us a bit of code separation which further allows us to dumb down the initialisation routines in pelitagame.
Automatic conversion is a very nice idea and worked well but the resulting JSON was not always optimal when interfacing with other programs over zeromq.