DikuMUD3 news

Михаил Сейферт зарелизил на github код DikuMUD3:
https://github.com/Seifert69/DikuMUD3

Этот мад работает как по привычному протоколу telnet, так и через веб-интерфейс по технологии websocket.

Я собрал его (это оказалось несложно) и сделал временный тестовый MUD на его базе, чтобы все желающий могли пощупать этот мад:
http://prooltest-4g.kharkov.org/mud/

Good news

Хорошие новости для всего мира мадов: Авторы DikuMUD —

Sebastian Hammer, Hans-Henrik Starfeldt, Katja Nyboe, and Michael Seifert — собрались и перелицензировали свой код на условиях LGPL. То есть лицензия Diku уже не проприетарна, а наоборот, свободна. Например, уже можно официально делать платные мады. А на реддите обсуждают лицензии потомков Diku. Например, лицензия MERC вроде как обратно совместима и поэтому MERC тоже можно считать свободным ПО (но это пока не точно).

Вот официальный репозиторий с кодом Diku от Майкла Сейферта (одного из авторов):

https://github.com/Seifert69/DikuMUD

(там еще есть несколько версий Diku)

UPDATE. После некоторой возни собрать DikuMUD мне удалось, но он почти сразу падает, когда в нем пытаешься регистрировать нового игрока. Почему и как исправить — я пока не знаю.

Но без проблем мне удалось скомпилировать и запустить DikuMUD2:

https://github.com/Seifert69/DikuMUD2

UPDATE2: 13-Jun-2020. Вот легко собирающийся код Diku Alpha:

https://github.com/MUDOmnibus/DikuMUD-Alfa-for-Win32.git

Он UTF-изирован: https://github.com/prool/DikuMUD-Alfa-for-Win32

UPDATE3: 14-Jun-2020. Я UTFизировал Diku2 (-u флаг в драйвере mplex)

https://github.com/prool/DikuMUD2

Меня форкнули!

Буду краток.

Мой Virtustan MUD на Гитхабе форкнул молодой аккаунт по имени DikuMUDOmnibus, который, как я понял, собирает форки всех мадов, основанных на движке Diku. Посетив аккаунт DikuMUDOmnibus, я нашел аккаунт MUDOmnibus, который форкает вообще все мады.

Это скорее всего энтузиаст, который всё каталогизирует

И снова о русификации английских кодовых баз, основанных на Circle

Я только о том, чтобы мад воспринимал символы из второй половины таблицы ASCII. И строго говоря это не русификация и даже не кириллизация, а интернационализация и UTFизация

Возьмем, к примеру TBAMUD

Файл comm.c, в функции perform_socket_read

ищем строку с проверкой isascii(*ptr)&&isprint(*ptr)

и меняем ее на ((unsigned char)*ptr)>=32U

Почему так коряво, да потому что по умолчанию *ptr — это signed *char

Я там и единицу ставил (то есть всегда true), тоже работало, но лучше от символов, меньших пробела, защититься 😉

Возможно есть и другие места, где придется слегка модифицировать код, чтобы нормально проходили старшие символы (>127). И не надо забывать, что char signed!

UPDATE. 01-Apr-2017. То же касается и русификации ROM и вообще всех детей Diku

UPDATE. 03-Dec-2017. И не надо забывать, от командах протокола telnet, которые могут появиться, например в начале строки и испортить картину. Например, испортится ввод пароля или ввод команд. Вот пример таких последовательностей FF FD 01 и FF FE 01