Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Архитиктура mmo сервера
#1
Собственно так как на этом форуме собирается масса людей работающих с серверами а именно серверами lineage 2 java. Интересует вопрос организации архитиктуры сервера, каким образом там все работает, какой протакол используется.

Приведу мой пост на другом форуме
Пост

По поводу архитектуры Аллоды онлайн, дам ссылку, может кому интересно будет, кстате советую всем глянуть кто работает с java, человек расказывает о плюсах и минусах, и почему они выбрали именно ее.
http://rutracker.org/forum/viewtopic.php?t=2961984

От вас интересует все таки, брать java или C#?) и интересно как организован сервер lineage2, рытся в исходниках не какого желания нет, да и с java я не знаком, учить пока не берусь, вот пока теорией запасаюсь, если же все же решу писать на java то думаю первым делом ее изучу и начну смотреть архитиктуру lineage 2 , а пока интересует ваше мнение, что бы вы например изменили если бы вам предстояло писать сервер под клиент lineage 2 с нуля, что вам не нравится в существующем сервере. И еще один вопрос
Откуда собственно появился пиратский сервер на java. На сколько мне изве стно офицальные сервера писались на C++ ,хотя я могу ошибаться, дак вот что все пишут все свои пиратские сервера с нуля, или же есть какая то команда которая собрала сервер на java под клиент, и на основе их сборки вы все уже пилите свои?

Списибо за внимание!)
Ответ
#2
Хоу-хоу, всех с наступающим Smile

Тема слишком обширна и ее не описать в одном посте, на данный момент написаны и пишутся книги по таковой теме Smile

Цитата:От вас интересует все таки, брать java или C#?)
Берите, то что лучше знаете и где ваш мадскиллз будет вытягивать все.

Цитата:Откуда собственно появился пиратский сервер на java. На сколько мне известно офицальные сервера писались на C++ ,хотя я могу ошибаться, дак вот что все пишут все свои пиратские сервера с нуля, или же есть какая то команда которая собрала сервер на java под клиент, и на основе их сборки вы все уже пилите свои?
В наше время нет героев. Естественно все основано на одном ядре и все ошибки этого ядра переходят из команды в команду и ядро это l2j-server. Так же существует существенно переделанный форк l2j-server в виде l2j-fortress, продолжение которого вылилось в asterios (l2p/phoenix) и в сервак некоторых людей с этого форума (извиняюсь, забыл название сервера Big Grin). Плюс пару лет назад существовали закрытые проекты по написанию эмулятора с нуля, но похоже они так и остались в тине дна морского.

Цитата:пока интересует ваше мнение, что бы вы например изменили если бы вам предстояло писать сервер под клиент lineage 2 с нуля, что вам не нравится в существующем сервере.
Это не раз уже обсуждалось на форуме и не только этом.
Создание движка сервера (L2)
Cashed true system
L2Dev (Blakkky)
Balancer l2f forum


Про остальное напишу чуть позже, ибо уже полгода нахожусь не в той ситуации, чтобы много писать Smile
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
Ответ
#3
Большое спасибо за ответ, думаю скачать l2jserver покапать код, скажите а есть ли где то исходники клиента?... l2jserver бесплатен, и я его без проблем нашел, интересно все же посмотреть что в клиенте, как он передает данные, как их принимает сервер и обрабатывает, ведь вы же как то работаете, ведь как то же создали сервер l2jserver, разве можно создать сервер без исходников клиента, когда не понятно что в какой момент отправляется и т.д.. Вот в чем вопрос))))

Добавлено через 5 минут
А, да еще, мне интересно как организованна связь между login server и game server.
То есть покопав сервера lineage 2 я обнаружил что для авторизации регистрации и т.д, служит login server который ставится например на отдельный физический сервер, и game server обрабатывающий всю игровую физику и т.д ставится на другой физ сервер(хотя наверное можно и на одном физ сервере..Да определенно можно!) Интересует как между ними оргинизованна связь, логин сервер при удачном конекте передает ключ в game сервер?... Пока я себе это предстовляю так, хотя тоже нужно качать да смотреть) может кто хотяб носом ткнёт на реализацию этого в l2jserver .

И еще одна вещь, некоторые команды разработчиков lineage 2 серверов, используют отдельны сервера для чата, или я путаю с aion, но где то такю фишку я точно видел тоесть : Login server, Game server, Chat server на сколько выгодно в плане производительности.


И еще одно, по какому же все таки протоколу в lineage2 идет обмен данными, UDP?)

p/s все вопросы впринципе кроются в исходниках, но ведь вам работающим людям с этими исходниками куда проще написать мне эти мелочи, или ткнуть носом в конкретный участок кода, чем я буду лопатить неизвестный мне код и искать что то для себя полезное, хотя я и начинаю уже его смотреть)


Да кстате, если знаете какую нибуть литературу по поводу строения, архитектуры mmo сервера, буду рад))) Без разницы на каком языке, что русский что английский, язык программирования тоже не важен, интересует только сама архитектура) как это все продуманно и т.д.. Сам как уже говорил пока нарыл только архитектуру Алоды онлайн
Ответ
#4
ldgames, может имеете ввиду petition server?
L2j:
login server
game server

L2 pts:
login server (или его заменитель, привет хинту)
l2server (аналог game server l2j, но урезанный ввиду наличия других сервисов)
petition server (сервер игровых петиций)
cached (прослойка между сервером и базой данных)
l2npc (мобы, просто мобы)
premium server (мистический сервис премиума)
l2comm (коммьюнити)
l2logD (система логгирования)
Ответ
#5
Zubastic Написал:ldgames, может имеете ввиду petition server?
L2j:
login server
game server

L2 pts:
login server (или его заменитель, привет хинту)
l2server (аналог game server l2j, но урезанный ввиду наличия других сервисов)
petition server (сервер игровых петиций)
cached (прослойка между сервером и базой данных)
l2npc (мобы, просто мобы)
premium server (мистический сервис премиума)
l2comm (коммьюнити)
l2logD (система логгирования)

Да я имел что то в этом роде) Спасибо , скажите где можно поподробнее глянуть cached . Как идет работа с данными, например не всегда ведь идет запись в бд не важных данных: Например координаты при перемещении(иначе бы база сдохла) а хранятся в памяти и скажем раз в 5 минут летят в базу, а допустим при обмене вещами уже данные летят в базу сразу, где на примере l2jserver можно покапать это, ито там так много всего, и так мало полезного пока нашел в исходниках...

Добавлено через 50 минут
Не по теме
Ответ
#6
ldgames Написал:
Не по теме

Когда-то наша команда начинала работать на Git, но потом перешли на SVN. Основная причина - полнейшее нежелание пользователей читать мануалы и вникать как работает Git. Пользователи на форуме постоянно создавали тонны тем аля "ПАМАГИТЕ НИМАГУ СКОЧАТЬ ИСХОДНИКИ!!11".
Ответ
#7
Dеmon Написал:Когда-то наша команда начинала работать на Git, но потом перешли на SVN. Основная причина - полнейшее нежелание людей читать мануалы и вникать как работает Git. На форуме постоянно создавали тонны тем аля "ПАМАГИТЕ НИМАГУ СКОЧАТЬ ИСХОДНИКИ!!11".

:redlol: руки-крюки. что можно сказать ищо
consulo.io - Consulo - multi-language IDE
Ответ
#8
VISTALL Написал::redlol: руки-крюки. что можно сказать ищо

Да больше ничего и не скажешь... Smile

Говоря о Git, имхо, намного лучше, чем SVN.
Ответ
#9
Dеmon Написал:Да больше ничего и не скажешь... Smile

Говоря о Git, имхо, намного лучше, чем SVN.

Это да))) Про то что не могут установить полностью согласен, тоже встречался с тем что пользователям лень прочитать мануал и установить git, под винду. Я уж и расписывал с криншотами) даже пример как пользоваться Turtoise Git приводил) один фиг темы плодили))))) В итоге забил на них) Сказал мануалы есть) читаейтеBig Grin) Им все таки надо а не мне) а на svn не переберусь после git'a точно)))


И все таки вернувшись к теме, появилась следующая идейка: Пользователь(клиент) при конекте создает канал, передает сообщение серверу, по UDP протаколу на так сказать 'Прихожую', та в свою очередь подписывает клиента на сообщения и выделяет ему новый поток, И дальше клиент получает координаты других обьектов в зоне видимости и т.д .


Но ведь дело в том что приедтся все по 10 раз проверять, ведь протакол UDP не гарантирует даставку, а утеря данных неприемлима в моем случае...


Как эта структура реализованна в lineage 2?)
Ответ
#10
ldgames Написал:Да я имел что то в этом роде) Спасибо , скажите где можно поподробнее глянуть cached . Как идет работа с данными, например не всегда ведь идет запись в бд не важных данных: Например координаты при перемещении(иначе бы база сдохла) а хранятся в памяти и скажем раз в 5 минут летят в базу, а допустим при обмене вещами уже данные летят в базу сразу, где на примере l2jserver можно покапать это, ито там так много всего, и так мало полезного пока нашел в исходниках...
Темку про кешед (выше ссылка) почитайте.
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Создание движка сервера (L2) pitch 61 29,662 08-10-2010, 11:33 PM
Последний пост: Blakkky

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


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