Якби це я, я би будував його з нуля за допомогою розеток. Обсяг даних для надсилання дуже малий, а покрокова природа робить невелику затримку непомітною.
Справжнє питання, на мою думку, полягає в тому, які додаткові функції вам потрібні. Чи тривають ігрові сеанси (може хтось випаде та знову приєднається, чи можна зберегти гру тощо)? Якщо ви займаєтеся цивілізаційним стилем збереження, ви, ймовірно, хочете висунути дані збереження для всіх клієнтів або у клієнта збережена сторона з введеним сервером ключем для перевірки.
Вам потрібен якийсь тип звітів між поворотами, наприклад, "Гравець 2 переміщує одиницю" або "Ваш опонент може бути АФК"? Якщо так, то, можливо, ви захочете зберегти розетки.
Взагалі кажучи, якщо немає певних причин для відхилення, я б тримав сервер якомога тупішим і простішим. Залишає менше для налагодження. Мені також подобається використовувати текстові протоколи, оскільки я можу перевірити свої сервери за допомогою telnet без фактичного ігрового клієнта (який може бути підозрюваним у певній проблемі), але це все-таки заохочує Wireshark маніпулювати даними (що, ймовірно, ви будете перевірити все одно).
Редагувати: Якщо гра підтримує лише ігри «1 на 1», можливо, варто звернути увагу на однорангові з'єднання.