Si fuera yo, lo construiría desde cero con enchufes. La cantidad de datos a enviar es muy pequeña, y la naturaleza por turnos hace que una pequeña latencia sea imperceptible.
La verdadera pregunta, en mi opinión, es qué características adicionales necesita. ¿Son persistentes las sesiones de juego (puede alguien abandonar y volver a unirse, se puede guardar el juego, etc.)? Si está haciendo un guardado al estilo de Civilization, probablemente desee enviar los datos guardados a todos los clientes, o hacer que el guardado se realice en el lado del cliente con una clave provista por el servidor incrustada para la verificación.
¿Necesita algún tipo de informe entre turnos, por ejemplo, "el jugador 2 está moviendo una unidad" o "su oponente puede estar AFK"? Si es así, puede terminar queriendo mantener abiertas las conexiones de socket.
En términos generales, a menos que haya alguna razón convincente para desviarse, mantendría el servidor lo más tonto y simple posible. Deja menos para depurar. También me gusta usar protocolos de texto sin formato, ya que puedo probar mis servidores usando telnet sin un cliente de juego real (que puede ser sospechoso en un problema dado), pero esto alienta la manipulación de los datos por parte de Wireshark (que probablemente lo hará comprobar de todos modos).
Editar: si el juego solo admite juegos 1 a 1, puede valer la pena mirar las conexiones entre pares.