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

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

Страницы: 1 2 3 4 511 Следующая »
DampireУчастникwww12 апр. 201823:05#30
Sh.Tac.
Это не сомнительная фича. Фрагментация на уровне IP имеет куда больше проблем. Часть железок настроены так, что фрагментированные UDP пакеты дропает. А другая часть вообще не умеет в фрагментацию. А третья имеет слишком маленький буфер для реассембли. Поинт негарантированной доставки в том, что ты шлешь данные, если потерялось - то ну и хрен с ним, у тебя есть новая более актуальная инфа. А если нужно, чтобы дошло - используешь или TCP или эмулируешь кусочек TCP на UDP.

Правка: 12 апр. 2018 23:06

skalogryzУчастникwww13 апр. 20185:14#31
Роман Шувалов
> Всё остальное (вообще всё) надо писать руками.
а как сетевая библиотека должна обеспечивать лагокомпенсацию, если она (библиотека) о природе самой игры ничего не знает?

например, в игре в крестики-нолики лагов, с точки зрения игры, быть не может, т.к. игра пошаговая.

лагокомпенсация это уже на хрупких плечах самого игрового движка.

Правка: 13 апр. 2018 6:50

Роман ШуваловУчастникwww13 апр. 201813:00#32
skalogryz
> а как сетевая библиотека должна обеспечивать лагокомпенсацию, если она
> (библиотека) о природе самой игры ничего не знает?
std::sort умеет сортировать объекты, хотя ничего о природе моих объектов не знает - я определяю функцию сравнения, передаю в std::sort и оно работает. Подумал, может, в сетевой библиотеке может быть функционал предсказаний и лагокомпенсаций, для работы которого мне так же надо будет определить и передать библиотеке необходимые функции.
skalogryzУчастникwww13 апр. 201820:09#33
Библиотека тебе сможет сообщить когда и какой пакет данных пришёл - с отставанием/опережением.
Больше ничего она толком и не сможет сказать.

Она могла бы сказать что в данный момент нужна компенсация, но для этого ей нужно сообщать время «на клиенте».
Но только зачем так изворачиватся, если клиент своё время со воеменнм пакета может сравнить и принять решение

DelfigamerПостоялецwww13 апр. 201820:22#34
Роман Шувалов
> std::sort умеет сортировать объекты, хотя ничего о природе моих объектов не
> знает - я определяю функцию сравнения, передаю в std::sort и оно работает.
> Подумал, может, в сетевой библиотеке может быть функционал предсказаний и
> лагокомпенсаций, для работы которого мне так же надо будет определить и
> передать библиотеке необходимые функции.
В библиотеках, API с участием колбэков считается дурным тоном, ибо работа с ними - тот ещё геморрой.
В STL/Boost оно ещё применимо - они работают не столько как внешние модули, сколько как неразъёмная часть программы. Сетевая библиотека же, наоборот, очень даже внешняя и перемешивание контекстов ни к чему хорошему не приведёт.
andreyuПостоялецwww17 мая 201812:00#35
Посмотрите в сторону https://github.com/networkprotocol/netcode.io
Роман ШуваловУчастникwww17 мая 201818:57#36
andreyu
> Посмотрите в сторону https://github.com/networkprotocol/netcode.io
Спасибо, приму к сведению. Только судя по описанию там упор на безопасность, шифрование и защиту от DDoS.
gamedeveloper01Постоялецwww18 мая 201813:49#37
Кроме ue4 ничего нет, и там уже всё реализовано, включаю защиту от спидхаков.
Lidgren, enet raknet это всё призраки прошлого.
В юньке сеть на уровне тетриса, в то время как в ue4 есть целый раздел для сессионных игр: OnlineSubsystem, олинклюзив.

Правка: 18 мая 2018 13:53

skalogryzУчастникwww18 мая 201815:21#38
gamedeveloper01
>включаю защиту от спидхаков.
спидхаки?
это когда клиент врёт насчёт времени произведённых действий?

Правка: 18 мая 2018 15:22

gamedeveloper01Постоялецwww18 мая 201815:52#39
skalogryz
> это когда клиент врёт насчёт времени произведённых действий?
это когда игрок бегает по карте как флеш, была такая фишка в cs1.6.

Правка: 18 мая 2018 15:53

DampireУчастникwww18 мая 201815:54#40
gamedeveloper01
Вау. UE такой крутой.
gamedeveloper01Постоялецwww19 мая 201811:27#41
Dampire
> Вау. UE такой крутой.
Реально нереально крутой
DampireУчастникwww19 мая 201811:29#42
Вау. И ты такой крутой. Реально нереально.
dmitryhryppaПостоялецwww19 мая 201815:31#43
По-поводу ракнета, вот еще есть такое на его основе:
https://www.slikesoft.com/?page_id=1224&lang=en
Improvements compared to RakNet:
  • added support for the latest compilers and dropped support for older compilers
  • added support for newer versions of 3rd-party libraries
  • security enhancements (f.e. by fixing buffer overflows, using security enhanced CRT functions, replacing obsolete less secure CRT functions with up-to-date ones, etc.)
  • replaced Multi-Byte Character support with Unicode support
  • warning free compiling/linking (i.e. warnings RakNet triggered when building the source were resolved)
  • easier way to get started with SLikeNet by providing precompiled libraries and easily loadable/upgradable solution/project files for recent Visual Studio versions
  • extended documentation
  • countless bugfixes and improvements
  • Odin_KGПостоялецwww19 мая 201818:12#44
    Роман Шувалов
    >Есть у кого опыт работы с какими-нибудь библиотеками?

    Я использовал libuv: http://docs.libuv.org/en/v1.x/ для своей RTS.
    Лично мне она очень понравилась, но она достаточно низкоуровневая, но зато кроссплатформенная. На мой взгляд, документация там не сильно подробная и только на английском, но в интернете есть примеры и на русском. В частности, у меня и самого есть достаточно подробная статья о том, как с этой libuv работать: http://astralax.ru/articles/onimod_land_ext3

    > Чтоб была лагокомпенсация и вот это вот всё.
    Это я не знаю, что означает. TCP, в теории, должен пакеты доставлять гарантированно, а UDP - нет.

    Страницы: 1 2 3 4 511 Следующая »

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

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