[Мысли в слух] Реализация реалмов в нашей любимой Lineage2

тут речь о том как распределить что бы мобов хватило ) поделить локации на каналы
 
Главной проблемой я считаю дискомфорт при игре на овербущеных серверах, когда ты заходишь в праймтайм, идешь на спот а там все занято и ты не можешь конкурировать с чуваками которые играют 100+ окон, наверное это главная причина по которой я перестал играть в мою любимую игру...(вариант ухода на дохлые сервера, исключается, солоплей можно и в обливионе устроить)
P.S. Вообще в этой теме я хотел бы поднять вопрос не зачем, почему, etc... а что если?!
Логин сервер можно не трогать, можно трогать, можно в него внедрить механизмы балансировщика и тд.
1 инстанс с кучей слоев, тоже решение проблемы, но, в части масштабирования - кейс не очень выгодный + в теории может возникнуть сиутация когда это будет крашится от overhead, в свою очередь реализация гейтвея + N нод, звучит как будто бы лучше.

именно так
 
в данном случае без большой переделки вижу один сценарий:
Логин сервер оставляем как есть и единственное делаем прокси что обязательно для гс сервера.
Сам гс сервер будет один, но вся карта будет поделена на несколько слоев по онлайну игроков без отдельных данжей на слои, именно вся карта.
Межсерверные осады можно сделать в одном слое с отдельной картой в локации ближе к gm комнате, это левый верхний угол карты.

В результате получаем с минимальной переделкой реализацию множества слоев в одной карте и единый слой где все игроки смогут принять участие.

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

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

Вот это все реально сделать, потом другой важный момент выбрать лучший пул подключений, например такие как c3p0, bonecp и другие.

Это решит две проблемы:
Количество мобов на каждый слой будет равным в рамках целой карты включая все данжи и на всех хватит.
Пропадет необходимость изобретать большие костыли с клиентом, ведь исходников нет.
 
проблема в spawnlist * layerCount
 
проблема в spawnlist * layerCount
В чем собственно проблема? Ну будут у тебя слои, по типу инстансов, или шардов. Можно просто тех же самых мобов там и спаунить. Никто ведь не будет за то что-бы этих мобов как-то распичкать между слоями.... пусть будут как всегда.

Я согласен что можно. Но всетаки будут проблемы с таким огромным количеством игроков (кстати можно поставить несколько таких виртуальных серверов на одной машине а не один). Что-то и где-то затормозилo, и весь сервер теперь будет немного не тот. Легче все разделить на серверы по-меньше. А все функции внe атак, даже чат, можно собрать как отдельные системы на центральном сервере. В принципе что вы и описали, только различие в том что можно назвать игровым сервером в отделении от других функций для игры. Ну и если какой-то шардовый сервер полетит, то можно достаточно быстро его поставить обратно. Системы и планировка (например на контейнерах, можно даже без Kubernetes) это все могут сделать в автоматическом виде.
 
MrThirtyOddSix, состояние NPC одно на несколько слоев? В одном слое моб умер в другом тоже?

Собственно о чем я и говорю, масштабировать это решение горизонтально, перебор игроков на одном реалме, автоматический запуск еще одного и/или балансировка (принудительное перемещение игрока на другой более свободный реалм)
 
A зачем это все делать для NPC? Ведь может получиться что на одном слое моба убивают, а нa другом он как-то умерает. Или же игроки из многих слоев могут бить того же моба.... кому это будет интересно?

Можно просто это все оставить сo своими мобами на каждом слое. И думать много теперь не надо.
 
Играл на каком-то сервере, и там была реализована интересная идея, есть обычный мир л2 с стандартными нпц, у ГК телепортируешься и ты попадаешь в другой мир л2, где в городах мобы и везде другой Спаун НПЦ, и так же через ГК возвращаешься назад. Я думаю эту идею можнр использовать. То есть все игроки на одном сервере, но в тоже время в разных инстанцах, и могут перемещаться, и будут там другие нпц/персы бегать
 

    BladeRunner

    Баллов: 1
    в верном направление мыслите, товарищ... )
ну да, маловато мобов а начальных локах )))
 
Dina, на Хабре, там другая идея
+- тоже самое, другой канал и тд

честно сказать нагружены только города, такие как гиран с барыгами или те в которых на сервере сфокусировано внимание и тут помогают только стены с антипорталами и неполная прогрузка персонажей...
 
Ну самый простой вариант реализации, не требующий прямо таки особых усилий - это и правда банальная мультислойность локаций в виде общих инстансов. Однослойными сделать только к примеру города и еще какие-то определенные локации. Игрок же, покидая такие места, переносится балансировщиком в один слоев, наиболее свободный в этот момент (ну или в тот же слой где находятся сопартийцы/соклановцы/соаллийцы к примеру).

Некоторые беспокоятся насчет того что "много слоев -> много спавнов -> надо много памяти", но по моему беспокойства излишни, разве что прямо таки в планах делать многие десятки или сотни слоев. А с небольшим количеством справится и не особо мощное железо.

Просто вот для примера у себя глянул - у меня на текущем сервере хомки сразу при старте спавнится почти 50к нпс (и это с учетом сессионок - сейчас у меня включена их инициализация сразу при старте серва, а не при первой попытке входа в них). При этом сервер потребляет примерно 3.6 гб оперативки, из которых около 1-1.5 подгребает под себя гео. ну и там на всякое разное пусть еще 0.5-1 гб пусть выделено. Т.е. условно 50к спавнов потребляют 1-1.5 гига, ну пусть даже очень грубо - 2 гига.
С десятком слоев мира это превратится где-то в 20 гиг чисто под спавны - в целом полная фигня по нынешним временам.
Но конечно еще от самой сборки зависит - мне уже приводили пример сборки, которая непонятно на что вобще поджирает более сотни гиг оперативки при своей работе из-за "качественно" написанного кода

Ну а так по мне так большей проблемой будет потребление процессорного времени на AI всей этой кучи мобов, но опять же если не злоупотреблять с глобальными AI, а так же гасить своевременно активность мобов в регионах где игроков нет, то это не такая уж большая проблема.
 
Не стал все читать, мало полезного (порваные одеяла, трусы, сопли).
Корейцы давно придумали решение, и познакомили всех с Raid server - который и делает то что в первом топике указано.

И так же Корейцы подумали про такое как:
*А что если, на спот (локу) прийдет 1к (или 100к) персонажей, мобов же не хватит, и тут "AI" сразу же был запилен скрипт/ы*:
Ко-во Персонажей в Агрозоне или в зоне квадрата/квадратов описаных в скрипте (есть несколько видов/типов/условий).
Ко-во убитых мобов в квадратах спавна (что указано в скрипте).
Счетчик который не имеет какого либо отображения, к примеру на 10 000 убийств НПЦ, для активации увеличения ко-ва НПЦ, или же спавна дополнительных/усиленных - К примеру ТОИ в Essence/Eva/Wolf).
Проверка каждый час (или то время что вы установили) на лимит (число) заданное для отрезков/пиков спавна (может быть 1, 2, 3, 4 счетчика, а тут уже привет ХБ из Essence/Eva/Wolf).
Если проверки были пройдены - делает то что указано в скрипте, в плоть до очистки всех спотов/квадратов.

да и много кто имел дело с офф скриптами видел все это в разных хрониках, в +/- таком описании.
 
Bankir, все таки raid server предназначен для других целей.
То что вы говорите, что корейцы придумали, мы не корейцы это раз.
Что и кто нам запрещает придумать что-то еще это два.
Перечитайте первый топик что понять что я затрагиваю не только количество мобов в локе это три.

Gaikotsu, 20гб в озу звучит очень не очень для 1 сервиса/службы
 
Хм, т.е. пример Рейд сервера - это вам не пример решения.
Т.е. разделить вход в мир/сервер на разные сервера, это не оно?
 
Bankir, цель raid сервера другая, но при желании можно натянуть на глобус, да
 
Gaikotsu, 20гб в озу звучит очень не очень для 1 сервиса/службы
по нынешним временам это не особо то и проблемно и дорого. память ща стоит копейки - взять сервер хотя бы с 32 или 64 гигами памяти стоит относительно недорого.

хотя не спорю что для 99% запускаемых "мегаадминами" суперпупермега серверов это много да - т.к. зачастую у них сервера запускаются на дешевеньких впсках с минимумом выделенных ресурсов - чисто чтоб хоть как-то запускалось и тянуло хоть какой-то онлайн.
 
У меня крутит отдельный сервер на 256 gb оперативки с e5 2678 v3, почему не v4 и тут все просто.
На v4 нельзя сделать unlock в x99 через bios, можно на v3.
Это удобно для чего угодно, хоть с 10 виртуальных машин или докеров для разных сервисов и самое главное в качестве прослойки выступает недорогой впс уже с защитой

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

Возможно предстоять будет еще взять более новый клиент essence и опустить до high five хроник или легендарных interlude.
 
П.с. а что там опускать, описания предметов и скилов/диалогов?
 
П.с. а что там опускать, описания предметов и скилов/диалогов?
Это не самое сложное, есть еще карты, функции которых нет на новых хрониках из старых, мобов всех и прочее.
 
Данный сайт использует cookie. Вы должны принять их для продолжения использования. Узнать больше…