История
На сегодняшний день, наверное, не осталось никого из разумных людей, кто ни разу не слышал бы о игре World of Warcraft. Вышедшая в 2004 году игрулька, на самом деле уже воспитала целое поколение :
- кто-то хотел поставить дома, или в домашней сети сервер, и рубиться
- а кто-то просто играл, неважно где, с кем, лишь для криков, эмоций, да и откровенно, удовольствия
- безусловно были такие, кто не мог, или даже не хотел играть, по каким-либо своим причинам, но знал о игре.
За 16 лет произошло множество событий, смены интересов, увлечений, изменение отношение разработчиков к своему творению, и игрокам, так и изменение игроков к игре и разработчикам, и многое другое. И некоторые игроки ругаясь на форумах, в чатах, уходя, могли бросаться такими словами как : "всё тлен (изменено), пойду на пиратку".
Так вот, Что такое "пиратка"
- это абсолютно любой проект (ресурс) в сети (неважно, локальной или в глобальной(интернет)) рабочего эмулятора сервера WoW, тоесть к которому можно подключиться и играть, а не само серверное ПО (ядро), разрабатываемое людьми.
причем само программное обеспечение (ПО) сервера "пиратским" с юридической точки не является, пока в нем не доказано наличие файлов, на которые распространяются авторские права. Например dbc-файлы, таблицы, которые используются всеми ПО по умолчанию. Тем не менее, перевод тех же таблиц в SQL избавляет от необходимости использовать те же dbc и делает авторов проекта свободными от близзард, ну это уже всё в другой статье.
Откуда "пиратки" появились
История эмуляторов запутана, а в связи с давлением Близарда ещё и окутана тайнами, слухами и мифами. Но сама история доверяет только фактам, собрав которые можно рассказать о всех эмуляторах, в порядке их появления на свет... (с)
№1 - WoW Daemon
Вот и вышла игра World of Warcraft, и ещё на бета-тесте она привлекла внимание огромное количество игроков. Когда состоялся релиз игры, и аккаунты стали платными, появились и первые эмуляторы. И первым был WoW Daemon(WoWd), от команды Team Python. Всю команду можно поделить условно на 2 части: молодые энтузиасты, ещё новички в программировании, и профессионалы, желающие получить денежную выгоду с проекта. И как же писали первый эмулятор? Команда разработчиков прекрасно понимала простую структуру эмулятора-сервера, он должен принимать данные от клиента, обрабатывать их и отсылать обратно клиенту. В принципе просто. Итак, первоочередная задача для команды – вычислить все пакеты клиента, которые он посылает на сервер. Тут свою скромную роль сыграли хакеры, которые с модифицированными сниферами играли на "оффе Близарда" и вычисляли все пакеты. И за несколько недель они получили полный набор опкодов, которые и должен был обрабатывать сервер. Изначально в WoWd работали только основные функции, такие как создание чара и вход в мир (а также выход и создание аккаунта). И тут произошло следующие: поняв, что можно и заработать денег, профессионалы отделились и начали делать свой закрытый проект – WoWpython, а альтруисты свой свободно распространяющийся с открытым кодом – OpenWoW. Важно заметить, что все разработчики боялись компании Близард – ведь оффу конкуренты не нужны.
Таким образом, сам проект WoWd исчерпал своё, став прекрасной базой для других проектов.
Все последующие проекты, абсолютно все, несут в себе архитектуру от WoWd.
Вообще вот на том же гитхабе, кому интересно, парень собрал в 1 репо целый архив редких сорсов того времени : https://github.com/Selenium/wow-emulator-archive
№2 - Ludmilla
Часть команды, которая стала делать OpenWoW, скорее распалась, а исходники и послужили основой для эмулятора с очень русским названием)) – Людмила. Проект не только несколько раз закрывался и открывался, но и менялся состав команды разработчиков, принцип сервера и исходники проекта, то были открытыми, то закрытыми.
Тем не менее, несмотря на "нестабильность", которой упрекают Людмилу, именно она дала развитие вов эмуляции. В ней начали вести работу с хранением данных в SQL серверах.
№3 - WoWEmu
В отличие от всех остальных проектов, это был не только закрытый и коммерческий проект, но и проект который писал всего один человек – WAD, конечно он не отрицает, что ему помогали в отдельных функциях, но никто так и не видел исходников WoWEMU. Итак, как же он разрабатывал свой проект? Начал он с уже готового набора опкодов, которые нашли для проекта WoWd, но решил не привлекать SQL БД, а сделать иначе – всю информацию сервер брал из файлов, которые легко можно было просмотреть с помощью обычных текстовых редакторов. Когда команда Python разделилась, WAD сделал более-менее приличную версию эмулятора и стал её распространять за деньги. Но хакеры поняли как работает защита WiWEMU и поломали её. WAD конечно был не рад этому и решил свой проект закрыть. Исходников проекта ни у кого нет, и врядли они появятся.
№4 - Mangos
Небезызвестный Vladimir объединил увлеченных энтузиастов из Людмилы, и основал проект Mangos. Первое время это был самый "нестабильный" эмулятор, и в тоже время самый перспективный в плане нововведений, покрайне мере из "открытых" эмуляторов. Кстати, из старых сайтов, посвященных эмуляторам, пожалуй только у этого эмулятора остался еще живой, к тому же русский : http://ru-mangos.ru
Данный проект внес колоссальное развитие в историю вов-эмуляции. До какого-то времени (до 2007 что-ли), у него было самое большое коммьюнити, как из русскоязычных разработчиков, так и "бургов".
Именно в этом проекте были впервые введены "стандарты", как фильтры, которые не позволяли пропускать предложения (в гите потом это будут pull-request'ы) по нововведениям, которые могут что-то "сломать", испортить, ну или просто в простонародье - "быдлокод".
Это конечно замедляло развитие эмулятора, и часть особо рьяных разработчиков отделилось, и создали "авангардный" для нововведений проект - TrinityCore.
Со временем произошел скандал, и права на репозиторий мангоса были "украдены". Vladimir не сказать, чтобы опустил руки, так как еще долгое время помогал и подсказывал разным проектам, на основе мангоса, но и не кодил с того момента.
Были созданы впоследствии 2 проекта : Cmangos и Mangos, которые оба живы до сих пор, но уже далеко не "впереди планеты всей". Хотя для тех, кто интересуется WoW версии 1.12 (классик) и TBC (The Burning Crusade) 2.4.3 - интересны по сути только именно эти проекты.
№5 - Kobold Emu
Kosuha, во времена Ludmila, написал собственный фреймворк (AUX),
когда даже на сегодняшний день, из "живых" никто не имеет собственного фреймворка:
- TrinityCore используют boost
- AzerothCore использует ACE
(не забываем, на дворе 2004-2005-й год)
и собрал небольшую но "профи" команду, фактически без какого-либо коммьюнити со стороны. Эта команда - Kobold Team, основатели Kobold Emu, единственному на сегодняшний день эмулятору, использующего кластеризацию. Хотя проект как был закрыт в привате, так никогда и не открывал свой код. Для пользователей предоставлялся механизм работы со скриптовкой через python.
№3 - Antrix
В это же время в стане WoWD, в основном коммьюнити шла ругань друг на друга и спад интереса основателей, жалобы на "утечки" исходников разных форков. И единственным светлым событием произошло объявление Burlex о создании Antrix под лицензией GPL
https://www.ownedcore.com/forums/world-of-warcraft/world-of-warcraft-emulator-servers/223094-history-of-wowd-antrix.html
Continuation of an undisclosed source.
Open-source, most likely QPL license.
More details will be posted soon.
Edit:
- Multi-threaded, partial cluster support finished.
- Async network code on all platforms (iocp on windows, epoll on linux and kqueue on freebsd)
- Stable core, crashes with under 700 players are extremely rare.
- Easily developable database.
- Powerful script system.
Парень основал проект, с заявленной поддержкой асинхронной работой с БД MySQL и Prostgree, а так же с Oracle (через полиморфизм), налаженной работой с сетью.
После некоторых достигнутых разработок, введения гео-даты, и появления впервые так называемых mmaps навмешей (это участки земли, по которым могут прокладываться пути для движения NPC, чтобы их движение выглядели правдоподобно и без провалов "в текстуры",
проект был переименован в Ascent. Под кураторством Burlex проект прожил недолго, но очень плодотворно. Впоследствии, одна предприимчивая госпожа предложила Burlex'у работу в создании первого крупнейшего в мире "Пиратского" сервера под названием WoWScape, в результате чего Burlex ушел в приват, основал ядро SummitEmu.
WoWScape кстати принес им колоссальный доход, а потом и самый грандиозный скандал в мире, с иском от blizzard на сотни миллионов долларов, но об этом будет отдельная статья.
Ascent без куратора прожил увы недолго, и разделился на несколько проектов : Aspire, HearthStone, которые впоследствии объединились под руководством Spectre в AspireHearthstone. Проект был очень перспективным, но по каким-то своим причиним Спектр удалил сайт, оставив лишь затычку с контекстом "скоро вернемся", но так и не вернулся.
Лишь относительно недавно, проект Ascent был возобновлен под новым названием AscEmu. Идея нового проекта кстати интересна - сделать полиморфичное ядро с мультиверсией контента. Тоесть одно ядро имеет поддержку всех аддонов/контентов WoW.
Ссылочку оставляю : https://github.com/AscEmu/AscEmu
№4 - WoWWoW
Видно вдохновившись подвигом WAD’a, программисты решили писать свои проекты-эмуляторы сами, без посторонней помощи. Проект был свободным для скачивания, но с закрытым ядром. Писал его тоже один человек, но только половину – остальное писала его команда. Многочисленные альфа-версии эмулятора, появились в то время, когда WoWEMU уже был на грани закрытия, а Людмила ещё не распространялась в интернете. Сам по себе проект похож на WoWd, но переписан на C# (WoWd на С++, а WoWEMU на C++ и VB) и без поддержки SQL.
Из имеющейся информации (но это на уровне слухов), разработчиками выступили предприимчивые китайцы.
№5 - RunWOW
Когда-то он был самым популярным коммерческим эмулятором, и стоил толи 200, толи 300 американских рублей. Он был собран из украденных исходников WoWWoW альфы, но в нём была поддержка SQL и одна единственно важная вещь – 100% обработка файлов клиента типо .dbc – что позволило работать большинству спелов и талантов. Но проект закрылся, исходники его стали свободно распространятся и, в общем-то, всё.
RunWow был разработкой русскоговорящего программиста, и лег в основу популярного в свое время проекта-пиратки https://wow.wnet.ua (первый WoW : The Burning Crusade пиратский сервер)
В последствии все ядро было вроде как оптимизировано и переименовано в RunServer. Сайт проекта кстати до сих пор жив
Ссылочку так же оставляю : https://runserver.net/ru/project
№6 - TrinityCore
Про этот проект слышал каждый, кто хоть раз интересовался эмуляторами серверов, ну или просто гуглил "эмулятор сервера wow".
Этот проект был авангардом разработки.
Именно в нем впервые были разработаны динамические карты (когда например дверь со статусом "закрыта" являлась "текстурой", и стала мешать проходу в закрытые участки и тд). Именно в нем были реализованы впервые полноценно сетки-навмешей для "поиска пути нпц". В нем же велась работа над ЛФГ и ЛФР начиная с WoTLK контентов, работа с movement-генераторами, и прочее и прочее.
Со временем, когда ажиотаж нововведений успокоился, в тринити тоже была введена "стандартизация", аналогично Mangos'у. Что в итоге со временем устаканило стабильность эмулятора. Велась работа над проверкой кода на утечки памяти - memleak'и. И в тоже время, проект не переставал расти, и на настоящее время живее всех живых.
Он же лежит в основе огромного количества других проектов-форков.
Проекты-эмуляторы, оставившие свой вклад в истории:
WCell - https://github.com/WCell/WCell/commits/master
Данный проект написан на C# , и являлся альтернативой, любительским интересом. Тоесть у разработчиков изначально не было цели делать игровой проект, просто изучить игру и клиент, а так же технологии, которые использовали blizzard.
Например благодаря им были разобраны технологии построения транспорта, использование offset-координат, относительно транспорта (игрового объекта).
DelphiEmu - интересный проект написанный на дэлфи. Именно эти ребята предоставили миру информацию о содержимом некоторых опкодов, и порядок их использования.
YAWE - https://github.com/pavkam/YAWE (кто-то таки сохранил)
На самом деле, этот проект не оставил ничего из разработок, кроме лишь одного факта. Именно благодаря его появлению разработчики тринити и aspire и hearthstone вдохновились продолжать развитие, самостоятельно от родительских проектов. Хорошо это или плохо, уже никогда не узнаем =)