libquicknet
Простая и небольшая надежная сетевая библиотека UDP для игр.
❗ libquicknet находится в стадии разработки и не подходит для промышленного кода ❗
Основной целью этой библиотеки являются прототипы игр или джем-игры, для которых требуется быстрая сетевая подсистема plug&play.
Очень легко приступить к работе!
Функции:
- Протокол UDP, ориентированный на соединение, с трехэтапным рукопожатием
- Поддержка клиента<->сервера и одноранговой сети
- Низкое использование полосы пропускания
- Последовательная/непоследовательная Надежная/ненадежная поддержка
- Быстрая резервная система подтверждения для надежных сообщений
- Обнаружение сервера (только локальная сеть)
- Полная система контрольных сумм для предотвращения повреждения сообщений
- Необязательное объединение сообщений при отправке
- Фиксированная выбираемая скорость отправки
- Обнаружение дублированных сообщений
- Поддержка ложной задержки и потери пакетов
- Оценка пинга и времени приема-передачи
- Кроссплатформенность (Windows/Linux)
Будущие возможности:
- Синхронизация времени
- Синхронизация ГСЧ для детерминированных систем
- Битовая упаковка и сжатие
- Симметричное шифрование с обменом ключами при рукопожатии
- Обход NAT и сквозное соединение
- Осведомленность о порядке байтов
- Улучшить систему подтверждения
Установка
Перетащите все исходные файлы в свой проект и скомпилируйте!
Использование
- включить fastnet_peer.h
- создать потомка Quicknet::Peer
- переопределить методы OnConnection, OnDisconnection и OnGameMessage
- Определите свои собственные игровые сообщения, как указано в файле Quicknet_messagetypes.h.
- Включите идентификаторы своих сообщений в файл fastnet_messagelookup.h.
- Готовый!
Для простого примера проверьте test.cpp
Фон
Эта библиотека была написана за одну неделю, и даже если она полностью функциональна, ей еще предстоит много работы, чтобы сделать ее еще лучше!
Есть еще много жестко запрограммированных вещей, требующих ухода, но я постараюсь превратить это в легко настраиваемую библиотеку.