Pvpgn ()

Запитали мене не так давно - чи є можливість підняти свій Battle.net на FreeBSD, а якщо є, то допомогти налаштувати. Ігри, для яких виникла необхідність у власному сервері, це Starcraft і Warcraft 3. Після недовгих пошуків було знайдено рішення у вигляді PvPGN. PvPGN (Player versus Player Gaming Network), який є модифікацією сервера bnetd, емулює роботу сервера Blizzard Battle.net (TM). Далі я розповім про те, як його встановити і налаштувати, а так само з якими проблемами я зіткнувся в процесі роботи з ним. Всі дії будуть відбуватися на ОС FreeBSD версії 8.3.

Йдемо в порти і встановлюємо PvPGN. На момент написання статті в портах доступна версія 1.8.5.


При складанні порту доступні наступні параметри:

  • MYSQL - підтримка зберігання даних про користувачів в MySQL.
  • PGSQL - підтримка зберігання даних про користувачів в PostgreSQL.
  • SQLITE3 - підтримка зберігання даних про користувачів в SQLite3.
  • D2 - зібрати сервер для Diablo 2.

Зберігати все в базі даних набагато зручніше, ніж зберігати все в фалах. На сервері вже стоїть СУБД PostgreSQL, тому я поставив галочку навпроти опції - PGSQL. Решта опцій прибрав.

Після установки в директорії / usr / local / etc з'явиться директорія pvpgn. У ній будуть знаходитися стандартні конфігураційні файли з іменами виду * -sample. Всі ці файли необхідно перейменувати (або скопіювати) до виду без -sample. Вже зараз можна запускати сервер і пробувати підключатися до нього, але є опції, які корисно буде подивитися і можливо змінити. Та й до того ж треба налаштувати роботу з PostgreSQL, бо в стандартній конфігурації сервер все зберігає в файлах. Так само не забуваємо створити базу даних і користувача для PvPGN, якщо ви використовуєте СУБД. Ось так виглядає головний конфігураційний файл /usr/local/etc/pvpgn/bnetd.conf у мене:


Після настройки поміщаємо демон bnetd в автозавантаження і запускаємо його:


Перевіряємо - запустився чи сервіс:

Пару слів про створення першого адміністратора в PvPGN: після створення облікового запису на сервері, потрібно підключитися до бази даних і в таблиці pvpgn_bnet у потрібного користувача в колонці auth_admin встановити значення в true.

Схожі статті