Vampire Wars MUD http://files.mud.kharkov.org/archive/vw-mud-win64.zip
Envy MUD http://files.mud.kharkov.org/Envy_22.tar.gz
Tag: windows
Новости Virtustan MUD
Последнее время муд стал падать со странными сообщениями
crash here: *** buffer overflow detected ***: terminated
Я погуглил, пишут что это ошибка в модуле EPOLL, я решил его выключить. Залез в код, а он выключен, причем очень давно, когда я добавлял в код поддержку нескольких портов. Тогда надо включить, может ошибка пропадет – по-ламерски подумал я. Стал пытаться включить, не компилируется, из-за моих изменений по многопортовости. Возился, возился, бросил, подумал, что это знак перейти на свежий код.
И Виртустан перешел на свежую версию кода Былин. В результате все мои новые команды и модификации пропали, но они сохранены в старой версии кода, постепенно я их внесу.
Но зато я сделал патч до внесению протокола MSSP в свежий код Былин.
Патч вот.
Приложения.
1. Почему эти ошибки стали возникать только в последнее время? Я постоянно обновляю свой сервер, это общие правила безопасности, без этого нельзя. Но с обновлениями приходят не только новые фичи, но и новые баги. Или как другая версия, мир изменился (я чувствую это в земле, я чувствую это в воде) и появился новый тип интернет-атак с длинным запросом. А атаки в интернете постоянно развиватся, например последние дни я начал замечать в логах nginx запросы на файлы типа backup.sql (к мудам это не имеет никакого отношения, но подобных запросов раньше не было)
2. Что такое EPOLL. Работа с периферийными устройствами может быть по прерыванию или по запросу. Муды обычно работают по запросу (httpd и Майнкрафт тоже). Но есть несколько версий библиотек для этого. Первая, это старый классический poll/select, вторая EPOLL, а есть еще EPOLL2. Код Былин может унаследовал от своего отца Circle два способа – poll и EPOLL (см. в коде операторы #ifdef EPOLL). В Линуксе можно и так и так, а в cygwin и macOS компилируется тольков варианте без EPOLL.
3. Поддержка доступа к маду по нескольким портам в самом маде необязательна. Ее можно сделать снаружи мада, например, средствами iptable. Но пока Виртустан работает только на порту 3000 (хост мой стандарный, mud.kharkov.org)
Свежие сборки для 64 разрядной Виндовс
Зеркало http://files.mud.kharkov.org/zerkalo/zerkalo-win64-13-feb-2023.zip
Виртустан http://files.mud.kharkov.org/virtustan-mud/vmud-windows/vmud-b-win64-13-feb-2023.zip
И снова сборки
Вот
http://mud.kharkov.org/files/towers_win64_v2.tgz
это бинарники для 64-разрядной Виндовс первой версии мада Towers of Aladon. Это 1997 год, по сути это очень частично русифицированный ROM. Игра имеет архивное и музейное значение, я думаю.
Updated 26 jan 2023
Shadow Realms MUD
Внезапно я занялся этим мудом. Его исходники в виде архива были очень давно выложены на сайте этого муда (сайт сейчас не работает). Я их причесал, они стали у меня запускаться. Вот они https://gitlab.com/prool/shadow_realms_mud
А теперь я адаптировал исходный код к cygwin и сделал виндовую сборку этого муда:
http://mud.kharkov.org/files/srmud_win64.zip
Кроме того, я запустил этот муд на своем сервере (порт 4444, хост mud.kharkov.org). А оригинальный муд не работает, как и его сайт
Release 2.02.30 TinTin++
https://github.com/scandum/tintin/releases/tag/2.02.30
Мои результаты компиляции этой версии будут описаны в коментах
О локалке Граней Мира
Вначале краткий отчет о моих попытках сделать виндовые бинарники (“локалки”) Дримленда и Граней мира: не получилось.
Я консультировался с Руффиной и другими программистами этих миров, они ничем помочь мне не смогли. Большинство мад-серверов базируется на серверах с ОС Linux, чаще всего Ubuntu, и разработка идет под них, под их компиляторы, библиотеки, особенности сетевой архитектуры. Совместимость типа “этот код компилируется везде” бывает очень редко. А в случае Дрима и Граней у их команды есть свой метод, они берут обычный мад и оборачивают вокруг него обертку из своего кода со скриптовым языком Fenia. И вот эта обертка, написанная на С++ очень чувствительна к версии компилятора и у меня на Винде в cygwin не собирается или собирается с проблемами, не позволяющими маду запускаться. Кстати, метод Дрима чем-то похож на то, как из обычного (ванильного) сервера Майнкрафт делается сервер Forge или Fabric, только в случае Майнкрафта обертка делается не на уровне исходника, а на уровне бинарного кода, потому что Майн – закрытое проприетарное программное обеспечение. И если вернуться к мадам, еще существует встраивание в мад-сервер скриптового языка lua, тоже вроде по похожей схеме, как и в Дриме. Лично я как смиренный программист восьмидесятых скриптовые языки не люблю и у меня мад-сервера монолитные, и многие возможности я вношу на уровне кода ядра, то есть они hardcoded. Мне так проще, но с точки зрения правильного подхода к архитектуре это не совсем правильно.
“Вся Галлия делится на три части”
В мудах из семейства Diku/Circle/ROM можно выделить три части. Первая это код, то есть исходный текст на языке C или C++ или их сочетании. Вторая это мир, то есть игровые зоны, в текстовом формате файлов zon/wld/mob/obj/trg/shp для ветки Circle и в едином формате are для ветки MERC/ROM. Третью выделяю только я, это то, что я называю “файлы данных” и чаще всего они находятся в каталоге misc. Там находится “цифирь”, то есть все параметры классов, умений, заклинаний, уровней и так далее. Часть из этих цифирей находится в коде, и для их изменения надо уметь перекомпилировать исходники (и иметь их в наличии). А вот те цифры, которые находятся в файлах данных можно просто поменять и перезапустить мад (или выполнить в маде команду reload) и все в мире изменится.
Чтобы запустить у себя сервер надо иметь все три части, причем код может быть как в виде готового бинарника, так и в виде исходников, что конечно предпочтительнее, по крайней мере для тех, кто знает основы программирования. А иногда эти части распространяются отдельно (и порой имеют различные лицензии и правовые статусы). Например, tbamud присутствует на github полностью, то есть код, файлы и зоны. Эти зоны они называют stock zones, но некоторые авторы зон (билдеры) не разрешают свободно распространять свои зоны. Кроме авторского произвола (или желания заработать) здесь есть и игровая логика – изучив файлы зоны игроки получат преимущество, так как заранее, не играя будут знать топологию зоны, квесты, параметры монстров и так далее. Это как в D&D игрокам сильно не рекомендуется читать Книгу мастера (спойлеры, “вам потом неинтересно будет”).
А вот Былины (несмотря на сложный характер отцов-основателей) были чуть ли не первым русскоязычным мадом, опубликовавшим свой исходный код вместе со “стоковыми” файлами и тремя начальным зонами. Ну, вы знаете эту душераздирающую историю, несколько раз из штаб-квартиры Былин происходили утечки других зон (и файлов), на базе которых делали пиратские “локалки”, например широко известная в узких кругах “НВОшная локалка” или не менее известное Зеркало.
Недавно я нашел на github англоязычный Luminari MUD, который объявлен как последователь tbamud (а tba – наследник Circle), причем в Luminari использован механизм D20. Я решил его поковырять, оказалось, опубликован только код, который достаточно легко собрался. И что дальше с ним делать? Оказалось, что в Luminari используется хранение базы игроков и некоторые параметры и хелпы в базе mysql, то есть в качестве “стоковых файлов” должен был быть дамп этой базы, которого в поставке не было. И игровых зон не было. Игровые зоны я взял со старой версии Luminari, а проблему с базой решил самым кардинальным образом – я начал жестоко курочить код (я называю это методом дурацкого хака и помечаю коментарием prool fool), и получится франкенштейн, который как-то запускался. Он не умеет хранить базу игроков, в нем надо постоянно регистрироваться, но походить по комнатам можно. Этот хак я еще не опубликовал, я не думаю, что он может быть кому-то сильно интересен.
А совсем недавно я нашел исходники русскоязычного муда по Ведьмаку. Начал их ковырять, и увидел, что они сделаны на базе Былин и чего-старого типа старого Circle или старого ROM. Информация об игроках там хранится в 24 подкаталогах с именами в виде латинских букв. То есть игрок Алекс будет лежать в каталоге a, игрок Пруль в p, Романа в r и так далее. Это было в каком-то старом ROM, потому что новые Circle (как и Былины) используют 6 каталогов A-E F-J K-O P-T U-Z ZZZ. Но остальные потроха у Ведьмака былиновские, но файлов и зон не было от слова совсем. Я откомпилировал его (это оказалось просто) и начал подбрасывать ему файлы данных от старого Зеркала, при ошибках делая их пустыми (то есть умений и заклинаний не будет). И постепенно сервер начал запускаться, потом я подбросил ему одну зону от Зеркала и ЭТО запустилось.
Для желающих поковырять вот моя франкенштейн-версия на gitlab https://gitlab.com/prool/cholera-mud
Называется она Холера муд. Ведьмак Геральт в фильмах и играх любил ругаться по-польски, слово KURWA я посчитал слишком неприличным, а вот CHOLERA в самый раз.
А вот сборка Холеры для Виндовс http://mud.kharkov.org/files/cholera-mud.zip
Она же временно крутится у меня на сервере на порту 7777 (хост мой обычный, mud.kharkov.org)
Впрочем, оригинальный Ведьмак вполне себе жив и крутится вот здесь: game.mudlast.ru 2700
Forgotten Dungeon
Я сделал 64-разрядную виндовую сборку мада Forgotten Dungeon (забытое подземелье)
MUD server binaries for Windows. Russian and English
Здесь будут как сборки, сделанные (откомпилированные) мной, так и не мной. На некоторых сайтах мадов выкладывается готовая сборка с несколькими зонами для билдеров и вообще для ознакомления. А Дримлендовцы выложили полный мир, правда собрать его для Винды мне не удалось (а вот под Ubuntu он собирается, не скажу, ч то легко, но таки да). Эти сборки на жаргоне игроков иногда называют локалками.
Мои мады. My works, in Russian language
Виртустан http://files.mud.kharkov.org/virtustan-mud/vmud-windows/
Зеркало http://files.mud.kharkov.org/zerkalo
И не мои мады (некоторые сборки делали авторы этих мадов, некоторые я). Not my works, in Russian
Берег Семи Воплощений http://files.mud.kharkov.org/c7i/
Опасная фантазия http://files.mud.kharkov.org/df2/ (там несколько сборок)
Сфера Миров http://files.mud.kharkov.org/sow/
PlaneScape http://files.mud.kharkov.org/psmud/test_server.zip – эта локалка не работает, я проверил
SR MUD http://files.mud.kharkov.org/sr_mud/ (несколько сборок)
https://github.com/Muderru/AdanCreationKit (сервер с 4 зонами, еще на их сайте есть другая версия его)
SOG – Shadow of Gray http://files.mud.kharkov.org/SoG/
Towers of Aladon http://files.mud.kharkov.org/towers_win64_v2.tgz
Forgotten Dungeon http://files.mud.kharkov.org/fdungeon.zip
И англоязычные сервера (все сборки делал я). My works about English codebases:
CircleMUD http://files.mud.kharkov.org/circle-windows/
DikuMUD http://files.mud.kharkov.org/dikumud_for_windows.zipEmpireMUD http://mud.kharkov.org/files/empiremud
MERC http://files.mud.kharkov.org/merc/
ROM http://files.mud.kharkov.org/rom/
tbaMUD http://files.mud.kharkov.org/tbamud_for_windows.zip
Anatolia MUD http://files.mud.kharkov.org/anatoliamud.zip
Magma MUD http://files.mud.kharkov.org/magma/
Envy MUD Envy
Vampire Wars MUD http://files.mud.kharkov.org/archive/vw-mud-win64.zip
ПРИМЕЧАНИЕ. Не все “локалки”, то есть сборки мад-серверов для Виндов работоспособные. Если моя локалка глючит, напишите мне, я постараюсь исправить, а чужие сборки поправить невозможно.
Updated 25-Feb-2024