Моментальные запросы

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Моментальные запросы

Сообщение krauser0993 23 сен 2020, 05:15

:-h
Делаю онлайн игру через стандартные запросы (через корутину), при этом чувствуется задержка.
Интересует как работают запросы в MMORPG, даже с моим пингом 250мс выполняется все моментально (имею в виду клики, например, завершить задание) и можно ли добиться такого результата в Unity?

Хотя есть мысль, например условие если не пингуется, то нельзя завершить задание, но вряд ли так реализовано
krauser0993
UNITрон
 
Сообщения: 342
Зарегистрирован: 05 апр 2019, 15:17

Re: Моментальные запросы

Сообщение Saltant 23 сен 2020, 09:57

Что в твоем понимании "стандартные запросы" и причем ваще тут корутины? В мморпг сеть работает по UDP протоколу через удаленный вызов процедур (RPC).
По поводу моментальности действий: в онлайн играх, если это не пошаговые, то когда игрок нажимает клавишу бега, он сразу начинает бежать не дожидаясь ответа от сервера, т. е выполняет бег вместе с отсылкой нажатых клавиш на сервер, после того как от сервака пришел ответ с координатами клиент сверяет все ли он верно посчитал и оказался там где надо, если не там, то корректируешь положение, в итоге если клиент все верно считает (игрок не читерит и т. п) то должны быть действия без задержки, игрок не увидит разницы т. к для него все выполняется моментально.
Я на Google Play _https://play.google.com/store/apps/developer?id=Saltant
Аватара пользователя
Saltant
Адепт
 
Сообщения: 2236
Зарегистрирован: 09 окт 2018, 16:40
Откуда: Химки
  • Сайт

Re: Моментальные запросы

Сообщение krauser0993 23 сен 2020, 10:27

Saltant писал(а):Что в твоем понимании "стандартные запросы" и причем ваще тут корутины? В мморпг сеть работает по UDP протоколу через удаленный вызов процедур (RPC).
По поводу моментальности действий: в онлайн играх, если это не пошаговые, то когда игрок нажимает клавишу бега, он сразу начинает бежать не дожидаясь ответа от сервера, т. е выполняет бег вместе с отсылкой нажатых клавиш на сервер, после того как от сервака пришел ответ с координатами клиент сверяет все ли он верно посчитал и оказался там где надо, если не там, то корректируешь положение, в итоге если клиент все верно считает (игрок не читерит и т. п) то должны быть действия без задержки, игрок не увидит разницы т. к для него все выполняется моментально.


стандартные запросы имею в виду post запросы которые через корутины.
с бегом то понятно, а вот с получением дропа например? получает награды тоже без ответа от сервера? если так, то неужели это не вызывает кучу багов?
krauser0993
UNITрон
 
Сообщения: 342
Зарегистрирован: 05 апр 2019, 15:17

Re: Моментальные запросы

Сообщение krauser0993 23 сен 2020, 10:34

P.S. у меня пошаговая игра, например чтобы подгрузить ивенты, список друзей нужно ждать где-то полсекунды
krauser0993
UNITрон
 
Сообщения: 342
Зарегистрирован: 05 апр 2019, 15:17

Re: Моментальные запросы

Сообщение Alex5 23 сен 2020, 10:50

krauser0993 писал(а):с бегом то понятно, а вот с получением дропа например? получает награды тоже без ответа от сервера? если так, то неужели это не вызывает кучу багов?

А в чём тут баг должен быть? При дропе то ведь выпадает вполне конкретная награда, которая уж точно будет отражена на сервере. Т.е. сначала ответ от сервера, а потом сам дроп. Конкретный.
Linux это просто
Экономика это просто
Forex это просто
Мой канал на YouTube
Аватара пользователя
Alex5
Старожил
 
Сообщения: 507
Зарегистрирован: 22 авг 2019, 17:37

Re: Моментальные запросы

Сообщение Saltant 23 сен 2020, 11:13

krauser0993 писал(а):чтобы подгрузить ивенты, список друзей нужно ждать где-то полсекунды

Крути какую нить анимацию эти пол секунды и игрок не заметит подгрузки данных. Тебе лучше найти геймдизайнера какого нить, который будет закрывать вот такие моменты. Но вообще вроде бы есть WebGL если у тебя игра на http запросах, крути её в браузере который есть у каждого и на ПК и мобилке, мощности клиента особо тут и не нужны.
Я на Google Play _https://play.google.com/store/apps/developer?id=Saltant
Аватара пользователя
Saltant
Адепт
 
Сообщения: 2236
Зарегистрирован: 09 окт 2018, 16:40
Откуда: Химки
  • Сайт

Re: Моментальные запросы

Сообщение Jarico 23 сен 2020, 12:51

Saltant писал(а):Что в твоем понимании "стандартные запросы" и причем ваще тут корутины? В мморпг сеть работает по UDP протоколу через удаленный вызов процедур (RPC).
По поводу моментальности действий: в онлайн играх, если это не пошаговые, то когда игрок нажимает клавишу бега, он сразу начинает бежать не дожидаясь ответа от сервера, т. е выполняет бег вместе с отсылкой нажатых клавиш на сервер, после того как от сервака пришел ответ с координатами клиент сверяет все ли он верно посчитал и оказался там где надо, если не там, то корректируешь положение, в итоге если клиент все верно считает (игрок не читерит и т. п) то должны быть действия без задержки, игрок не увидит разницы т. к для него все выполняется моментально.


Это называется предсказание и согласование с сервером :)
Github: _https://github.com/redheadgektor
Discord: Конь! Чаю!#9382 (сижу редко)
YouTube: _https://www.youtube.com/channel/UCPQ04Xpbbw2uGc1gsZtO3HQ
Telegram: _https://t.me/redheadgektor
Аватара пользователя
Jarico
Адепт
 
Сообщения: 1084
Зарегистрирован: 06 янв 2019, 17:37
Откуда: 0xDEAD
Skype: none
  • Сайт

Re: Моментальные запросы

Сообщение Saltant 23 сен 2020, 13:05

Jarico писал(а):
Saltant писал(а):Что в твоем понимании "стандартные запросы" и причем ваще тут корутины? В мморпг сеть работает по UDP протоколу через удаленный вызов процедур (RPC).
По поводу моментальности действий: в онлайн играх, если это не пошаговые, то когда игрок нажимает клавишу бега, он сразу начинает бежать не дожидаясь ответа от сервера, т. е выполняет бег вместе с отсылкой нажатых клавиш на сервер, после того как от сервака пришел ответ с координатами клиент сверяет все ли он верно посчитал и оказался там где надо, если не там, то корректируешь положение, в итоге если клиент все верно считает (игрок не читерит и т. п) то должны быть действия без задержки, игрок не увидит разницы т. к для него все выполняется моментально.


Это называется предсказание и согласование с сервером :)

Мне то понятно как это называется, но для ТС лучше расписать чтоб он понимал.
Я на Google Play _https://play.google.com/store/apps/developer?id=Saltant
Аватара пользователя
Saltant
Адепт
 
Сообщения: 2236
Зарегистрирован: 09 окт 2018, 16:40
Откуда: Химки
  • Сайт

Re: Моментальные запросы

Сообщение krauser0993 24 сен 2020, 09:58

В мморпг сеть работает по UDP протоколу через удаленный вызов процедур (RPC).

Т.е. сначала ответ от сервера, а потом сам дроп. Конкретный.


несостыковка получается. нужно ждать ответ от сервера, а это задержка.

Крути какую нить анимацию эти пол секунды и игрок не заметит подгрузки данных.

знаю моб игры, где моментально без анимаций обновляется.

Мне это конечно сильно пока не нужно, но интересно как добиться такого быстрого ответа от сервера и при этом надежно.
krauser0993
UNITрон
 
Сообщения: 342
Зарегистрирован: 05 апр 2019, 15:17

Re: Моментальные запросы

Сообщение Saltant 24 сен 2020, 11:16

krauser0993 писал(а):
В мморпг сеть работает по UDP протоколу через удаленный вызов процедур (RPC).

Т.е. сначала ответ от сервера, а потом сам дроп. Конкретный.


несостыковка получается. нужно ждать ответ от сервера, а это задержка.

Крути какую нить анимацию эти пол секунды и игрок не заметит подгрузки данных.

знаю моб игры, где моментально без анимаций обновляется.

Мне это конечно сильно пока не нужно, но интересно как добиться такого быстрого ответа от сервера и при этом надежно.

Ни какой несостыковки. Дроп всегда идет с сервера когда ты кликаешь открыть сундук или облутать моба и т.п. Если ты играл в WoW например, когда сервак тупит у них, при облутке моба окно с лутом может появляться задержкой в несколько секунд, а если собрать поляну мобов (50-100) и всех грохнуть, при попытке облута (сейчас в вов лутаются мобы по AOE, т.е если в радиусе 15 метров есть тушки мобов с лутом, достаточно начать лутать одного и с остальных лут тоже к тебе в окошко подтянется) - так вот, при таком масс луте тоже сервак думает секунду+, и это сервера близзард которые явно не 3 копейки стоят.

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

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

P.S В общем, разработка сетевой игры это очень серьезное и не простое занятия, если делать еще пошаговую игру, пол беды, но вот какой нить 3д шутер или ммо... я честно говоря такое в соло неасилю на должном уровне или буду демку делать несколько лет. По этому мне проще заплатить денег сетевому программисту который напишет всё это дело т.к имеет узкую специализацию на сетях и играх в частности.
Я на Google Play _https://play.google.com/store/apps/developer?id=Saltant
Аватара пользователя
Saltant
Адепт
 
Сообщения: 2236
Зарегистрирован: 09 окт 2018, 16:40
Откуда: Химки
  • Сайт

Re: Моментальные запросы

Сообщение krauser0993 24 сен 2020, 15:46

Понятно, спасибо за разъяснение.
В принципе, во многих случаях можно обыграть задержку, сделать незаметной.
krauser0993
UNITрон
 
Сообщения: 342
Зарегистрирован: 05 апр 2019, 15:17

Re: Моментальные запросы

Сообщение Saltant 24 сен 2020, 19:56

krauser0993 писал(а):Понятно, спасибо за разъяснение.
В принципе, во многих случаях можно обыграть задержку, сделать незаметной.

То что симулирует клиент, можно выполнять сразу не дожидаясь ответа от сервера, а то что клиент не может симулировать (типа открытие лутбоксов) - без ответа с сервера не реализовать наперёд. По этому писать сетевую игру требует довольно много опыта, т.к новичок наперёд не сможет всё продумать и в итоге запутается сам в своём же коде когда будет пытаться что то исправлять.
Я на Google Play _https://play.google.com/store/apps/developer?id=Saltant
Аватара пользователя
Saltant
Адепт
 
Сообщения: 2236
Зарегистрирован: 09 окт 2018, 16:40
Откуда: Химки
  • Сайт

Re: Моментальные запросы

Сообщение Tolking 24 сен 2020, 21:17

А главное - МОБЫ ММО и прочие реалтайм работают не через пост запросы...
Ковчег построил любитель, профессионалы построили Титаник.
Аватара пользователя
Tolking
Адепт
 
Сообщения: 2716
Зарегистрирован: 08 июн 2009, 18:22
Откуда: Тула

Re: Моментальные запросы

Сообщение krauser0993 25 сен 2020, 03:08

Tolking писал(а):А главное - МОБЫ ММО и прочие реалтайм работают не через пост запросы...

суть остается такой же, отправляется запрос получает ответ. или POST чем-то хуже?
krauser0993
UNITрон
 
Сообщения: 342
Зарегистрирован: 05 апр 2019, 15:17

Re: Моментальные запросы

Сообщение Saltant 25 сен 2020, 10:11

krauser0993 писал(а):
Tolking писал(а):А главное - МОБЫ ММО и прочие реалтайм работают не через пост запросы...

суть остается такой же, отправляется запрос получает ответ. или POST чем-то хуже?

Хуже тем что это http протокол.
Я на Google Play _https://play.google.com/store/apps/developer?id=Saltant
Аватара пользователя
Saltant
Адепт
 
Сообщения: 2236
Зарегистрирован: 09 окт 2018, 16:40
Откуда: Химки
  • Сайт

След.

Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 29