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

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

Страницы: 16 7 8 918 Следующая »
#90
9:21, 2 авг 2022

Zab
> Узкое место - рассылка с сервера.
Это не узкое место. 20 мб/сек я и на своём компе имею. А уж на сервере темболее.

Zab
> И с лагом что делать? Сеть не быстрая, если не все клиенты в одной локалке.
Как думаешь, почему в дотанчике у почти всех скиллов есть время каста? Да и ты в факторку не играл чтоли?

Zab
> Это не единственный вариант для сбивания квадратичной зависимости.
Я тебя огорчу, но инпутов серавно n*n рассылать.

Проблема в том, что нельзя связать 2 клиента напрямую. Поэтому p2p не модно.

#91
10:26, 2 авг 2022

samrrr
> В фактоке тоже самое.
Пока там closed-source, это заявление класса "слух".

Zab
> Зря вы нападаете на вариант с отправкой инпута.

Претензия не к инпуту, а к основаниям для "решений" типа
> Отправлять нужно только инпут от игрока. остальное отправлять ненужно.

Дело даже не во float, а в тайминге. Они требуют синхронизации.

#92
11:06, 2 авг 2022

samrrr
> Zab
> > Узкое место - рассылка с сервера.
> Это не узкое место. 20 мб/сек я и на своём компе имею. А уж на сервере
> темболее.

А ты стоимость трафика считал?

#93
(Правка: 11:49) 11:30, 2 авг 2022

Zab
> Зря вы нападаете на вариант с отправкой инпута
шутишь что-ли? понятно samrrr просто тролль
у инпута, кроме того что симуляция на float расходится на второй же тик, есть две проблемы, вытекающие друг из друга, его нельзя терять, следовательно нужна надёжная доставка, его надо посылать всегда с максимальной частотой, даже если юнит далеко или не виден
трафика может стать резко больше, чем при обычной схеме

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

#94
(Правка: 12:07) 11:30, 2 авг 2022

Der FlugSimulator
> Пока там closed-source, это заявление класса "слух".
там львиная доля на Lua-скриптах, лежащих в папке игры в открытом виде. а про отправку инпута и детерминизм разработчики писали статью.

Der FlugSimulator
> Они требуют синхронизации.
если детерминизм, то зачем? достаточно периодических выборочных проверок на десинк (однозначно свидетельствующий о каком-то баге).

но это про RTS и игры типа факторки. ММО - конечно там нужен какой-то синк.

samrrr
> Проблема в том, что нельзя связать 2 клиента напрямую.
но факторка же связывает

#95
13:12, 2 авг 2022

Уже изобрели RPC  и целочисленные координаты?

#96
13:15, 2 авг 2022

Der FlugSimulator
> Пока там closed-source, это заявление класса "слух".
> Дело даже не во float, а в тайминге. Они требуют синхронизации.
Не хочешь не верь. Если хочешь отрицать очевидное, то это твои проблемы. Пруфы я предоставил, пару рабочих игр показал, а ты, покачто, никаких пруфов своих заявлений не предоставил.

Вий
> А ты стоимость трафика считал?
А что, для сервера 100 мб соединение стоит выше в 10 раз чем для меня? Поддиванные сервера снова рулят?

kkolyan
> но факторка же связывает
Напрямую? Как? Не ну с моим соединением это возможно, но у обычного юзера нет.

kkolyan
> ММО - конечно там нужен какой-то синк.
Не, ненужно. Факторка же спокойно играет без этого.

kkolyan
> разработчики писали статью.
Где? Когда?

#!
> у инпута, кроме того что симуляция на float расходится на второй же тик,
А факторка всё ещё играет, только сегодня проверял. И даже модьё играет норм. Колдуны видимо да?))

#!
> его нельзя терять, следовательно нужна надёжная доставка,
Ну так пошли 2 пакета. Да и что мешает тебе своими руками TCP эмулировать через UDP?

#!
> его надо посылать всегда с максимальной частотой
Отборнейшая ересь. Если ты отсылаешь инпуты, тебе нужно отсылать только их. А игрок не сможет отправить 100 действий в секунду.

#97
13:37, 2 авг 2022

было время, тоже считал себя самым умным, взялся делать прототип сетевой части шутера, и совершил три фундаментальных ошибки, поскольку решил передавать только инпуты, то отказался от тиков, типа, когда игрок поменяет инпут, тогда и пошлю, и остался на ТСР который и так надёжный

сколько в твоей факторке игроков по сети?

#98
(Правка: 13:54) 13:49, 2 авг 2022

samrrr
> Напрямую? Как? Не ну с моим соединением это возможно, но у обычного юзера нет.
они утверждают что NAT punching у них срабатывает успешно almost every time.

samrrr
> Где? Когда?
factorio.com, 2015-03-06

samrrr
> Не, ненужно. Факторка же спокойно играет без этого.
вообще - да, ММО не нужно :)
но этот тред не про факторку, а ММО.

#99
(Правка: 14:18) 14:16, 2 авг 2022

Давайте я вам про передачу контролзов посчитаю: управляем с геймпада, 2 оси отвечают за направление движения и скорость, 8 кнопок отвечают за всякие частые действия. Пакет выглядит как 2 байта на ось, 1 бит на кнопку итого 1 байт, метка времени 8 байт, уид игрока 4 байта. Итого 17 байт.
Чтобы играть на 60 fps нужно от каждого клиента каждый кадр получать управление. 17*60=1020 байт. Состояние 1000 игроков это 1 мегабайт. Разослать его надо 1000 игроков, это 1 гигабайт трафика на сервере.

samrrr
> А что, для сервера 100 мб соединение стоит выше в 10 раз чем для меня?
> Поддиванные сервера снова рулят?
А ты не спрашивай, ты расценки посмотри. Сколько стоит 8 гигабит трафика лить 24 часа в день 30 дней в месяц посчитай и все сразу поймёшь.

#100
14:26, 2 авг 2022

Вий
> метка времени 8 байт,
если мы шлем ее 60 раз в секунду, то нафиг она нужна. Либо слать пакет только когда что-то изменилось, либо урезать до одного байта. Во втором случае оси тоже можно урезать - если изменение за 1/60 секунды укладывается в 4 бита то будет 1 байт вместо 4, если резко дергает - таки 4.
Итого - 1-4 байт оси + 1 байт кнопок, время которое отсылается общее для всех 1000 пакетов, вместо ид клиенты просто берут номер пакета в списке.

#101
14:36, 2 авг 2022

kipar
А ничего что у тебя мморпг, клиенты уходят и приходят и список постоянно меняется?

#102
14:45, 2 авг 2022

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

#103
14:49, 2 авг 2022

kipar
Ок, так ты немного сократишь трафик. Сколько выйдет исходящего с сервера? Сколько это стоит в месяц?

#104
(Правка: 15:13) 14:55, 2 авг 2022

Вий
100мбит. Выйдет примерно по доллару с игрока в месяц.

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

Страницы: 16 7 8 918 Следующая »
ПрограммированиеФорумСеть