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

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

Страницы: 16 7 8 9 10 11
Sh.Tac.Постоялецwww24 мая 201818:13#150
Dampire
> 250ms vs 30ms?
предлагаешь индивидуальное опережение для каждого игрока?

я собирал разные грабли, теперь могу поделиться как делать не надо : )

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

DampireПостоялецwww24 мая 201818:37#151
Sh.Tac.
> предлагаешь индивидуальное опережение для каждого игрока?
Я без понятия про какое опережение ты говоришь. Но я тебе скажу по простому. Каждый сетевой игрок в практически каждой быстрой сетевой игре (кроме твоей революционной, как я понял) играет в свою игру. И она у него ощутимо отличается от той, что происходит у других игроков. А сервер, бедолага, вынужден рассчитывать что-то усредненное от всех и делать это комфортно для игроков от Австралии до Японии.
> даже у валв так, иначе безумная идея откатывать всю сцену на сервере под выстрел определенного чувака, не посетила бы их головы
Эта безумная идея посетила головы всех сетевых программистов, граблесобиратель ты наш. Сервер хранит историю. Никто никуда не откатывается, а просто хранится статический кусочек динамического мира. Да-да. Занимает дико дефицитную память. И таких кусочков 30 штук, чтобы уложиться в 500мс истории при тикрейте в 60. Может даже инкрементальные. И хитскан просто обращается к великому историческому моменту. Вернее к двум. К базовому + интерполяция по временной метке. Как только твоя светлая головушка придумает, как валидировать хит на сервере для игрока, который отстает от этого самого сервера на 250мс, так сразу же эта безумная идея уйдет в историю. А пока живем как-то так. Но кто такие дайсы или близзы. Лохи какие-то, застрявшие в девяностых. Sh.Tac. пишет без этой убогой практики и имеет уважение.

И заметь. Я расписал как работает сервер. И уже не первый раз. А ты свой законспирированный алгоритм почему-то выдать не можешь. Патент, наверное. Все хотят деньги грести лопатой.

Правка: 24 мая 2018 18:40

DelfigamerПостоялецwww24 мая 201818:46#152
Sh.Tac.
Го 1в1 Unreal Tournament GOTY, я тебе покажу лагокомпенсацию.
Sh.Tac.Постоялецwww24 мая 201818:49#153
Dampire
> А ты свой законспирированный алгоритм почему-то выдать не можешь
ну почему? он предельно простой, все другие чуваки на твоем клиенте держатся на экстраполяции

соответственно на сервере никаких откатов делать не надо

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

З.Ы. т.е. идеологически это старый добрый квейк, анрил, а если заменить хитскан на прожектайлы, то даже и баттлфилд : )

Правка: 24 мая 2018 18:58

DampireПостоялецwww24 мая 201818:57#154
Sh.Tac.
> ну почему? он предельно простой, все другие чуваки на твоем клиенте держатся на
> экстраполяции
И как твоя экстраполяция работает? Нашел философский камень? Вот я когда занимался написанием экстраполяции, у меня в шутере она работала до невозможности убого. Рывки, низкопинговые игроки (локалы) набигают и ногебают тех, кто находится от них даже в 30мс (что просто божеский пинг в большинстве игр). А у тридцатипинговых - стрейфящийся игрок телепортируется при реверсе на несколько метров. Тоже было очень мило. Или ты просто сглаживаешь телепорты и типа так и надо? Игрок там не был никогда, но экстраполирующему клиенту виднее?

Правка: 24 мая 2018 18:58

DelfigamerПостоялецwww24 мая 201819:02#155
Sh.Tac.
> если ты лагаешь это твои личные проблемы
Лол, убийца ксго налицо.
DampireПостоялецwww24 мая 201819:05#156
Sh.Tac.
> З.Ы. т.е. идеологически это старый добрый квейк, анрил, а если заменить хитскан на прожектайлы, то даже и баттлфилд : )
Бгг. В баттлфилде история, дружок-пирожок. Посмотри ролик, что я кинул на предыдущей странице. Как и в квейке (на клиенте даже позиция pos[2], что уже должно навести на мысли об интерполяции, а не экстраполяции).

Твой подход работает только в сильно инерционных играх. В настоящих быстрых шутерах он не работает и никогда работать не будет.

Даже дублирую ссылочку на экстраполяционный баттлфилд, лол. Как там круто экстраполируется смерть за забором.
https://youtu.be/vB0Vj9_c234?t=6m10s

Правка: 24 мая 2018 19:11

Sh.Tac.Постоялецwww24 мая 201820:40#157
Delfigamer
> Го 1в1 Unreal Tournament GOTY
меня бы и в коде UE4 устроило : )
поищу конечно сам еще, а то может проглядел

З.Ы. по поводу изобретения валв я пожалуй не прав, идея буквально витала в воздухе, чуваки писали свои моды
вот тут например утверждается

Compensation for Quake 3's built-in 50ms lag for instant-hit weapons when players opt out of full lag compensation, and for all projectile weapons

http://www.ra.is/unlagged/

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

З.З.Ы.
Dampire
> Бгг. В баттлфилде история, дружок-пирожок
ладно, но ещё в прошлом году этого дерьма не было (судя по форуму)
https://forums.battlefield.com/en-us/discussion/95700/lag-compensation-changes
https://forums.battlefield.com/en-us/discussion/123969/lag-compen… e-last-update

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

DampireПостоялецwww24 мая 201822:34#158
Sh.Tac.
> ладно, но ещё в прошлом году этого дерьма не было (судя по форуму)
Это дерьмо изначально было заложено. Причем еще в BF3. Просто потом нарастили буфер до 450мс истории. Стало можно играть с дикими лагами и в ус не дуть.
Посмотри еще видосы овердроча по неткоду от разработчиков и энтузиастов. Тебя ждет много чудных открытий.
> собственно с чего начали прошлую страницу, что сами валв на прожектайлы забили
Прожектайлы таким же способом можно трейсить в прошлом. Благо в той же батле они отличаются от хитсканов только длиной в 100мс, а не в 1. Опровержения от валвов нет, значит может забили, а может и нет.

Ты про экстраполяцию лучше расскажи. Как ты обрабатывал сообщения от клиента, который стрелял в ложную экстраполяцию, не зная что несколько тиков назад другой игрок сменил направление стрейфа/бега на 180 градусов. Инерционностью? Доверием клиенту? Или засчитывал промах? Хейта меньше, чем от стрельбы за угол?

Правка: 24 мая 2018 22:36

Sh.Tac.Постоялецwww24 мая 201822:54#159
Dampire
> Ты про экстраполяцию лучше расскажи.
ну мой макет шутера слава богу никуда не пошёл : )

а сейчас я на сильно "инерционном" проекте, как ты правильно заметил, так что неправильный опыт пришёлся кстати
вылавливаю косяки, править пока ещё не заслужил
https://warthunder.ru/ru/news/13276-v-razrabotke-novye-algoritmy-… -popadanij-ru

skalogryzУчастникwww25 мая 20187:20#160
Dampire
> Посмотри разбор сетевого кода Battlefield. Все понятно объясняется. Если
> запасешься секундомером, то сможешь сложить 2 и 2.
> https://www.youtube.com/watch?v=vB0Vj9_c234&index=3&list=PLfOoCUS0PSkVr4TDUfOQydoC9IQWOfvAy
причём тут вообще это?
то, что показано в видео это глюки особенности современной игровой индустрии.
1) в отличии от того что написано в Валв библии (проверка стрельбы - удел сервера), сервер "почти" всегда доверяет клиенту о правильности выстрела.
Очевидно, сделано это чтобы разгрузить движок и...
2) помочь игрокам - с большой задержкой. Иначе они в принципе всегда будут видеть слишком уж прошлое состоние.
Естественно, т.к. сервер доверяет убийце-тормозу, шустрой жертве будет справедливо казаться убийство несправедливым.

Dampire
> И не будет он ничего предсказывать по латенси, потому что это не постоянная величина.
и кстати видео показывает, что сервер пытается что-то по латенси предсказать (как-минимум правомочность попадания), т.к. тормозные убийства всё-таки прекращаются на очень уж большой задержке.
(а автор видео жалуется, что такие "тормозные" убийства нужно прекращать ещё раньше)

Правка: 25 мая 2018 7:21

DelfigamerПостоялецwww25 мая 20187:22#161
Sh.Tac.
> меня бы и в коде UE4 устроило : )
Нет, в UE4 ты лагокомпенсацию так просто не увидишь, потому что в UE4 она есть. Нужна именно старая игра, чтобы ты на своей собственной шкуре почувствовал, что такое хитскан без откатов.

skalogryz
Ещё один не верящий в откаты? Го вместе со Штаком, тоже будешь практического опыта набираться.
> тормозные убийства всё-таки прекращаются на очень уж большой задержке
Потому что история заканчивается, конечно же.
Они, похоже, эту историю на хвостовом конце на пару сотен мс ещё экстраполируют - это когда на диком пинге в прямолинейно бегущего ещё попадаешь, а в скачущего по засаде - уже нет.

skalogryz
> (а автор видео жалуется, что такие "тормозные" убийства нужно прекращать ещё раньше)
Жирно ему, с оптоволокном, вот и бесится. 75мс ему, ага.

Правка: 25 мая 2018 7:35

DampireПостоялецwww25 мая 20187:41#162
Sh.Tac.
> а сейчас я на сильно "инерционном" проекте, как ты правильно заметил, так что
> неправильный опыт пришёлся кстати
Это не неправильный опыт. Это опыт, применимый к достаточно ограниченному числу игр. Инди-кооператив вообще в большинстве своем работает просто на синхронизации состояний. И ничего, живет как-то.
skalogryz
> 1) в отличии от того что написано в Валв библии (проверка стрельбы - удел
> сервера), сервер "почти" всегда доверяет клиенту о правильности выстрела.
Если бы ты внимательно смотрел, то заметил бы что анимация попадания проигрывается сразу, но хитмарки появляются с задержкой (X на прицеле) и примерно с RTT задержкой до сервера. Никакому клиенту он не доверяет.
Страницы: 16 7 8 9 10 11

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

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