Architecture of building a tournament for game playing agents

I built a game playing agent tournament. To give some context this wasn’t entirely from scratch. I had the benefit of learning from the previous tournament which had a few flaws.

December 2020 tournament

Design

The previous tournament was written in python3 with the rough architecture above. It worked roughly like the following:

Problems

The main problems with this design:

April 2021 tournament

Design

The new ran three docker containers; one for each of the agents + game server and the communication channel was over websockets. The webapp / game ui also connected and served as a visual and debugging aid for the game.

The new iteration was designed with the previous considerations in mind: