Литмир - Электронная Библиотека
A
A

КАК ЭТО СДЕЛАТЬ: Частный сервер для общего пользования

В статье «The Matrix Has You» («КТ» #608 ) было подробно рассказано о mmorpg: о финансовых потоках, типах игроков, процедуре создания частного онлайн-сервера и еще о куче всяких мелочей. Кто-то просто принял статью к сведению, кто-то лишь пролистал, но некоторая категория читателей захотела детальнее узнать о том, как это сделать самому. И поразмыслив над письмами типа «Да это все элементарно - поставил дома программку и ты богат», я решил написать более приближенное к реальности руководство по открытию своего mmorpg-сервера.

Требуемое ПО

Что же такое серверное ПО для mmorpg? Сервер mmorpg - это программное обеспечение, написанное разработчиками игры и служащее для создания игрового мира. А клиент этот мир соответственно отображает, но его можно скачать где угодно, поскольку в большинстве проектов он бесплатный. Существует два вида серверного ПО - официальное и не официальное, то есть эмуляторы. Официальный сервер представляет собой верх стабильности и масштабируемости. К недостаткам же его относится слишком сложное редактирование мира и дороговизна (если приобретать его легально). Эмулятор сервера - это ПО, написанное энтузиастами, которые желают поиграть или на халяву, или в «другую версию» любимого мира (так, например, делают разработчики эмулятора сервера для Final Fantasy XI; их сервер будет создавать новый мир для FF, но платить за игру все равно придется). У эмуляторов довольно много плюсов, но есть и минусы, которые могут погубить проект еще в самом начале, - а именно:

Эмуляторы нужно ждать. Некоторые из них создаются больше года и лишь потом попадают в Сеть.

Практически полное отсутствие наполнения мира. Не секрет, что порой во вселенной mmorpg находятся десятки тысяч объектов (та же космическая EVE Online). Наполнение баз данных - одна из самых трудоемких задач. Зачастую, если игра, для которой создается эмулятор, очень популярна, наполнением БД занимаются десятки и сотни человек. К примеру, для эмулятора WoWemu (под игру World of Warcraft) БД наполняли все кому не лень. Создавались международные группы, которые действовали сообща, пытаясь подогнать мир эмулятора под официальные серверы WoW. А WDDG Team даже стала писать собственный эмулятор.

Баги. Движки эмуляторов обычно имеют огромное количество ошибок и неточностей. Хотя в большинстве случаев это временное явление.

Вы можете играть в любимую mmorpg бесплатно.

Вы можете сами создавать настройки мира или выбирать из уже предложенных.

Практически все эмуляторы мультиплатформны, в отличие от официальных серверов, которые создаются исключительно под Windows (интересно, почему?).

Вы можете заработать деньги, построив на базе эмулятора сервер с глобальным доступом и продавая какие-нибудь вещи/ценности или дополнительные возможности из виртуального мира за вполне реальные деньги.

Как сделать эмулятор?

Достаточно легко, если вы мастер программирования, хотя случаи создания эмулятора одним человеком чрезвычайно редки. Пожалуй, стоит упомянуть товарища WAD’a, сделавшего WoWemu (отрадно, что WAD русский и что он создал первый эмулятор сервера для World of Warcraft), и Ramsey, в одиночку занимающегося эмулятором для Priston Tale и участвующего в куче других проектов. Но если ваши желания превосходят ваши возможности, то можно собрать группу разработчиков. От них требуется знать Asm, C, C++, C# (последний не очень популярен, скорее всего, из-за новизны, а также «безопасности» в работе с указателями), Java (редко), крипто/декриптографию, способы отлавливания пакетов. Криптографа/декриптографа достаточно одного, как и знатока ассемблера. А вот мастеров работы с высокими языками программирования мало никогда не бывает.

Как же выглядит процесс? Человек, исследующий пакеты, запускает игру, заходит на официальный сервер, играет и при каждом действии смотрит, какие пакеты были присланы и отправлены к клиенту и от клиента соответственно. Затем он отдает полученные пакеты декриптографу, а вместе со знатоком ассемблера выясняет, что же эти пакеты делают. И далее программисты пишут приложение, причем так, чтобы при получении каких-либо пакетов оно отвечало соответственными, то есть эмулировало работу официального сервера. Порой самое трудное - это понять, что делают пакеты. Например, после того как Ragnarok Online стала сверхпопулярной в Сети, ее разработчик, корпорация Gravity, в следующем своем проекте (R.O.S.E., или Rush On Seven Episodes) организовала архитектуру, при которой клиент получает информацию не с видимого участка, а со всей (!) карты. Таким образом, найти пакеты, которые посылаются конкретному персонажу, очень непросто.

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

Выбор подходящего мира

В русском секторе mmorpg наиболее популярны LineAge 2, World of Warcraft, Ragnarok Online; сдают позиции Mu Online и RF Online. Сразу скажу, что создавать сервер для Mu Online не имеет смысла из-за острейшей конкуренции, которую эта игра не выдерживает. Для RF Online нет нормального эмулятора/официального сервера. Тот, что сейчас доступен, битком набит багами, исправлением которых занимается Siu со своей командой, но дело идет медленно, поскольку все приходится редактировать через hex-редактор (главный недостаток официальных серверов). Для успешности сервера LineAge 2 необходимо предложить пользователям версию С3, но здесь трудности заключаются в жуткой нестабильности официального сервера С3 (на самом деле используется сервер С1 с exe-файлами от С3 плюс некоторые наработки). Сейчас таких серверов единицы. Серверу World of Warcraft нужно предоставить максимальное количество возможностей (ни один эмулятор до сих пор не поддерживает все навороты игры). Ragnarok Online можно порекомендовать самые последние обновления (и заодно повысить стабильность) - в частности, включить поддержку новых персонажей и изготовление эксклюзивных спрайтов персонажей и карт (очень трудоемкое дело, которое, впрочем, должно себя оправдать). Проекты из разряда Dark Age of Camelot, Star Wars Galaxies и Everquest 1/2 не столь популярны, чтобы был резон создавать для них частный сервер.


36
{"b":"87362","o":1}