Сетевые игры - это широкий вопрос, в зависимости от того, какую проблему вы решаете.TCP (может) даже не будет правильным выбором для вас.
Например - игры, которые отправляют движения персонажей, обычно делаются с UDP.Причина в том, что движение персонажа не имеет решающего значения для работы игры, поэтому некоторая потеря данных о движении является «приемлемой».Возможно, поэтому иногда ваш персонаж «прыгает» - некоторые UDP-пакеты были потеряны или сильно вышли из строя.
UDP - , который считается предпочтительным протоколом для сетевых игр.Поэтому, прежде чем начать, тщательно продумайте, выбираете ли вы правильный протокол.
В целом, я считаю серию Гленна Фидлера о разработке сетевой игры фантастическим чтением.Я бы начал здесь.Он охватывает все основы использования UDP для игр.
Если вы хотите использовать TCP просто для того, чтобы разобраться с TCP - тогда Minecraft - разумный пример.Известный список команд, которые можно отправлять туда и обратно, - это простой способ запуска.Однако, как вы заявили, склонен к некоторым проблемам.Это больше согласуется с использованием неправильного протокола, чем с тем, как он был разработан.