Перевод: Многопользовательские игры. Разработка сетевых приложений
Оригинал: Multiplayer Game Programming: Architecting Networked Games
Исходники примеров: https://github.com/MultiplayerBook/MultiplayerBook
Смотрел перевод, он вроде хороший. Но я читаю оригинал. Я пока только некоторые места данной книги посмотрел обзорно. На протяжении книги создаётся игра по локальной сети, где, как я понял, играешь за робота-кота, который что-то ловит. Цель поймать больше и набрать больше очков, чем соперники. Происходит действие игры в одном игровом мире, где каждый за себя и пытаешься выжить в конкурентной борьбе. Чёткого описания игрового процесса я не нашёл. Может я что-то не правильно понял. То что я точно понял, что для клиента и сервера используется C++. Для 2D графики используется библиотека SDL. Для сервера используется чистый Winsock (https://ru.wikipedia.org/wiki/Winsock). Я использую для сервера и клиента C#. Клиента пишу OpenGL 3.0 и OpenTK. С помощью OpenTK можно создать окно из консольного приложения. Можно встроить OpenTK.GLControl в WPF и WinForms. Устанавливаются OpenTK и OpenTK.GLControl очень просто и очень быстро, через NuGet. Не нужно долго настраивать SDL2. В Xamarin встроена OpenTK, то есть можно написать на C# клиента для Android и iOS. В целом, я считаю, что C# вполне подходит для написания игровых серверов. Я много находил информации, что если есть небольшие отличия в скорости C# и C++, то эти отличия сходят на нет, потому что это пренебрежимо мало с сетевыми задержками, которые неизбежны даже при самой лучшей скорости соединения. Я за то, чтобы переписывать примеры книги на C#. C# намного более дружелюбный, мне он больше нравится. Тем более всегда есть возможность перейти на Unity, который является самым популярным движком. Можно использовать Unity, как клиент для C# TCP-сервера.
Отредактировано 8Observer8 (Вт, 10 Дек 2019 18:18)