Size: a a a

2021 September 07

T

Tverd in pro.lua
50к игровых клиентов?)))
источник

S

Snusmumriken in pro.lua
Без проблем. Уменьшаешь трафик, заставляешь эти 50к клиентов посылать минимальные сообщения, объединяешь отдельные короткие сообщения в один 1кб-пакет. Для типовой игры нужно очень мало трафика.
источник

S

Snusmumriken in pro.lua
Особенно если у тебя нет локаций где больше сотни клиентов, и каждому надо переслать данные о каждом (решается игровыми слоями).
источник

T

Tverd in pro.lua
Тут вопросы, что раньше забьется, клиентский канал или серверный.
источник

S

Snusmumriken in pro.lua
Карочи, 50к коннектов решаются:
1. Кластером серверов
2. Балансировкой
3. Слоями, на которые распределяются клиенты (инстансы)

И это совсем не проблема TCP или UDP, если грамотно написать с учётом игровой специфики — всё будет ок.
источник

T

Tverd in pro.lua
Небольшая история, сервер линейки легко держал больше 5к, но когда шла осада, много людей было в одном месте и сеть у клиентов была забита, хотя сервер на 20%
источник

S

Snusmumriken in pro.lua
Вот если ты сделаешь одну игровую комнату на все 50к клиентов — с этим не справится ни один суперкомпьютер, тупо потому что всем клиентам надо отсылать данные о каждом. Там объём трафика растёт по экспоненте в зависимости от количества игроков в одном месте.
источник

I

Igor725 in pro.lua
Было бы, если бы игра развивалась дальше. В 11-12 году эту версию сделали архивной сами разработчики, а те, кто не пожелал от неё отказываться, написали свой порт клиента на Си, ну и сервер на шарпе, оригинальный протокол никак не трогали. Разве что расширение для него написали. У хендшейк пакета есть зарезервированный байт, который оригинальным клиентом никак не юзается, а клиент, который поддерживает расширение протокола устанавливает его а 0x42. В общем там костыль на костыле и костылём погоняет.
источник

T

Tverd in pro.lua
Ну так же было с линейкой и ВОВом )
источник

S

Snusmumriken in pro.lua
Вот в этом случае, кстати, можно смело врубать сглаживание и обновлять клиентов по частям: за четверть секунды один клиент получил данные о половине игроков, за другую четверть — о другой половине. Да, появляется некоторый лаг, но на него насрать, если хорошо сглажено. И так можно растягивать в зависимости от количества. Чем больше народа тем больше лаг, но компенсация это пофиксит. Эвристика показывает что хорошо сглаженный лаг до секунды — норм.
источник

I

Igor725 in pro.lua
Многие игры от этого пострадали, к сожалению. Не знаю, почему почти всегда погромисты-игроки не решаются улучшить производительность сетевого протокола, например и оставляют тот ***дец, что оставили за собой разработчики сто лет назад.
источник

T

Tverd in pro.lua
Ну вариант, да. Но обычно на архитектуру игрового сервера все забивают))) Ну либо я чего-то не понимаю и для fps сервера 64 человека это максимум без лагов
источник

T

Tverd in pro.lua
Вот только написал)
источник

S

Snusmumriken in pro.lua
У FPS, в отличии от какой-нибудь РПГ, есть несколько неприятных особенностей:
1. Все действия крайне быстры и не откатываемы (у рпг можно вернуть задетого или как бы убитого на клиенте персонажа, если сервер понял что последние действия были нелегитимными из-за лагокомпенсации, а у FPS — нет);
2. Из-за особенностей быстрого перемещения и видимости, нельзя сглаживать слишком сильно, например игрок шёл к краю укрытия, а другой клиент одного из игроков на другом конце карты досглаживался что идущий к краю таки вылез из укрытия, чего на самом деле не произошло, но он уже знает что там будет челик.
источник

I

Igor725 in pro.lua
Досглаживался, интересное определение, надо запомнить😂
источник

S

Snusmumriken in pro.lua
Ну и FPS тупо пересылают гораздо больше трафика.
источник

T

Tverd in pro.lua
Тут ещё влияет пинг сильно, сервер надо поближе к народу ставить
источник

S

Snusmumriken in pro.lua
У РПГ оно не настолько важно, особенно если куча вещей требуют времени каста, это автоматом растягивает трафик и ограничивает количество действий в секунду. Алсо в этом помогает ГКД.
источник

I

Igor725 in pro.lua
Короче, вывод напрашивается сам собой: рпг - добро, фпс - зло
источник

S

Snusmumriken in pro.lua
РПГ проще, ФПС сложнее.
источник