тут речь о том как распределить что бы мобов хватило ) поделить локации на каналысмысл тебе от 10к онлайна, если они не будут на события меж-серверных участвовать, а только по инстам сидеть будут.
Посмотрите видео ниже, чтобы узнать, как установить наш сайт в виде веб-приложения на главном экране.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
тут речь о том как распределить что бы мобов хватило ) поделить локации на каналысмысл тебе от 10к онлайна, если они не будут на события меж-серверных участвовать, а только по инстам сидеть будут.
Главной проблемой я считаю дискомфорт при игре на овербущеных серверах, когда ты заходишь в праймтайм, идешь на спот а там все занято и ты не можешь конкурировать с чуваками которые играют 100+ окон, наверное это главная причина по которой я перестал играть в мою любимую игру...(вариант ухода на дохлые сервера, исключается, солоплей можно и в обливионе устроить)Я просто до сих пор не понимаю - зачем? В чем вообще смысл? Какую это решает проблему?
Логин сервер можно не трогать, можно трогать, можно в него внедрить механизмы балансировщика и тд.Расскажу кратко если делать межсерверные реализации взяв high five.
Как это вижу:
Общий логин сервер.
Общий игровой сервер.
Все данжи которые есть и куда есть телепорт могут перенести на другой сервер и для игрока это будет не заметно по скольку чат и группа будут там же, но со стороны сервера игрок будет уже отдельно со всеми.
Все это можно реализовать включая общий чат и даже группы, просто возникает вопрос есть ли в этом смысл.
Почему раньше делили сервер, это причины от того что не умещалось по мощности на одном сервере все разом.
Сейчас таких проблем нет и при желании можно уместить 10т игроков, но для разделения 5т в одной части и 5т в другой всегда можно перенести их как бы в отдельный мир где все на месте но они не видят друг друга.
К примеру реализация торговой части в гиран харборе или парнас.
Там уже думайте и решайте как сделать реализацию, но второй вариант проще и лучше где исключает реализацию синхронизаций чатов, пати и прочего. Ведь игрока просто переносит в отдельное место где все на месте.
Образно возьмем пирог, он один но слоев много.
В каждом слое мира в случае l2, свое количество игроков при этом они не видят друг друга и на одном сервере.
Осады можно сделать на отдельной карте где все игроки смогут попасть туда и таким образом будет как бы межсерверная игра, но на одном сервере одновременно.
именно тактут речь о том как распределить что бы мобов хватило ) поделить локации на каналы
проблема в spawnlist * layerCountв данном случае без большой переделки вижу один сценарий:
Логин сервер оставляем как есть и единственное делаем прокси что обязательно для гс сервера.
Сам гс сервер будет один, но вся карта будет поделена на несколько слоев по онлайну игроков без отдельных данжей на слои, именно вся карта.
Межсерверные осады можно сделать в одном слое с отдельной картой в локации ближе к gm комнате, это левый верхний угол карты.
В результате получаем с минимальной переделкой реализацию множества слоев в одной карте и единый слой где все игроки смогут принять участие.
При этом клиент переделывать не нужно, единственное сервер обязан быть на netty, лучшего на данный момент не придумали по скорости обработки.
Компенсацию лагов в отдельной карте для осады на всех игроков, это уже можно решить отключением части эффектов и возможно исправлением косяков клиента.
Вот это все реально сделать, потом другой важный момент выбрать лучший пул подключений, например такие как c3p0, bonecp и другие.
Это решит две проблемы:
Количество мобов на каждый слой будет равным в рамках целой карты включая все данжи и на всех хватит.
Пропадет необходимость изобретать большие костыли с клиентом, ведь исходников нет.
В чем собственно проблема? Ну будут у тебя слои, по типу инстансов, или шардов. Можно просто тех же самых мобов там и спаунить. Никто ведь не будет за то что-бы этих мобов как-то распичкать между слоями.... пусть будут как всегда.проблема в spawnlist * layerCount
Я согласен что можно. Но всетаки будут проблемы с таким огромным количеством игроков (кстати можно поставить несколько таких виртуальных серверов на одной машине а не один). Что-то и где-то затормозилo, и весь сервер теперь будет немного не тот. Легче все разделить на серверы по-меньше. А все функции внe атак, даже чат, можно собрать как отдельные системы на центральном сервере. В принципе что вы и описали, только различие в том что можно назвать игровым сервером в отделении от других функций для игры. Ну и если какой-то шардовый сервер полетит, то можно достаточно быстро его поставить обратно. Системы и планировка (например на контейнерах, можно даже без Kubernetes) это все могут сделать в автоматическом виде.Почему раньше делили сервер, это причины от того что не умещалось по мощности на одном сервере все разом.
Сейчас таких проблем нет и при желании можно уместить 10т игроков, но для разделения 5т в одной части и 5т в другой всегда можно перенести их как бы в отдельный мир где все на месте но они не видят друг друга.
К примеру реализация торговой части в гиран харборе или парнас.
A зачем это все делать для NPC? Ведь может получиться что на одном слое моба убивают, а нa другом он как-то умерает. Или же игроки из многих слоев могут бить того же моба.... кому это будет интересно?MrThirtyOddSix, состояние NPC одно на несколько слоев? В одном слое моб умер в другом тоже?
Собственно о чем я и говорю, масштабировать это решение горизонтально, перебор игроков на одном реалме, автоматический запуск еще одного и/или балансировка (принудительное перемещение игрока на другой более свободный реалм)
Играл на каком-то сервере, и там была реализована интересная идея, есть обычный мир л2 с стандартными нпц, у ГК телепортируешься и ты попадаешь в другой мир л2, где в городах мобы и везде другой Спаун НПЦ, и так же через ГК возвращаешься назад. Я думаю эту идею можнр использовать. То есть все игроки на одном сервере, но в тоже время в разных инстанцах, и могут перемещаться, и будут там другие нпц/персы бегатьВсем привет, пост рассуждения ради, строго по пузу не пинать!
Все мы знаем что у каждого игрового мира есть предел одновременно подлюченных игроков и если превысить это магическое число то будет дискомфорт для игроков. Предположим что для Lineage2 магическое число равно 3000. Превышая это число игроки будут чувствовать дискомфот, такой как: Лаги (привет Гиран), не хватка зон для охоты и прочие пункты (которые можно натянуть на глобус).
Идея, разделить мир на несколько реалмов 2, 3, ... при этом инстанс зоны - одни для всех реалмов, ни кто не говорит что на сервере должно быть больше 1 Логова Антараса или ...
При этом игроки не будут знать на каком именно реалме они находятся, игроков это не должно волновать, как это работает под катом.
Во время подключения, мы смотрим количество активных игроков на наших реалмах и отправляем в пакете server_lists именно тот который мы считаем более свободным.
Конечно тут нужно будет реализовать возможность миграции игроков между реалмами, что бы игроки смогли друг другу писать и пати кидать или ...
P.S. На хабре была статья про что-то подобное но там была слегка другая идея...
я про это и говорилМожно просто это все оставить сo своими мобами на каждом слое
+- тоже самое, другой канал и тдDina, на Хабре, там другая идея
Хм, т.е. пример Рейд сервера - это вам не пример решения.Bankir, все таки raid server предназначен для других целей.
То что вы говорите, что корейцы придумали, мы не корейцы это раз.
Что и кто нам запрещает придумать что-то еще это два.
Перечитайте первый топик что понять что я затрагиваю не только количество мобов в локе это три.
Gaikotsu, 20гб в озу звучит очень не очень для 1 сервиса/службы
по нынешним временам это не особо то и проблемно и дорого. память ща стоит копейки - взять сервер хотя бы с 32 или 64 гигами памяти стоит относительно недорого.Gaikotsu, 20гб в озу звучит очень не очень для 1 сервиса/службы
У меня крутит отдельный сервер на 256 gb оперативки с e5 2678 v3, почему не v4 и тут все просто.по нынешним временам это не особо то и проблемно и дорого. память ща стоит копейки - взять сервер хотя бы с 32 или 64 гигами памяти стоит относительно недорого.
хотя не спорю что для 99% запускаемых "мегаадминами" суперпупермега серверов это много да - т.к. зачастую у них сервера запускаются на дешевеньких впсках с минимумом выделенных ресурсов - чисто чтоб хоть как-то запускалось и тянуло хоть какой-то онлайн.
П.с. а что там опускать, описания предметов и скилов/диалогов?У меня крутит отдельный сервер на 256 gb оперативки с e5 2678 v3, почему не v4 и тут все просто.
На v4 нельзя сделать unlock в x99 через bios, можно на v3.
Это удобно для чего угодно, хоть с 10 виртуальных машин или докеров для разных сервисов и самое главное в качестве прослойки выступает недорогой впс уже с защитой
В целом более правильная концепция действительно сделать в несколько слоев, просто идея сделать как то по другому только и будет идеей на бумаге.
Возможно предстоять будет еще взять более новый клиент essence и опустить до high five хроник или легендарных interlude.![]()
Это не самое сложное, есть еще карты, функции которых нет на новых хрониках из старых, мобов всех и прочее.П.с. а что там опускать, описания предметов и скилов/диалогов?