toggle
Давайте писать правильно, или почему java-сборки никогда не будут хорошо работать.
Автор: Blakkky    01.05.2009 01:57

Как все начиналось…

Давайте немного пофантазируем, подключив к этому логику. Начнем с того, как вообще появились java-сборки серверов lineage2. Мое видение истории возникновения проектов, а-ля l2jfree, l2jserver и прочих SF-оподобных.

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

К этим двум экспериментаторам подключились еще четыре, которые очень хотели тоже потестить, но как с программированием, так и с java знакомы были очень посредственно (что, по большей части, и до сих пор сохраняется во многих проектах, как платных, так и не очень). Естественно, ничего путного такой новичок сам не напишет, а, в лучшем случае, сможет скопировать готовое и немного видоизменить. О том же, что их код может содержать ошибки или его в будущем может потребоваться переписывать, не говоря уже о таких глобальных вещах, как структура проекта и оптимизация кода, они не знают и даже не задумываются, поэтому все пишется по принципу «лишь бы компилилось и хоть как-то работало».

Дальше, видать эти два основателя поругались и разбрелись на разные команды, забрав общую базу и часть примкнувших новичков, и продолжили разработку, снимая время от времени, главным образом, к этому руку приложили новенькие, друг у друга наработки, даже не вникая в то, как все это работает. А дальше история с развалом и дроблением команд повторялась снова и снова.

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

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

Гонка за лидером…

Теперь поговорим немного о бесконечной и бесполезной гонке, которую, мне, честно говоря, вообще не понятно зачем, ведут все команды разработчиков.

Все поголовно гонятся за NCSoft-ом. Обновление на оффе – месяц раскалбас во всей команде – «Мы пишем поддержку клиента», следующий раскалбас еще на месяц типичной команды – это «Я узнал новую фишку, давайте ее сделаем, ее еще ни у кого нет», который повторяется до выхода очередного обновления на оффе. Только вот не понятно, зачем все это?

Основной аргумент – «у меня сервер, мне надо быть в ногу с остальными», мне не кажется очень уж убедительным. Вспомните, сколько народу играло, да и сейчас играет, на устаревших хрониках, живущих на основе КАЧЕСТВЕННЫХ сборок С1, С4 и Interlude. Так может лучше гнаться за качеством, а не за поддержкой клиента?

Еще один момент не в пользу погони за NCSoft-ом – это принципиальная невозможность его догнать, по вполне логичной причине: NCSoft диктует правила гонки.

Итоги всего этого плачевны – это отсутствие чего-либо нормально работающего в принципе и примеров тому – сотни, взять хотя бы осаждаемые клан-холлы, введенные в С4 или осаду Rune Castle, введенную в С5, которые до сих пор нигде толком не работают. Про такую мелочь, как неработающие еще с С4 скилы я вообще молчу. Сборки выше CT1 – Kamael вообще смотреть страшно, потому что в них, по большому счету, ничего кроме поддержки клиента и не сделано.

Надо кагнаоффе…

Рассмотрим еще одну типичную проблему, которой страдают все команды – это бездумное деланье всего и вся «как на оффе», опираясь на мягко говоря субъективное мнение одного-двух участников команды, играющих на одном из официальных серверов, а то и еще хуже, мотивируя все это данными с «мегакрутого» фришарда.

Пожалуй, ни одна команда не включает при разработке логику и здравый смысл, что очень часто выливается в плачевные последствия: Скилы, которые проходят со 100% шансом, огромный или наоборот, очень маленький урон от них, сумасшедшие статы монстров и персонажей и многие другие перекосы, ломающие и без того хрупкий баланс Lineage2.

Бывают правда и другие примеры – это бездумное копирование ошибок, допущенных разработчиками NCSoft.

В итоге получаются сервера, на которых все играют одной-двумя профессиями, которые превратились в убер-классы.

Одмин – царь и бог…

Теперь давайте взглянем на администраторов серверов. Типичный администратор – это либо 16илетний школьник, скачавший скомпилированную сборку сервера и поставивший ее к себе на домашную машину, либо один из самоучек-разработчиков сервера, описанных выше. Думаю при таком раскладе очевидно, что сервер под управлением такого «администратора» хорошо работать, в общем случае, не будет.

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

Свет в конце туннеля…

По всем перечисленным выше причинам, не удивительно, что сервера-самоделки (в простонародии – java-сервера) так хаются игроками и так отвратительно работают, и виной тому, никак не ограничения языка, взятого за основу, который волею случаю получил презрительное отношение, а лишь неквалифицированное и безалаберное отношение разработчиков и администраторов серверов к тому, что они делают.

Есть ли у этого всего будущее? Я думаю, что при таких предпосылках нету и быть не может.

Вместо эпилога…

Немного посчитаем: при наличии такого огромного объема наработок лично мне на написание сервера Lineage2 «с нуля» понадобилось бы примерно год из них где-то месяц на проектирование под текущие хроники (допустим, Gracia - part 1). Большую часть сервера писать можно независимо, т.е. при наличии стройной структуры проекта, писать его могут несколько программистов одновременно. Зарплата java-программиста – 2.000 у.е., менеджера проекта – 5.000 у.е. Итого, команда из пяти таких же как я (для справки, я занимаюсь коммерческим программированием около 9и лет) напишет сервер lineage2 за 3 месяца, плюс еще 1-2 мес. на тестирование и отладку, и стоить это все будет порядка 60.000-70.000 у.е. (2.100.000-2.400.000 руб). Для сравнения, тов. DanielDefo, играющей на rus-off-е, по слухам вложил в игровые ценности 2.000.000 руб.

Выводы делайте сами.

 

Комментарии  

 
-10 #1 Вывод 14.07.2010 12:53
:cry: :-x :-* :zzz
Цитировать
 
 
+6 #2 misha1024 07.08.2010 09:40
На мой взгляд ситуация с джава сервером ла2 напоминает ситуацию с семейством ОС линукс. Только в последнем случае ядро системы устойчивее 8) А так, есть какие-то наработки, допустим это Интерлюдия, и несколько команд, каждая из которых решила что они лучшие. В итоге каждый тащит код своих конкурентов, пытаясь закрыть доступ к своему. И как результат, несколько таких-же неустойчивых сборок с разной реализацией одной и той же "фишки".
Цитировать
 
 
0 #3 FantoM 03.02.2011 11:18
а что делать если любит человек ла2
а ему охото свой сервак! + к томуже 2 ляма у них и подавно нет =)
вот поэтому и берут ява сервер!
как говориться есть спрос будет и предложения!
Цитировать
 
 
-1 #4 digger 15.01.2013 17:37
интересно, знает ли автор, что уже есть сборка, написанная на Си?
Цитировать
 
 
0 #5 Blakkky 12.07.2013 17:02
Да, знаю. Официальный сервер от корейцев :) и уже оочень давно есть. :D
Цитировать
 
 
0 #6 Kampina 29.03.2015 16:48
А смысл платить за ява сервер 2-3 ккк , если можно уложиться в 200-300кк и поставить не плохой проект на птс 2.3 а не 2.1 как вы предлогаете. Вот и получается что разработкой в основном занимаются фанаты л2 или евреи.
Цитировать
 

Добавить комментарий


Защитный код
Обновить