января 27 2010 12:49 пп

Создание игрового сервера World of Warcraft на базе Debian или Ubuntu

wowlogo.png

Давно не обновлялся сайт, пора бы уже написать что то дельное и нужное. В этой статье я опишу процесс сборки и установки сервера World of Warcraft на базе открытого дистрибутива Mangos (http://getmangos.com/) который является бесплатной альтернативой продукту от Blizzard, но не является его точной копией, так как Blizzard не открывал исходный код своего сервера. Основой сервера является база данных mysql и два небольших демона для работы с ней. Я использовал дистрибутив Ubuntu 8.04 для сборки.

Установим все необходимое для сборки и дальнейшей работы нашего игрового сервера

Код:

apt-get install build-essential gcc g++ cpp automake git-core autoconf make patch libmysql++-dev libtool libcurl4-openssl-dev libssl-dev grep binutils subversion zlibc libc6 nano mysql-server unrar-free openssl

Затем скачаем исходные коды сервера и scriptdev2 который необходим для его работы
Код:

git clone git://github.com/mangos/mangos.git
cd mangos
svn co https://scriptdev2.svn.sourceforge.net/svnroot/scriptdev2/ src/bindings/ScriptDev2/

Затем применим патчи для исходных текстов
Код:

git am src/bindings/ScriptDev2/patches/MaNGOS-*

Затем переходим к сборке нашего сервера, это может занять некоторое время
Код:

autoreconf --install --force
mkdir objdir
cd objdir
../configure --prefix=/opt/mangos --sysconfdir=/opt/mangos/etc --enable-cli --enable-ra --datadir=/opt/mangos
make -j 2 (если у вас двухядерный процессор, или -j 4, если у вас четырехядерный процессор)
make install

Теперь можно начать настройку игрового сервера, для этого перейдите в его директорию
Код:

cd /opt/mangos/

Скопируйте файлы конфигурации из созданных автоматически при сборке сервера
Код:

cp etc/mangosd.conf.dist etc/mangosd.conf
cp etc/realmd.conf.dist etc/realmd.conf

Скачаем базу данных для нашего сервера
Код:

wget https://unifieddb.svn.sourceforge.net/svnroot/unifieddb/trunk/Full_DB/UDB_0.11.6_Core_8734_SD2_1480.rar --no-check-certificate
wget https://sd2-acid.svn.sourceforge.net/svnroot/sd2-acid/trunk/wotlk/3.0.1/3.0.1_acid.sql --no-check-certificate
unrar-free e UDB*

Теперь можно создать и заполнить базы данных mysql, для этого вам понадобится ваш пароль пользователя root к mysql, вы задавали его в процессе установки пакета mysql-server, в примере указано -pYOURPASS, замените YOURPASS на ваш пароль.
Создадим нужные базы данных и таблицы в них
Код:

mysql -pYOURPASS < /opt/mangos/mangos/sql/create_mysql.sql
mysql -pYOURPASS < ~/mangos/src/bindings/ScriptDev2/sql/scriptdev2_create_database.sql
mysql -pYOURPASS scriptdev2 < ~/mangos/src/bindings/ScriptDev2/sql/scriptdev2_create_structure_mysql.sql

Теперь заполним служебные базы данных сервера
Код:

mysql -pYOURPASS mangos < /opt/mangos/mangos/sql/mangos.sql
mysql -pYOURPASS characters < /opt/mangos/mangos/sql/characters.sql
mysql -pYOURPASS realmd < /opt/mangos/mangos/sql/realmd.sql
mysql -pYOURPASS scriptdev2 < ~/mangos/src/bindings/ScriptDev2/sql/scriptdev2_script_full.sql

Затем заполним базу данных игрового мира
Код:

mysql -pYOURPASS mangos < ~/UDB_0.11.6_Core_8734_SD2_1480.sql
mysql -pYOURPASS mangos < ~/3.0.1_acid.sql
mysql -pYOURPASS mangos < ~/mangos/src/bindings/ScriptDev2/sql/mangos_scriptname_full.sql

Если у вас есть желание русифицировать вашу базу данных, а именно квесты, некоторые предметы и тд, вы можете установить RUDB, скачать которую вы можете по ссылке
http://sourceforge.net/projects/rudb/

И наконец применим обновления баз данных, для этого есть небольшой скрипт на питоне, замените в нем YOURPASS на ваш пароль от mysql
Код:

#!/usr/bin/env python
import glob, os
patches = glob.glob('*.sql')
patches = sorted(patches)
for x in patches:
db = x.split("_")[2].replace('.sql', '')
os.system("mysql -v -p{YOURPASS} " + db + " < " + x)

Поместите скрипт в директорию /opt/mangos/mangos/sql/updates/, затем сделайте исполняемым командой chmod +x scriptname (scriptname замените на ваше имя скрипта) и выполните его там для применения патчей баз данных.

Затем назначим имя нашему игровому миру, для этого выполните слудующие команды к БД mysql, заменив в них Your Realm Name на имя вашего мира и Your IP на адрес вашего сервера
Код:

mysql -pYOURPASS
mysql> use realmd;
mysql> UPDATE realmlist SET name = 'Your Realm Name' WHERE id = 1;
mysql> UPDATE realmlist SET address = 'Your IP' WHERE id = 1;
mysql> exit

С базой данных пока все, перейдем к получению нужных для работы сервера файлов, от которых будет зависить версия клиента используемого для игры на сервере. Нам понадобится Windows версия игры с нужным нам патчем, например возьмем версию 3.2.2 (сборка 10505). От вас потребуется скачать на машину с клиентом игры директорию ~/mangos/contrib (она находится в директории с исходными текстами Mangos) с вашего сервера, и найти в ней следующие файлы
Код:

ad.exe
makevmaps_SIMPLE.bat
make vmaps.bat
splitConfig.txt
vmap_assembler.exe
vmapextract_v2.exe

Поместите эти файлы в директорию с установленным клиентом World of Warcraft, затем запустите файл ad.exe, он сделает все необходимое (распакует файл патча и извлечет оттуда необходимое), процесс может занять длительное время. После завершения работы экстрактора вы увидите три новые директории, "maps", "dbc", и "vmaps". Данные директории вам надо загрузить обратно на ваш сервер и поместить в директорию /opt/mangos/bin.

Для запуска нашего WoW сервера нам понадобится screen, обычно он уже установлен, если нет то установите его, затем создадим простенький стартовый скрипт для запуска нашего сервера в дальнейшем.
Код:

#!/bin/bash
cd /opt/mangos/bin
echo "Starting mangos-realmd"
screen -A -m -d -S realmd ./mangos-realmd
echo "Done..."
echo "Starting mangos-worldd"
screen -A -m -d -S worldd ./mangos-worldd
echo "done"
exit 0

Сделайте скрипт исполняемым командой chmod +x scriptname.

Теперь попробуем запустить наш сервер, для начала без screen, откройте две консоли, в первой выполните команды
Код:

cd /opt/mangos/bin
./mangos-realmd

Затем во второй консоли выполните команды
Код:

cd /opt/mangos/bin
./mangos-worldd

Если все прошло нормально, завершите screen и запустите созданный нами ранее скрипт для старта сервера.

Для управления сервером через веб интерфейс существует несколько разных скриптов, но все они не очень богаты функционалом, могут не работать корректно с вашей версией патча, поэтому готовьтесь что возникнут некоторые трудности при их настройке. Небольшую коллекцию веб обвязок для Mangos можно найти по ссылке: http://rumangos.ru/index.php?do=cat&category=www
На этом все, надеюсь у вас все получится.

Popularity: 20%

1 Комментарий »

Обсудить на форуме

Дай же, не жадничай!
ЯндексЯндекс. ДеньгиХочу такую же кнопку

One Response to “Создание игрового сервера World of Warcraft на базе Debian или Ubuntu”

  1. Twitter Trackbacks for Создание игрового сервера World of Warcraft на базе Debian или Ubuntu | Stepanoff Home Network [sudouser.com] on Topsy.com on 28 Янв 2010 at 06:29 #

    [...] Создание игрового сервера World of Warcraft на базе Debian или Ubunt… sudouser.com/sozdanie-igrovogo-servera-world-of-warcraft-na-baze-debian-ili-ubuntu.html – view page – cached Давно не обновлялся сайт, пора бы уже написать что то дельное и нужное. В этой статье я [...]

Trackback URI | Comments RSS

Leave a Reply

You must be logged in to post a comment.


Самые популярные статьи

  • Поиск при помощи утилиты find
  • Настройка Dynamic DNS на базе Bind9 и nsupdate
  • Вышел релиз Ubuntu Lucid Lynx 10.04 LTS
  • Объединение сетевых интерфейсов при помощи bonding
  • Мобильная версия сайта
  • Установка Zend Optimizer на Ubuntu 10.04 LTS
  • Основы программирования под Mac OS X
  • Вышла вторая бета версия Ubuntu 10.04
  • Настройка SNMPD на Mac OS X
  • Началось тестирования первой альфа-версии Ubuntu 10.10
  • Ограничение количества сессий с одного ip адреса
  • Вышел новый номер компьютерного журнала UserAndLINUX.
  • Отключение ipv6 для JavaVM
  • Настройка NAT по принципу сеть в сеть при помощи iptables NETMAP
  • Открытие форума
  • Настройка беспроводного интернета Yota WIMAX
  • Установка и настройка VSFTPD + MYSQL (Ubuntu & Debian)
  • Настройка Kernel NAT на FreeBSD
  • Создание игрового сервера World of Warcraft на базе Debian или Ubuntu
  • Установка и настройка Pure-FTPD в связке с MYSQL на FreeBSD
  • Вышла бета версия Ubuntu 10.10 Maverick Meerkat
  • C Новым Годом!
  • Подробное руководство по настройке wifi соединения с шифрованием разных типов
  • Вышел релиз почтового клиента Thunderbird 3.0
  • Ubuntu Server Pack
  • Просмотр IPTV из сети за сервером NAT
  • Настройка Cron
  • Установка и настройка DNS сервера bind9 Ubuntu-Debian HOWTO
  • Установка Ubuntu Linux на MacBook Pro
  • Игры в Linux

  • « | »

    Рейтинг блогов Rambler's Top100
    службы мониторинга серверов