Как стать автором
Обновить

Pixockets: как мы написали собственную сетевую библиотеку для игрового сервера

Время на прочтение 7 мин
Количество просмотров 8K
Всего голосов 24: ↑24 и ↓0 +24
Комментарии 6

Комментарии 6

>Кроме того, важно было вписываться в бюджет времени на кадр, ведь данные с сервера должны были приходить вовремя.

Поток рендера и сетевой поток это разве одно и тоже?

>Например, мы не использовали lock-free очереди, так как они создавали нагрузку на сборщик мусора.

Откуда дровишки? Не вижу причин почему lock-free должны напрягать GC существенно больше чем не lock-free.

Почему не взяли ArrayPool.Shared, а сделали свой пул?
> Поток рендера и сетевой поток это разве одно и тоже?
Имеется в виду кадр расчета игровой логики. Нужно успеть просчитать новое состояние мира, уложившись в бюджет времени.

> Откуда дровишки? Не вижу причин почему lock-free должны напрягать GC существенно больше чем не lock-free.
Реализации, которые я видел, делали new на каждую вставку.

> Почему не взяли ArrayPool.Shared, а сделали свой пул?
На тот момент он использовал недоступное в Unity API. И, кроме того, не подходил в некоторых мелочах — например, конфигурация и поведение «ведер».
А со свежей версией LiteNetLib (0.9) сравнивали скорость?) А то версия 0.7 достаточно уж старая и из-за прослойки для совместимости с UWP там прилично страдала скорость.
Не сравнивали, но будет интересно сравнить. Со времени сравнения и LiteNetLib и Pixockets ушли далеко вперед.
НЛО прилетело и опубликовало эту надпись здесь
Благодарю за внимание
Зарегистрируйтесь на Хабре , чтобы оставить комментарий