Одноранговая сетевая библиотека для тысяч игроков одновременно.
NetworkClient/NetworkServer
-> NetworkProtocol
-> NetworkSocket
-> NetworkThread
-> NetworkChannel
-> NetworkPacket
->NetworkMessage
NetworkChannel определяет типы сообщений, которые могут быть созданы. Производные классы NetworkMessage выполняют сериализацию в буфер пакетов. Вы создаете сообщение, настраиваете переменные сообщения, а затем отправляете ReliableMessage, Message или Response. ReliableMessage будет ожидать сообщение типа Response от целевой конечной точки. Сообщение и ответ являются ненадежными сообщениями.
В будущем NetworkPeer и NetworkPeerGroup позволят, если это возможно, объединять сообщения в один пакет.
Заголовок NetworkMessage кодирует 5 байт для ChannelType (до 16 каналов, 4 бита), SendType (сообщение/ответ 1 бит), надежности (да/нет 1 бит), перенаправления (1 бит + 2 байта для идентификатора пользователя), идентификатора владельца сообщения. (2 байта), Последовательность сообщений (2 байта).
Текущая система событий позволяет подключаться к NetworkChannelEvents OnMessage и OnResponse при получении NetworkMessage. Существуют также низкоуровневые события NetworkSocket OnSend и OnReceive для дальнейшей настройки.
Отправка, получение и обработка приема — это три подпотока поверх основного потока.
Создайте систему P2P, которая может отправлять надежные и ненадежные сообщения и соединять пользователей с помощью топологии, основанной на местоположении. Конечная цель — поддержка более 1000 игроков в реальном времени на одном сервере.