01.08.2026: Суббота бота, пятнадцатого дня отпуска
Ну наконец выспался! Лёг сразу после полуночи, встал в 10. Утром был ливень с грозой, так что и крышу чуть охладил, и никуда не попёрлись. Это просто праздник какой-то.
Я долго думал на что потратить мои вычислительные мощности. Думал, думал и придумал! Нужно вытащить из древнего подкроватника игровой сервер. Давно хотел, и вот сегодня попытаюсь.
Что за подкроватник?
Когда-то давно в локальной сети провайдера Матрикс появился игровой сервер World Of Warcraft. Пиратка, разумеется. Некоммерческий проект, объединивший кучу игроков. Тянул это дело один энтузиаст. Впрочем, со временем, к нему подтянулось ещё несколько, но сервер, счета за электричество, и весь прочий геморр оставался на админе.
И вот, на очередных новогодних праздниках сервер снова упал. Он часто так делал. Некоторые игроки привычно начали возмущаться на форуме игры, и тогда у админа наконец-то подорвало пукан.

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

Желающие оживить проект по первости даже нашлись.

Новый админ тупил не две недели. Несколько месяцев! Примерно до мая. Тупил-тупил и таки-выкатил какую-то версию сервера. Подробности этого позора где-то тут.

Спустя столько-то лет, по зимней поре, я обнаружил, что домен wowm.ru вот-вот освободится. Ну и выкупил его. А выкупив, начал искать следы проекта, всё что осталось по сети. Наскребал долго и муторно. Ну а вытащив кой-какие страницы из вэйбэк машины, нашёл номер WM-кошелька для донатов, и через него связался с бывшим админом. Тот передал немногое уцелевшее: базу старого форума и базы от игры.
Отдельная история как я восстанавливал сам сервер. Потом накатывал на него wotlk (ибо базы были от более ранней версии, а хотелось поиграть на лучшем аддоне).

Моя сборка проработала несколько лет, но никто из внешки туда не заходил. Так я понял, что проект умер окончательно.

А ещё сделал оружейку, где можно было посмотреть те гильдии, их состав и даже отдельных персонажей.
В итоге, играл только я и мои дети. Было весело. Я преображал мир, добавлял интересности… Но в конце-концов игра без онлайна приелась. А спустя какое-то время сервер перестал тянуть весь нужный мне софт, и я заменил его на другой. А вот восстанавливать игровой сервер уже не стал, оставив его покоиться в коробке.
Лежало всё это, и давило мне на психику незаконченным делом ровно до сегодняшнего дня. Сегодня, с самого утра, выделил железяку и попытался перенести сервер, сделав его снова рабочим.
Ну что, «выделил железяку и попытался перенести» — это я утром очень скромно написал. По факту день превратился в квест «достань из склепа то, не знаю что, собери из того, чего нет, на том, что не заводится».
Начали красиво: от подкроватника остался ОДИН .ppk-ключ и пустой текстовик.

Дальше вопрос: КУДА переносить? Машину-саппорт трогать нельзя — она рабочая лошадь (Gitea, сайты)… В общем, не для баловства. Приставка Vontar — плохое решение.
Остался старенький мини-ПК на RedOS (той самой, импортозамещённой).

Тут вскрылось, что Телеграм-то не то чтобы работает, а я хотел, чтобы помощник пинговал меня, пока хожу пить чай. Не сидеть же у монитора, пока качает, устанавливает, компилирует.
Ок. За полчаса родили VK-бота с гордым именем Majorro (мажордом же — служит и докладывает). А чтоб совсем по-барски — попросили саппорта ГОВОРИТЬ ГОЛОСОМ: теперь домашний сервер вслух объявляет, что «нужно ваше решение».

А теперь — гвоздь программы. СБОРКА. Тут я узнал о себе много нового.
Сначала бодро собрал… не тот сервер. Оказалось, мой старый сервак — это MaNGOS Two, а исходники в бэкапе лежали от cMaNGOS.

Собрали правильный. И тут ACE (библиотека прямиком из 2016 года) посмотрела на современный компилятор и упала в обморок. Сначала поругалась про cpu_set_t, потом выдала ВНУТРЕННЮЮ ОШИБКУ КОМПИЛЯТОРА — то есть не код виноват, а сам компилятор выпал в осадок от того, что в него запихали. Следом — OpenSSL, который за эти годы спрятал все свои внутренности под замок, а код из 2017-го ломится в закрытую дверь.
Чинить это по одной болячке можно было до пенсии. Поэтому придумался гениальный колхоз: раз код родом из 2016-го, засунем его в КАПСУЛУ ВРЕМЕНИ — контейнер с Ubuntu 16.04. И — о чудо — в родной среде всё собралось как миленькое, без единой правки.

Думал, всё? Ха. ТРИ БАЗЫ ДАННЫХ — ИЗ ТРЁХ РАЗНЫХ ЭПОХ. Аккаунты и персонажи — от одной версии, мир — от другой, помоложе. Единого ядра под этот винегрет в природе не существует.

Решили по-простому: аккаунты и 43 родных персонажа оставляем как есть, а мир переливаем табличка за табличкой в правильную схему — 137 таблиц, весь контент на месте.
И вот, финал. Сервер загрузил мир, гордо написал «World initialized»… и ТУТ ЖЕ СДОХ.

ИТОГ ДНЯ: realmd на 3724, mangosd на 8085, 13 678 аккаунтов, 43 персонажа, полный мир — 41 044 NPC, 9 079 квестов, 36 462 предмета.


Для верности решил зайти в игру.

Сервер и правда поднялся. НО!
- Во-первых, все NPC исчезли.
- Во-вторых, призраки игроков теперь видимы в обычном мире. Но они почему-то лежат. И при этом хаотично перемещаются.

Пришлось пересобирать заново… Блин!
Но в итоге заработало!
И даже именно так как ожидалось. Но на часах было 10 вечера и я слегка как следует подзадолбался к этому моменту. Так что… Пошёл в игру рыбачить!
Через час добавил управление реалмом в HASS. Теперь вижу там и состояние игрового сервера, и онлайн.

А сегодня спать. Ну или сначала быстренько попробовать собрать материал для другого проекта?
Ага… быстренько. Четвёртый час ночи, а я весь в процессе. Завтра расскажу что за задумка и что получилось. А сегодня уже никакущий…
Напишите комментарий