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

Серверная часть для масштабной MMORPG (9 стр)

Страницы: 18 9 10 1118 Следующая »
#120
18:49, 2 авг 2022

Der FlugSimulator
> синхронизированы с инпутами.
Ну по классике инпуты уходят на сервер и он определяет в каком Тике инпуты пришли. А дальше все хором симулируют одинаковый мир по инпутам от сервера. Только те у кого пинг большой имеют слегка дубовое управление а те у кого маленький могут уворачиваться от пуль как в матрице

#121
18:51, 2 авг 2022

Der FlugSimulator
это да, ты хочешь систему без тиков
fixed dt проще и используется для всего, в т.ч. для инпута

#122
18:51, 2 авг 2022

kkolyan
Дельта тайм берётся один. Но это происходит в разные моменты времени, у кого-то Вася выстрелил в Петю в 17:50:10.78 а у кого-то в 17:50:10.01. На компьютерах часы не одинаково идут. Их можно рядом поставить и смотреть как в разные моменты будет происходить то что должно происходить одновременно

#123
(Правка: 19:14) 19:05, 2 авг 2022

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

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

#124
19:13, 2 авг 2022

kkolyan
А как у тебя не будет телепортации противников? Скажем вот у тебя пинг 200 мс и канал 128 килобит/с. Инпуты к тебе приходят с задержкой и когда на сервере становится Более 200 игроков вовсе перестают пролезать.

#125
19:16, 2 авг 2022

Вий
телепортации появятся при реализации предикшна, разумеется. без предикшна (а в #120 ты вроде предполагаешь его отсутствие) не будет телепортаций - а будет просто все очень лагучее.

#126
19:18, 2 авг 2022

kkolyan
Но погоди, вот от сервера идут инпуты, 129 кб/с, а мой канал имеет скорость 128 кб/с. Что будет? Телепортация? Дисконнект?

#127
(Правка: 19:33) 19:26, 2 авг 2022

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

PS: ты назвал только throughput сети. в абзаце выше я исхожу из того что latency хороший (а вполне возможно что при таком канале он будет плохим)

#128
19:35, 2 авг 2022

kkolyan
Ну то есть когда онлайн 199 игроков я смогу играть, а как придёт 200 у меня вся игра будет портиться? Круто придумано!

#129
19:41, 2 авг 2022

Вий
ну да, эксплуатировать игру с deterministic lockstep на пределе возможностей канала - плохая идея и это тоже надо учитывать при разработке. как и много других ньюансов. иначе разработчики бы столько не получали :) не понимаю почему ты видишь в этой особенности шоустоппер.

#130
20:11, 2 авг 2022

kkolyan
Потому что у многих игроков канал вовсе не 100 мегабит/с

#131
20:21, 2 авг 2022

Вий
а при недетерминистик подходе это не шоу-стоппер?

рассылка состояния локации каждый фрейм драматически экономичнее рассылки инпутов локации?

#132
20:40, 2 авг 2022

Производительность WiFi ограничена 56 мегабитами в секунду, но и это значение редко достижимо. Провайдеры хоть и заявляют суперпупермегаскорости, и деньги за них берут, реальная скорость чаще всего около 5-10 мегабит/с. И это в условиях Москвы или Питера, в других местах хуже.

#133
20:40, 2 авг 2022

#!
> это да, ты хочешь систему без тиков

Это не я хочу, а так было заявлено samrrr

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

kkolyan
> DeltaTime берется один и тот же (из константы, например) на всех тачках.

Да я вкурсе, и говорил об этом.
Проблема в том, что в реальном мире, эти тики будут происходить у всех в разное время.
И без синхронизации не обойтись.

#134
(Правка: 20:55) 20:48, 2 авг 2022

Der FlugSimulator
и что что они будут происходить в разное время? инпуты привязаны к тикам. на моей тачке твой инпут будет прмименен к модели в кадр с тем же порядковым номером что и на твоей тачке. одинаковые начальные условия + одинаковые апдейты = одинаковое состояние. одинаковое состояние и через 2 дня, т.к. все эти два дня на всех тачках будут применяться идентичные изменения к идентичным состояниям. время прихода сообщений НИКАК не учитывается в вычислениях.

при детерминизме не нужна синхронизация.

> Рассылка номера тика - уже и есть некая синхронизация времени.
ахахах. окей, тогда так: в deterministic lockstep подходе некая синхронизация предусмотрена by design. его просто невозможно реализовать без нее. так что никакой дополнительной синхронизации не надо. в отличие от других подходов, которые как-то могут работать и с ней и без нее.

Страницы: 18 9 10 1118 Следующая »
ПрограммированиеФорумСеть