Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Разделение мира л2 на многое кол-во серверов
#1
И так, из названия понятно что хочу обсудить, но меня интересует как такое вообще можно реализовать.
Честно копался в гугле, но не нашел миров разделенных на множество серверов, кроме еве-онлайн, но эмуля на эту тему не встречал...
Может кто нибудь посоветовать как лучше это сделать?

Для чего это нужно? Все мы знаем, что сервер л2 держит определенное кол-во людей на 1 кв. км, приблизительное количество естественно.
Хотелось бы увеличить это количество, за счет увеличения земель, т.е. разделить "Мир л2" на кластеры...

На мой взгляд это выглядит примерно так:
Земли разделены на сектора и работают в своей среде, т.е. 1 сервер это отдельная локация грубо говоря.
[Изображение: 1m4N5TD.jpg]

Теперь мне нужна небольшая подсказка, с чего начать.. пилить эмулятор с нуля с обработкой только отдельных координат это конечно круто, но очень очень долго...
Есть какой нибудь ещё вариант?
1
Ответ
#2
xolseg, зачем так голову себе морочить, сделай 10 инстансов и телепорты между ними, профит.
Fortuna - non penis, in manus non recipe.
Ответ
#3
xolseg Написал:И так, из названия понятно что хочу обсудить, но меня интересует как такое вообще можно реализовать.
Честно копался в гугле, но не нашел миров разделенных на множество серверов, кроме еве-онлайн, но эмуля на эту тему не встречал...
Может кто нибудь посоветовать как лучше это сделать?

Для чего это нужно? Все мы знаем, что сервер л2 держит определенное кол-во людей на 1 кв. км, приблизительное количество естественно.
Хотелось бы увеличить это количество, за счет увеличения земель, т.е. разделить "Мир л2" на кластеры...
никак - сервер не грузит клиент, а только отсылает и принимает пакеты.
Чтобы такое реализовать нужно - создавать новую игру.
Ответ
#4
xolseg Написал:И так, из названия понятно что хочу обсудить, но меня интересует как такое вообще можно реализовать.
Честно копался в гугле, но не нашел миров разделенных на множество серверов, кроме еве-онлайн, но эмуля на эту тему не встречал...
Может кто нибудь посоветовать как лучше это сделать?

Для чего это нужно? Все мы знаем, что сервер л2 держит определенное кол-во людей на 1 кв. км, приблизительное количество естественно.
Хотелось бы увеличить это количество, за счет увеличения земель, т.е. разделить "Мир л2" на кластеры...

Ну дефолтно мир линейки делится на те же самые квадраты, можно совершенно спокойно разделить обработку мира на эти квадраты. В принципе сейчас немного похожая система, но в ней нет кластерализации.
Это я к тому, что уже есть некоторые вещи, например работа АИ по квадратам, где есть активные игроки Smile

Вообще общий путь "деланья" такой вещи мне видится так:
1. Запиливаем всю обрабатываемую логику в отдельный модуль
2. Запиливаем основные интерфейсы, которые будут ездить по элементам кластера
3. Делаем сеть отдельным модулем, это будет входом в наш кластер
4. Реализуем RMI подключения для коннекта к элементам кластера
5. Запиливаем ограничение по работе с регионами, если не наш регион, то передаем клиента нужному элементу кластера
6. Профит!

В принципе, можно еще перекидывать коннект с одного элемента кластера на другой, но тогда мы будем открывать весь кластер, что не гуд само по себе, поэтому лучше делать статическую точку входа, либо несколько штук, работа с которыми может контроллироваться, например DNS записями на домене Smile
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
Ответ
#5
Ashe Написал:xolseg, зачем так голову себе морочить, сделай 10 инстансов и телепорты между ними, профит.

Не подходит... Из одной зоны в другую переход будет только телепортом, как допустим в невервинтер онлайн,.. а мне это не очень нравится.
Т.е. Я допустим не смогу добежать из адена в годдард

Добавлено через 1 минуту
Pointer*Rage Написал:Ну дефолтно мир линейки делится на те же самые квадраты, можно совершенно спокойно разделить обработку мира на эти квадраты. В принципе сейчас немного похожая система, но в ней нет кластерализации.
Это я к тому, что уже есть некоторые вещи, например работа АИ по квадратам, где есть активные игроки Smile

Вообще общий путь "деланья" такой вещи мне видится так:
1. Запиливаем всю обрабатываемую логику в отдельный модуль
2. Запиливаем основные интерфейсы, которые будут ездить по элементам кластера
3. Делаем сеть отдельным модулем, это будет входом в наш кластер
4. Реализуем RMI подключения для коннекта к элементам кластера
5. Запиливаем ограничение по работе с регионами, если не наш регион, то передаем клиента нужному элементу кластера
6. Профит!

Но кластер у нас это отдельно стоящие машины, на границах не будет рассинхрона?

Ну и что бы не обновлять пост, у нас есть кластер, с точкой входа login.gameserver.ru, следующая точка, game1.gameserver.ru - место 1 сервера допустим с городом Аден, при переходе линии до Годдорда будет переход на game2.gameserver.ru, в этот момент могут же быть глюки с рассинхроном данных?

Хотя навернео сам отвечу на свой вопрос, база данных то одна и работают от одной базы данных.
1
Ответ
#6
xolseg Написал:Не подходит... Из одной зоны в другую переход будет только телепортом, как допустим в невервинтер онлайн,.. а мне это не очень нравится.
Т.е. Я допустим не смогу добежать из адена в годдард

Добавлено через 1 минуту


Но кластер у нас это отдельно стоящие машины, на границах не будет рассинхрона?

Нет, не будет. Я подразумевал использование RMI для всех игровых обьектов, при том, что логика выполнения "актиона" везде, на каждом элементе кластера, одинакова, т.к. она выносится в отдельную модульную библиотеку, как и интерфейсы для RMI.

Добавлено через 1 минуту
xolseg Написал:Ну и что бы не обновлять пост, у нас есть кластер, с точкой входа login.gameserver.ru, следующая точка, game1.gameserver.ru - место 1 сервера допустим с городом Аден, при переходе линии до Годдорда будет переход на game2.gameserver.ru, в этот момент могут же быть глюки с рассинхроном данных?

Хотя навернео сам отвечу на свой вопрос, база данных то одна и работают от одной базы данных.

А зачем делать доступными извне элементы кластерной системы? Smile Я говорил про закрытую систему для подключений извне, ибо для переброса коннекта понадобится править клиент, да и фризы могут появится при переходе в другой элемент кластера.
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
Ответ
#7
Сделать обмен между серверами и при достижении определенной точки переправлять игрока. Смысл только - хз )
Ответ
#8
xolseg Написал:Не подходит... Из одной зоны в другую переход будет только телепортом, как допустим в невервинтер онлайн,.. а мне это не очень нравится.
Т.е. Я допустим не смогу добежать из адена в годдард

Товарищ я вам говорю все это фантастика и не более, во первых там просто тонны кода надо реализовать, исходников движка анриал нету, ну и самое освновное - вам денег столько не хватит чтобы переделывать такую игру.
Карты(Регионы) не как не фиксируются движком для сервера, они просто есть статичные - Single Player.
Количество Карт прописывается в L2.ini а ini Связанно с L2.exe Engine.dll, вам надо создавать свои L2.exe(попросту разделить L2 на L2 для каждого региона
Что уже полноценный бред .
Ответ
#9
Erwin Написал:никак - сервер не грузит клиент, а только отсылает и принимает пакеты.
Чтобы такое реализовать нужно - создавать новую игру.

Огромный пост написал зачем это надо из-за одной строчки.
"Распределение нагрузки на кластер" И клиент тут не причем.
1
Ответ
#10
xolseg Написал:Не подходит... Из одной зоны в другую переход будет только телепортом, как допустим в невервинтер онлайн,.. а мне это не очень нравится.
Т.е. Я допустим не смогу добежать из адена в годдард

Вспомните как происходит переход в SoD/SoA
Aka Stels
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Скрипт статистики онлайн серверов NewUser 18 5,094 01-26-2015, 02:33 PM
Последний пост: Apoloser
  Phoenix Engine Core для l2j серверов crazy_voin 6 3,354 02-23-2012, 06:02 AM
Последний пост: Psych_O
  Проблема коннекта 2 серверов на разных ГС и ЛС pvpline 7 2,671 08-02-2011, 12:55 AM
Последний пост: aks19

Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)