jonthysell / Mzinga

Open-source software to play the board game Hive.
MIT License
85 stars 10 forks source link

Modifying the Hive Protocol to work with BoardGameArena (make each bug distinctly unique) #127

Open rhstephens opened 8 months ago

rhstephens commented 8 months ago

I'm curious what your opinion is on this @jonthysell

As of right now, when playing your first grasshopper/ant/spider/etc. it is implicitly required to be "G1"/"A1"/"S1"/etc, and you cannot, for example, explicitly use G3 as your first grasshopper action. While this is a valid way to program the game, I am running into a slight issue when trying to encode the total action space for a Hive bot I am working on. It doesn't quite sense to limit G2/G3 until G1 is played, and I fear trying to do that will have an effect on the model's accuracy while learning, considering G2/G3 will have to be nulled out as invalid actions in order to conform.

It is also the case that BoardGameArena's logging considers each piece unique, so you can play G2 as your first grasshopper for example. I understand it would be possible to modify the BGA log to conform to this protocol, but it would be a nice feature to be able to take a BGA replay and have it be a valid game for Mzinga engine without having to pre-process the replay logs. What are your thoughts on altering the protocol to allow for this?

I have no problem doing the work for this in a PR, just wanted to ask for your thoughts on the matter first