Сервер Lineage 2 (Гайд)

1.1 Игровой сервер

Игровой сервер (англ. game server от англ. game — игра и англ. to serve — служить) — программный компонент вычислительной системы, обеспечивающий связь между различными клиентами, предоставляя им возможность коммуникации друг с другом в рамках программной оболочки конкретной игры.

1.2 PTS и Java Lineage Server

Конкретно в случае с "Lineage 2" существуют 2 вида серверов, PTS (Public Test Server) и Java-эмулятор сервера.

PTS (Public Test Server) - Эти серверы по сравнению с Java-версиями более стабильны, но всё же не лишены недоработок и очень часто весьма устарели.

После утечки серверной части Prelude и Хроник 1 файлы сервера модифицировались ассемблером, HEX-редакторами и DLL-инъекциями для адаптации сервера к изменениям последующих хроник. Такие серверы иногда назывались «гибридными». Сторонники Java-эмуляторов отмечают, что без «свежей порции» утечек официального кода, «настоящие» серверы модифицируются до новых расширений игры кустарным способом, что, по мнению некоторых специалистов, может сказываться негативно на конечном продукте. Также конкуренция разных «фришардов» (за преследуемую прибыль от пожертвований играющих) не способствует сотрудничеству в этой области.В 2006 году произошла утечка сервера Chronicle 4 Public Test Server-а, который впоследствии (по слухам) был продан владельцам одного из приватных серверов. http://ru.wikipedia.org/wiki/Lineage_II

Lineage Java Server - эмулятор сервера, написан на Java и Python, использует систему управления базами данных (СУБД) MySQL и имитирующий работу популярной MMORPG — Lineage 2. Распространяется по лицензии GPL (General Public License). Java server не требует модификации клиента игры, однако пользователям, желающие зайти на сервер, необходимо вручную декодировать и отредактировать файл клиента, чтобы изменить IP-адрес на адрес собственного сервера. Все модификации происходят в файле l2.ini, который располагается в директории «system» игрового клиента (именно файл l2.ini отвечает за IP-адрес сервера). Как альтернатива — редактирование файла hosts, стоит так же отметить, что лицензионное соглашение NCSoft запрещает модифицировать файлы клиента.

1.3 Java или PTS? Плюсы и минусы.

При том, что и C++ и Java, являются языками высокого уровня, считается, что Java во многом уступает PTS сборкам. Но здесь скорее не проблема языка, а проблема относительной легкости настройки сервера написанного на яве, а также его доступности.  Кроме того стоит учесть тот фактор, что ява-сервер был написан с нуля, как говорится "на коленке", и изначально был не идеален. И после того, как был выброшен в свободный доступ, далее изменялся и дорабатывался непрофессионалами и многие баги, дыры, ошибки, допущенные изначально были впоследствии скопированы много раз.

Более подробно ознакомиться с тематикой можно прочитав эту статью ---------> Давайте писать правильно, или почему java-сборки никогда не будут хорошо работать.

Сборка сервера Java (за и против)

Плюсы
1. Меньше требовательна к ресурсам компьютера ( PTS нужна в 2-2.5 больше  RAM)
2. Открытый код, следовательно большие возможности для изменений.
3. Отсутствие проблем с законом (Сервер написан с нуля, нежели сервер PTS, где даже часть оригинального кода будет  нарушать авторские права)
4. Доступность и относительная дешевизна (PTS будет стоить существенно дороже)
5. Поддержка интернет комьюнити (существует множество команд специализирующихся на написании сборок на ява)

Минусы
1. Нестабильность работы сервера написанного на Яве (но тут вопрос достаточно спорный, вполне возможно, что качественно написанная Ява сборка будет стоить сумме того же  PTS сервера, при этом с открытыми исходниками вы сможете вносить свои изменения и фиксить баги, что в PTS сделать сложно).
2. Существует мнение, что ява сборки не держат большой онлайн  пользователей (опять же спорный вопрос, зависит от машины, кривости сборки и рук админа. Как пример можно взглянуть на лидеров топа, asterios.tm c онлайном под 7000. Платформа сервера ява.)

Сборка сервера PTS (за и против)

Плюсы
1. Основной код был украден с хроник С4, чем гарантирует стабильную работу всей системы. (Можно считать как плюсом, так и минусом. Т.к. от хроник к хроникам код впоследствии изменялся, и говорить за качество работы  уже сложно, поэтому самыми стабильными хрониками остаются  те же с4)
2. Считается, что способна держать больше онлайна нежели Ява, т.к. работает с системой напрямую не используя Ява машину. ( опять же вопрос спорный)

Минусы
1. Требовательна к ресурсам компьютера.
2. Достаточно накладно будет как купить такую сборку так и содержать ее в последующем.
3. Возможны проблемы с законом.
4. Для правки ядра сервера нужны хорошие познания в программировании.
5. Много настроек и не так просто поставить.

1.4 Исходный код и ядро сервера

Думаю многие слышали такие определения как исходный код, исходники , сорсы, source code и т.д. Исходные коды движков, игр, ПО не дают многим людям покоя  ^^. Но что же это такое?
Итак:

Исходный или открытый код - это документ, программа написанная на том или ином языке программирования не прошедшая процесса компиляции.

.

Компиляция - это процес, при котором исходный код(код, написаный разработчиком, и удобный ему в работе) переводится в машынно понятный код(тоесть в тот код, который сможет обрабатывать[запускать, исполнять, записывать] наша java платформа).

В большинстве своем все сборки серверов Lineage 2, представляют собой откомпилированный код, т.е. закрытый, сделать какие либо изменения в ядре сервера невозможно. Понять закрытый или открытый у вас код можно по расширению файлов в папке "gameserver" (.jar -  откомпилированный  архив языка .java, а расширение java. это исходные документы сервера или открытые (не компилированные или же де компилированные)).

Ядро сервера Ява, представляет собой открытые исходные коды  классов с расширением .java, которые вы сможете править в тех или иных редакторах к примеру в Eclipse или же в обычном Блокноте.

Пример исходников Ява сервера от команды L2open.Team, в данном случае классы открывались IDE (Интегрированная Среда Разработки) -  NetBeans
http://s015.radikal.ru/i333/1011/dd/37837b005ac3t.jpg

1.5 SVN, Trac, Revision...

Далее, будет заимствован текст статьи, источник http://l2server.org/category/manaul/man … _trac.html

Теперь, что же такое SVN(свн).

SVN - или же репозиторий, это место, где хранятся исходные коды(выше мы поговорили с вами что это такое) той или иной команды разработчиков. SVN (sub version repositore) - могут быть открытыми и закрытыми.

Открытый SVN - дает нам возможность скачивать исходный код той или иной команды разработчиков абсолютно бесплатно. Закрытый svn - не дает нам доступа к исходным кодам, и мы можем тешится только бесплатными(или платными) наработками той или иной команды. Тоесть, они не выдают своих исходных кодов, а дают лиш компилированые версии (машынно обрабатываемые, мы их не поменяем).
Что же такое trac(чанжлог, трекер).

Trac(или же changelog, чанжлог, трекер) - это как бы графический интерфейс, для отображения изменений, сделаных разработчиками в исходных кодах. Тоесть, каждое изменение, в каждом файле, будет отображено в графическом режиме для вас.

Сюда мы включим еще несколько понятий :

Revision(ревизия) - это изменение, внесенное разработчиком на svn(в исходный код). Rev(revision, ревизия) - нумируются автоматически на svn/trac, нумируются по списку - 1, 2, 3 ... 100, 101, 102, ... 500 и т д. Каждая ревизия отображает те или иные изменения в исходном коде, которые сделал разработчик, и загрузил на svn(trac их проанализировал и выдал то что поменялось).

В ревизиях, красным цветом отображается тот участок кода, который был удален. Зеленым цветом - тот участок кода, который был добавлен. Так же, напротив, пишутся строки, в каких были сделаны изменения.

После прочтения, я думаю вы станите более грамотными в вашем общении на форуме или же сайте.
Список svn/trac - можно найти у нас на форуме, в разделе java севрер.