Русскоязычный Discord-канал по MUD

Приглашаю присоединиться к русскоязычному дискорд каналу, посвященному МАДам:

discord.gg/RPaz6ut

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

В данный момент там три раздела:
1) main — обсуждение МАДов и всего, что с ними связано
2) development — разработка МАДов: от геймдизайна до кодинга
3) muds — Список МАДов, новости серверов, анонсы обновлений и проч. Можно прорекламировать здесь свой проект, написать о патче, ивенте и проч.
4) links — ссылки на ресурсы // пожалуйста, добавляйте туда ссылки на ру-сайты
5) Также есть голосовые каналы связи.

До встречи!

Mudjs: эксперимент с кнопками навигации

В качестве эксперимента присобачили панель с кнопками перемещения, а также командами 'смотреть', 'оглядеться', 'где'.
На скриншоте (под катом) кнопка команды 'где' нажата, поэтому подсвечена серым. Панель навигации видна только для маленьких экранов (как только исчезает правая панель, появляется эта).

Upd: длинное нажатие на кнопки направления теперь пытается отпереть и открыть двери по этому направлению.


Читать дальше →

Продолжение работы над контекстным меню для предметов в клиенте mudjs

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



Меню также выводится для предметов в магазине, позволяя купить или узнать свойства.



Дальше в планах:
* доработать недостающие команды для предметов и отловить глюки
* добавить похожее меню для персонажей и мобов
* сделать гиперссылки для справки, списков умений и экстра-описаний
* продумать какие пункты меню могли бы присутствовать в комнатах

Upd: клиент в действии, исходники клиента

Dreamland Fenya: пообсуждаем?

Собственно, хотелось бы поговорить об их собственном языке программирования.
Меня почему-то очень сильно смутили ответы (как я полагаю, разработчика этого языка).
На тот момент я не нашел ни одного существующего скриптового языка, виртуальную машину которого было бы легко и итеративно сохранить на диск.

Тот момент, как я понимаю — это начало 2000-х? На данный момент я точно уверен, что такое можно провернуть с питоном, и скорее всего можно было провернуть с ним это 18 лет назад.
— должна быть возможность расширять функциональность языка без ребутов.

Э, если это вполне сформировавшийся язык, такой как Lua, зачем расширять его функционал ?:) Если тут имелось ввиду расширение функционала мира на основе языке без ребутов — так это можно сделать на любом существующем скриптовом языке (и всегда можно было, что сейчас, что 20 лет назад).
Просто я со стороны не вижу никаких плюсов этого языка. Для сохранения состояния между ребутами можно было тупо писать на диск и делать бекапы. А вот минусов, на мой взгляд куча:
У языка нет поддержки коммьюнити, у языка малый функционал. Нет поддержки большинства популярных структур хранения данных, нет новомодных фишек, нет дополнительный библиотек. Из этого вытекает еще один минус — увеличение трудоемкости в некоторых случаях. Понятно, что для квестов подай-принеси нет особой разницы, будет это свой язык или какой-нибудь популярный, а вот для расширения функционала игры — разница есть. Например, мне будет нужно что-то, что может хранить дерево и проводить простейшие операции с ним. Для любого популярного языка, я найду библиотеку/готовую реализацию, что займет минут 10 максимум, и начну делать что-то для мада, а для Fenya, сначала придется писать свою реализацию, а потом уже реализовывать свою идею в маде.
Еще хотелось бы добавить пару предложений о самом маде. Тут я уже обращаюсь к имморталам дримлэнда:
1) Допилить бы цветовую схему мада, например, чтобы попадания мобов по мне, отображались определенным цветом.
2) Зачем эти англоязычные вставки в маде для команд? Времена, когда человек мог принмать русский текст, но не мог на нем писать — давно уже прошли
3) Желательно, добавить одной кнопкой генерацией чара для новичка. Т.е. создаешь чара, вводишь имя, вводишь команду новичок, и твой чар имеет оптимальную профессию, расу и другие характеристики, чтобы начать просто осваиваться в мире. (примерно такое я делал в былинах)
4) Кидайте чара сразу к мобам, которых можно бить. Мад — это сначала гринд, потом эксплор. Имхо, надо делать так, чтобы чар изначально чувствовал себя «нагибатором» и видел быстро увеличивающиеся циферки.

Контекстное меню для предметов в клиенте mudjs

Очередной «концептуальный прорыв» в вебклиенте. У всех предметов по нажатию на них появляется выпадающее меню, в котором перечисленым команды, которые можно проделать с этим предметом. По нажатию на пункт меню команда попытается выполниться (попытается — т.к. с тех пор предмет мог уже изменить свое местоположение или исчезнуть).

Меню зависит от типа и положения предмета, например:
* для предмета внутри контейнера виден будет только пункт «взять»
* для большиства предметов на полу или в инвентаре: «бросить» или «взять», «смотреть», «использовать»
* для мебели на полу будет видно «сесть, лечь, отдыхать» в зависимости от типа мебели
* для фонтана меню будет содержать «пить, наполнить», для бочонков — «пить, вылить»
* для вещей в инвентаре также видет пункт «легенды», если это умение доступно
* ворам виден пункт меню «украсть» на предмет в чужом инвентаре
* и так далее

С технической точки зрения это реализовано путем добавления специальных псевдо-тегов разметки вокруг каждого предмета. Если вывод происходит не в вебсокет, а в обычное соединение, эти теги не посылаются. Вебклиент обрабатывает эти теги и превращает их в стандартное dropdown-menu из Bootstrap.

Пример для предмета в инвентаре:
<m c=«бросить $, надеть $, смотреть $, использовать $, легенды $» id=«1773732900»>хитрость лаеркаи</m>
Для компактности символ $ будет заменен на стороне клиента на id предмета.
ID используется в качестве аргумента для однозначности, т.к. иначе для предметов с одинаковым названием пришлось бы вычислять это 3.бочонок или 2.бочонок, при том что с тех пор позиция в инвентаре могла поменяться, и команда в итоге выполнится с не тем предметом.

Аналогично теперь идет работа и с цветами, т.е. вебклиент больше не парсит ANSI-последовательности, а работает с псевдотегами <c c='fgbg'>ярко-зеленое сообщение</c>, превращая их в <span class='fgbg'>.

Пачка скриншотов под катом:



Читать дальше →

Голосовой интерфейс в МАДах

Был недавно пост в мадере на тему, но я его увидел уже после того, как в голове возникла мысль: а надо бы в МАДы прикрутить голосовое управление (и в целом, голосовой интерфейс) — ведь это идеальный жанр, даже по сути единственный жанр онлайн игр, где подобный «интерфейс» будет удобным и является очень полезным и нужным. Почему эта мысль пришла ко мне в голову? Дело в том, что я недавно повредил правую руку и сейчас как однорукий пират работаю только левой (а я правша). Называется, почувствуй себя disabled person.

Сразу начинаешь понимать, насколько важно развивать в геймдеве альтернативное управление и интерфейсы. Убежден, что если подобный интерфейс будет как следует реализован, это привлечет большое количество новых игроков в жанр и в целом вдохнет в него новую жизнь (сейчас МАДы, как не прискорбно — андеграунд в андеграунде).

Как?

Самое элементарное — www.voicemacro.net/, запиливаем голосовые макросы под нужные гайки. Но было бы здорово заточить какую-то систему под конкретный клиент, более технологически подойти к этому вопросу, чтобы люди могли продукт скачать, настроить под свой голос и играть, а не с нуля все запиливать.

Предлагаю этот вопрос обсудить в комментах и в дискорд канале, посвященном МАДам. С удивлением обнаружил, что в нашем уютном комьюнити до сих пор нет дискорд канала, настало время исправить эту недоработку. Ссылка на дискорд по МАДам: discord.gg/RPaz6ut, добавляйтесь. Фишка дискорда в том, что им удобно пользоваться из браузера, он быстрый и не грузит систему (в отличие от скайпов и проч. мути).

Мой видос на тему:


Источник: tangar.info/analitika/golosovoj-interfejs-v-madah/

Воздействия на персонаже в клиенте mudjs

Новая панель, где в сокращенном виде выводятся большинство воздействий (аффектов) на персонаже. Положительные зеленым, отрицательные красным, те которым жить осталось меньше тика — желтым.



Upd: все элементы панели теперь кликабельны, появляется окошко с описанием содержимого этого элемента. Для групп эффектов выдается расшифровка всех возможных сокращений.

Upd: клиент в действии, исходники клиента

Правая панель состояния в клиенте mudjs

Следующий виток интеграции вебклиента с миром: в протокол общения добавлена информация о текущем положении персонажа (если оно и так видно по команде 'где'), о времени и погоде (если она видна). Все это выводится в правой панели клиента. Пока что это всё не настраиваемо, т.е. у игрока нет выбора, какую информацию показывать, какую отключить. С добавлением новых панелей эту задачу придется решить так или иначе.



Upd: клиент в действии, исходники клиента

nmud dev server

Скриншот вебморды

UPD на 05.07.18: начал работу над человеколюбивой формой авторизации. Пока не работает — не обращайте на кнопки «Login» и «Register» внимание.
UPD на 08.07.18: сделал формы авторизации.
UPD на 09.07.18: вебморда теперь умеет работать по https. Но нужен валидный сертификат, а для сертификата — домен.
UPD на 10.07.18: разобрался с доменом и сертификатами, скоро опубликою статью-новость.
12.07.18: добавил редирект http -> https

В общем, у нас уже какое-то время (вроде бы два месяца, но это не точно) есть собственный сервер.

Можно пощупать прямо из браузера: nmud.info

Ах да, проект в разработке, много багов, бла-бла-бла, не пинайте сильно. Если есть желание помочь — пожалуйста, поделитесь своими впечатлениями о работе сервера в комментариях или на почту. Предложения также приветствуются. Взгляд со стороны — это всегда хорошо. Также очень помогут скриншоты вебморды из разных браузеров — посмотреть, как себя ведет разметка в разных условиях.

Внимание! Не оставляйте на сервере персональной информации (номера, пароли, личные данные)! Сервер никем принципиально не тестировался на безопасность.

В ближайшее время, возможно (только возможно!) буду много коммитить интересного.

Отображение информации о группе в веб-клиенте mudjs

Новая фишка в клиенте: отображение состояния твоей группы, как более сжатая версия того, что выводит команда group.
Вверху показываются все персонажи, дальше — домашние животные и призванные существа. В планах еще добавить флаги, обозначающие самые важные отрицательные или положительные воздействия на согрупнике, такие как слепота или защита святилища.
Табличка группы обновляется мгновенно, так же как и строка подсказки (prompt), т.к. вся информация каждый раз высылается от сервера к клиенту.


Upd: клиент в действии, исходники клиента