01.08.2026: Суббота бота, пятнадцатого дня отпуска

Ну наконец выспался! Лёг сразу после полуночи, встал в 10. Утром был ливень с грозой, так что и крышу чуть охладил, и никуда не попёрлись. Это просто праздник какой-то.

Я долго думал на что потратить мои вычислительные мощности. Думал, думал и придумал! Нужно вытащить из древнего подкроватника игровой сервер. Давно хотел, и вот сегодня попытаюсь.

Что за подкроватник?

Когда-то давно в локальной сети провайдера Матрикс появился игровой сервер World Of Warcraft. Пиратка, разумеется. Некоммерческий проект, объединивший кучу игроков. Тянул это дело один энтузиаст. Впрочем, со временем, к нему подтянулось ещё несколько, но сервер, счета за электричество, и весь прочий геморр оставался на админе.

И вот, на очередных новогодних праздниках сервер снова упал. Он часто так делал. Некоторые игроки привычно начали возмущаться на форуме игры, и тогда у админа наконец-то подорвало пукан.

О как (h 100px)
Я до сих пор поражаюсь как он вообще смог столько продержаться.

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

Кстати (h 100px)
Кстати, тот пост я храню до сих пор вот тут https://old.wowm.ru/. Он называется THE END.

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

Хмм (h 100px)
Смотри на том же сайте самый последний пост. Нормальное обещание, но….

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

Одобряю (h 100px)
Рекомендую посмотреть комментарии, для полноты картины.

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

Отдельная история как я восстанавливал сам сервер. Потом накатывал на него wotlk (ибо базы были от более ранней версии, а хотелось поиграть на лучшем аддоне).

Абсурдное кстати (h 100px)
Главной проблемой был устаревший софт, который оказалось очень непросто найти по протухшим ссылкам. Но справился. Работало немножко через одно место, но играть было можно!

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

Злобные планы (h 100px)
Я даже добавил туда призраков всех персонажей, что когда-то играли на оригинальном сервере. Увидеть их можно было только погибнув.

А ещё сделал оружейку, где можно было посмотреть те гильдии, их состав и даже отдельных персонажей.

В итоге, играл только я и мои дети. Было весело. Я преображал мир, добавлял интересности… Но в конце-концов игра без онлайна приелась. А спустя какое-то время сервер перестал тянуть весь нужный мне софт, и я заменил его на другой. А вот восстанавливать игровой сервер уже не стал, оставив его покоиться в коробке.

Лежало всё это, и давило мне на психику незаконченным делом ровно до сегодняшнего дня. Сегодня, с самого утра, выделил железяку и попытался перенести сервер, сделав его снова рабочим.

Ну что, «выделил железяку и попытался перенести» — это я утром очень скромно написал. По факту день превратился в квест «достань из склепа то, не знаю что, собери из того, чего нет, на том, что не заводится».

Начали красиво: от подкроватника остался ОДИН .ppk-ключ и пустой текстовик.

Весь в работе (h 100px)
Ни адреса, ни логина — вот тебе, бабушка, и «просто перенеси». Пришлось восстанавливать по крупицам: нашёл, куда этот ключ когда-то ходил, угадал юзера, зашёл. Внутри — древняя Ubuntu 16.04, 32 бита, проц — Atom. Антиквариат, 18-й век, ытить!

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

Остался  старенький мини-ПК на RedOS (той самой, импортозамещённой).

Ну вот так (h 100px)
Икс86, четыре ядра, есть звук, а вот флешку под базу система сначала гордо НЕ видела. Классика жанра.

Тут вскрылось, что Телеграм-то не то чтобы работает, а я хотел, чтобы помощник пинговал меня, пока хожу пить чай. Не сидеть же у монитора, пока качает, устанавливает, компилирует.

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

Хмм (h 100px)
Ощущение, будто завёл дворецкого из кошмаров и пластика.

А теперь — гвоздь программы. СБОРКА. Тут я узнал о себе много нового.

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

Рука-лицо (h 100px)
Это как прийти на свидание с фоткой двадцатилетней давности. Час компиляции — коту под хвост.

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

Чинить это по одной болячке можно было до пенсии. Поэтому придумался гениальный колхоз: раз код родом из 2016-го, засунем его в КАПСУЛУ ВРЕМЕНИ — контейнер с Ubuntu 16.04. И — о чудо — в родной среде всё собралось как миленькое, без единой правки.

Залип в книгу (h 100px)
Иногда лучший способ поговорить со стариком — не тащить его в будущее, а самому сходить в прошлое.

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

Рука-лицо (h 100px)
Теперь понятно, почему у старого сервера лог ошибок весил больше самого сервера.

Решили по-простому: аккаунты и 43 родных персонажа оставляем как есть, а мир переливаем табличка за табличкой в правильную схему — 137 таблиц, весь контент на месте.

И вот, финал. Сервер загрузил мир, гордо написал «World initialized»… и ТУТ ЖЕ СДОХ.

Пишу (h 100px)
Потому что захотел клавиатуру — у него, видите ли, интерактивная консоль. Сказал ему «заткнись и не беси» — и ОНО ЗАВЕЛОСЬ.

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

Злобные планы (h 100px)
Чемодан без ручки снова стал чемоданом.
Мечты (h 100px)
Пятнадцатый день отпуска, называется. Отдых в стиле шизокодинга.

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

Рука-лицо (h 100px)
Зашёл, увидел, офигел.

Сервер и правда поднялся. НО!

  • Во-первых, все NPC исчезли.
  • Во-вторых, призраки игроков теперь видимы в обычном мире. Но они почему-то лежат. И при этом хаотично перемещаются.
Бомбит (h 100px)
Что за дичь происходит! Как это теперь развидеть!

Пришлось пересобирать заново… Блин!

Но в итоге заработало!

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

Через час добавил управление реалмом в HASS. Теперь вижу там и состояние игрового сервера, и онлайн.

Хмм (h 100px)
Надо будет поставить эту коробочку на положенное место, подключить, запитать… Завтра!

А сегодня спать. Ну или сначала быстренько попробовать собрать материал для другого проекта?

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

Напишите комментарий

Введите имя

Введите адрес электронной почты

Введите адрес вашего сайта

Нажмите эту кнопку, чтобы отправить комментарий.

Введите текст комментария