О локалке Граней Мира

Вначале краткий отчет о моих попытках сделать виндовые бинарники (“локалки”) Дримленда и Граней мира: не получилось.

Я консультировался с Руффиной и другими программистами этих миров, они ничем помочь мне не смогли. Большинство мад-серверов базируется на серверах с ОС Linux, чаще всего Ubuntu, и разработка идет под них, под их компиляторы, библиотеки, особенности сетевой архитектуры. Совместимость типа “этот код компилируется везде” бывает очень редко. А в случае Дрима и Граней у их команды есть свой метод, они берут обычный мад и оборачивают вокруг него обертку из своего кода со скриптовым языком Fenia. И вот эта обертка, написанная на С++ очень чувствительна к версии компилятора и у меня на Винде в cygwin не собирается или собирается с проблемами, не позволяющими маду запускаться. Кстати, метод Дрима чем-то похож на то, как из обычного (ванильного) сервера Майнкрафт делается сервер Forge или Fabric, только в случае Майнкрафта обертка делается не на уровне исходника, а на уровне бинарного кода, потому что Майн – закрытое проприетарное программное обеспечение. И если вернуться к мадам, еще существует встраивание в мад-сервер скриптового языка lua, тоже вроде по похожей схеме, как и в Дриме. Лично я как смиренный программист восьмидесятых скриптовые языки не люблю и у меня мад-сервера монолитные, и многие возможности я вношу на уровне кода ядра, то есть они hardcoded. Мне так проще, но с точки зрения правильного подхода к архитектуре это не совсем правильно.

Minecraft news

Пока в Украине идет война, в Швеции фирма Mojang, купленная Майкрософтом, работает и выпускает очередные версии Майнкрафта.

По этому поводу в тестовых целях я запустил у себя java версию Майнкрафта 1.19 и bedrock версию 1.18.33.02 (java версия сервера совместима с java версиями клиентов для Linux, Windows, macOS, а Bedrock это наименование клиента для мобильных платформ, таких как Android и Xbox. У них и нумерация версий немного другая, но bedrock сервер запускается на Linux VDS).

Адрес моего сервера: minecraft.kharkov.org

Откуда все это можно скачать:

Bedrock server: сообщение в Реддит, ссылка оттуда, скачанная копия

Bedrock клиент: скачанная копия, а скачано отсюда (там еще есть лаунчер TLauncher для платформы Андроид, но я его еще не тестировал. Ну и конечно есть Tlauncher в виде java версии, который является java клиентом для платформ Linux/Windows/macOS)

А java версии сервера разных версий можно скачивать с официального сайта Mojang, например вот

Статический мад

Большинство обычных пользователей сидят по Виндовс и не умеют программировать. Поэтому программы для Виндовс (в частности, мад-клиенты и мад-сервера) распространяются в виде бинарников. В Линуксе другой подход, там сборка (то есть компиляция) утилиты не исключение из правил, а вполне рутинная процедура. Поэтому мад-сервера обычно собираются на конкретном Линуксе из исходников. Но повышение популярности Линукса привело к тому, что в Линукс повалил ламер, для которого собрать что-то, это сложная и трудоемкая процедура. Да для них перейти в другой каталог командой cd это что-то из rocket science, они из экранной оболочки не выходят. Так вот, для таких нубов я сделал экспериментальную бинарную сборку своего мада, со статическими библиотеками естественно, так как откуда я знаю, какой у нуба Линукс. (Это Виндовс везде одинаковый, а Линуксы они разные).

proolmud-static.tgz

Исходники там приложены, см. Makefile. Пришлось добавить флаг -static и убрать iconv

prool httpd

Изучая программирование сокетов в Linux (см. одно из предыдущих сообщений) ВНЕЗАПНО у меня анчал получаться свой простейший httpd (нечто типа Апача или nginx). Выложу на github чуть позже

Экспериментаторы могу в качестве эксперимента по изучению протокола http зайти при помощи любого мад-клиента (например, JMC) на любой веб-сайт, на порт 80 и дать команду

GET / HTTP/1.0

Или наоборот, зайдите на любой мад браузером, например так

http://mud.kharkov.org:3000

или так

http://zerkalo.kharkov.org:4000

И снова Былины номер ноль

Вчера я сделал новый релиз этого пакета, который нормально собирается как в Windows (cygwin), так и в Линуксах. И положил туда готовый .exe для тех, кто не умеет или не хочет сам собирать:

http://prool.kharkov.org/mud/byliny-0/

* * *

(предыстория всего этого)

Собираем mmc под Linux

Путей из Былин пишет

проблематично чето собрать старый mmc, но нашелся форк допиленный
делал все на Mint
Linux version 3.2.0-23-generic (buildd@palmer) (gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu4) ) #36-Ubuntu SMP Tue Apr 10 20:41:14 UTC 2012

sudo apt-get install git automake libperl-dev zlib1g-dev libncurses5-dev libncursesw5-dev
git clone https://github.com/olostan/mmc.git
cd /mmc/src
./configure
make
sudo make install

мож кому поможет)

ну или расскажите как оригинальный собрать

У меня в Debian 6 получилось сразу, а в Ubuntu 12.04.4 LTS пришлось привести в чувство какую-то н.е.х. вводом команды aclocal перед make (иначе выскакивала какая-то непонятная ошибка про m4_regexp, я ее погуглил и нашел средство борьбы)

И все собралось

Текущее

Последнюю неделю-две у моего виртуального сервера (виртуализация KVM, OS Debian 6/i386), на котором был расположен муд, периодически пропадал пинг. (Ругался мониторинг от mudconnector.su, и от mudstats.com) Был бы это реальный сервер, я бы предположил, что дохнет сетевая карта. Я создал новый сервер на той же KVM-ноде, у нее с нетворкингом было всё нормально. И вот вчера, 3 сентября, примерно в 17:30 серверного (киевского) времени, я перенес работающий муд со старого виртуального сервера на новый. И все заработало стабильно! (Старый сервер чуть позже я совсем удалю, мудеры этого совсем не почувствуют).