Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Свободные библиотеки для сетевых реалтайм-игр. Кто использовал?

Свободные библиотеки для сетевых реалтайм-игр. Кто использовал?

Страницы: 1 2 310 11 Следующая »
Роман ШуваловУчастникwww11 апр. 201816:41#0
Есть у кого опыт работы с какими-нибудь библиотеками? Пригодных для, например, сетевого Quake-подобного шутера. Чтоб была лагокомпенсация и вот это вот всё. И, крайне важно, со свободной для коммерческого использования лицензией (BSD, ZLib, MIT, Apache, на худой конец LGPL). Гуглятся несколько библиотек, но хотелось бы услышать отзыв тех, кто их пытался применять на практике.

Писать библиотеку свою пытался, небезуспешно, но слишком много нюансов - нерационально изобретать велосипед, если уже есть пригодный для использования. А есть ли он - в этом и вопрос.

FireFenixПостоялецwww11 апр. 201816:55#1
RakNet же, Кармак купил и выложил
bykabakПостоялецwww11 апр. 201816:56#2
Пробовал ENet.  Связь установил, что-то передал и дальше ничего не делал, есть более интересная работа для меня. :)
Sh.Tac.Постоялецwww11 апр. 201817:13#3
libyojimbo вроде прикольная, по крайней мере основные идеи заложенные в ней проиллюстрированы в серии статей https://gafferongames.com
Роман ШуваловУчастникwww11 апр. 201820:19#4
FireFenix
> RakNet же, Кармак купил и выложил
Опаньки.

Sh.Tac.
> libyojimbo вроде прикольная
Вроде.  И легковесная. Но и умеет она немного - про лагокомпенсацию ничего не вижу. Одного умения измерения Latency недостаточно.

P.S. Странно, RakNet под лицензией BSD, но платная для консолей: http://www.jenkinssoftware.com/pricing.html - мне на данном этапе это не важно, но не понятно, я что, не могу взять свободную ПК-версию и портировать ее на консоли сам?

Правка: 11 апр. 2018 20:23

ТатаринПостоялецwww11 апр. 201820:46#5
Роман Шувалов
попробуй не заморачиваться с UDP и написать свою на TCP проще в разы да и результат будет приемлем, если цель конечно продукт сделать.
Роман ШуваловУчастникwww11 апр. 201820:55#6
Татарин
В твоём предложении неправильно абсолютно всё, я даже не буду тратить время, чтобы тебе отвечать.
ТатаринПостоялецwww11 апр. 201821:07#7
Роман Шувалов
Спасибо, абсолютного неправильно я еще не достигал)
Sh.Tac.Постоялецwww11 апр. 201821:15#8
Роман Шувалов
> про лагокомпенсацию ничего не вижу
а где такое есть искаропки? : )
в том же UE4 только если у тебя CharacterMovement, то работает prediction и server reconciliation, не уверен на счёт lag compensation есть ли он там,
а всё остальное надо синхронизировать самостоятельно
Роман ШуваловУчастникwww11 апр. 201821:22#9
Sh.Tac.
> а где такое есть искаропки? : )
А что, разве нигде нету, прям вообще? Даже во всяких Юнитях?

Sh.Tac.
> в том же UE4 только если у тебя CharacterMovement, то работает prediction и server reconciliation
Ну я это как бы и имел в виду, механизм, позволяющий установить, где в указанный момент времени находится (находился, будет находиться) объект с учётом всех задержек в передаче пакетов.

Sh.Tac.Постоялецwww11 апр. 201821:30#10
Роман Шувалов
> Даже во всяких Юнитях?
особенно в юнитях, там тебе дают пустую комнату и всё, движок не предназначен для сетевых игр

З.Ы. вот есть хорошая вводная статья DIY побеждает во всех номинациях : )
http://ithare.com/unity-5-vs-ue4-vs-photon-vs-diy-for-mmo/

З.З.Ы. по мне так всё сейчас упирается в физику, стандартные физдвижки предоставляют лишь kinematic object, а всё взаимодействие для них нужно писать самостоятельно

Правка: 11 апр. 2018 22:15

foxesПостоялецwww12 апр. 20180:01#11
Sh.Tac.
> по мне так всё сейчас упирается в физику
Вот было бы интересно посмотреть на реализацию объединения клиентских машин в кластеры по вычислению всего этого добра для онлайн проекта, пусть даже с заведомо очевидной проблемой взлома. А сервер выступал бы только в качестве источника контента.

Правка: 12 апр. 2018 0:02

KrakeanПостоялецwww12 апр. 20182:40#12
Sh.Tac.
>З.З.Ы. по мне так всё сейчас упирается в физику
Это в контексте сети? Не раскроете мысль подробнее, пожалуйста? А то не в теме просто, интересно.

Роман Шувалов
Посмотрите LiteNetLib, есть на гитхабе, если C# допустим. 

Правка: 12 апр. 2018 2:41

Sh.Tac.Постоялецwww12 апр. 20183:24#13
foxes
> объединения клиентских машин в кластеры по вычислению
выяснять какой клиент обладает избыточными мощностями, поручать ему дальнейшую раздачу (как уже в торрентах) и наделять "авторитетом" (не знаю делает ли кто так)

Krakean
> мысль подробнее
возьмём prediction-reconciliation
http://www.gabrielgambetta.com/client-side-prediction-server-reco… iliation.html

корректирующее сообщение с сервера из прошлого меняет точку в истории действий клиента, но не саму историю, т.е. нужно пересчитать только отрезок от точки вмешательства до настоящего момента чтобы восстановить синхронизацию

это можно оформить библиотекой, но не имеет особого смысла, если ещё используется физика, т.к. нужно пересчитать и её
существующие физдвижки PhysX и Bullet Physics (для шарперов скажем JitterPhysics) к такому перерасчёту не готовы, у них есть текущее состояние мира, "спящие острова" и прочие оптимизации

так что в конечном счёте физику нужно переписать, все это делают, но мало кто выкладывает публично
Гаффер не просто теоретик, но и он пока не спешит : )

MANABПостоялецwww12 апр. 201810:27#14
Пару лет назад юзал в Юнити Lidgren https://github.com/lidgren/lidgren-network-gen3
Оч даже ничего.
Что касается лагокомпенсации - мне кажется ее в любом случае придется самому писать, не вижу вариантов как это может работать само, оно ж в игровую логику упирается.
Страницы: 1 2 310 11 Следующая »

/ Форум / Программирование игр / Сеть

2001—2018 © GameDev.ru — Разработка игр