1
Увлекательный мир Online IDE

В последние годы появилось довольно много online IDE, позволяющих создать свою среду разработки прямо в браузере.
Вот хорошая обзорная статья, с преимуществами и недостатками каждой системы: https://www.slant.co/topics/713/~best-cloud-ides

Идея заиметь такую среду и для дримленда мне очень понравилась. Для тех, кому лень возиться с исходниками на своей машине, поднимать виртуалку или настраивать docker — это неплохой способ быстро ознакомиться с проектом. Перебрав несколько IDE разной степени бесплатности, я остановилась на Goorm IDE. Главные преимущества, на мой взгляд:

* Редактор и IDE для C++ не лучше/не хуже чем у остальных. Полноценного online IDE для C++ с автоподсказками и рефакторингом мы вряд ли дождемся — никому это особо не надо.
* В бесплатном режиме предоставляется 1 контейнер с гигом оперативки: фактически свой мини-сервер с рутовым доступом, как из консоли браузера, так и по ssh.
* Контейнер ставится на паузу после двух часов бездействия (а не десяти минут, как в некоторых других системах).
* Хорошая интеграция с Github.
* Локальные порты (например, 9000) можно сделать доступными снаружи с помощью port forwarding, получив полноценный, доступный отовсюду муд-сервер.
* Одновременно могут работать 5 разработчиков и 3 наблюдателя, видя изменения друг друга в реальном времени.



Самым главным препятствием была, конечно же, KOI8-R кодировка у исходников. Отображались файлы верно, но любая попытка редактирования сохраняла их в UTF-8. Поэтому первым шагом был перевод исходников в UTF-8. Вместо тернистого пути перевода всей внутренней работы на новую кодировку, был выбран обходной путь: исходники хранятся в UTF-8, но компилятору задается специальный флаг, который компилирует их так, будто бы они в KOI8-R.
Опции для GCC: -finput-charset=UTF-8 -fexec-charset=KOI8-R. Для компилятора Visual C есть похожие флаги.

В остальном все оказалось довольно прямолинейно. С полной инструкцией можно ознакомиться на вики проекта: github.com/dreamland-mud/dreamland_code/wiki/Goorm-IDE

Mudjs: отображение здоровья, маны, шагов в виде progress bar

Илиус добавил прогресс-бары со здоровьем, маной и кол-вом шагов.



На мелких экранах цифры и надписи исчезают, а сами бары превращаются в три тонкие полоски.



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

МПМ "Грани Мира"



МПМ Грани Мира снова открылся под адресу 142.93.100.142 4000


Исходные коды проекта выложены в открытый доступ и для совместной разработки на github.com/planescape-mud/planescape_code

У нас есть канал на Discord-сервере, посвященном русскоязычным мадам. Заходите на discord.gg/RPaz6ut. Туда же попадают все оповещения о активности по коду на github.

1
DreamLand MUD стал OpenSource

Репост новости из мира:

DreamLand стал проектом с открытым исходным кодом. Каждый может принять
участие в разработке через pull-requests. Большинство арий по-прежнему закрыто.

Все наши репозитории находятся в github.com/dreamland-mud

* dreamland_code — исходный код

* dreamland_world — конфигурационные файлы и несколько зон для удобства
локальной разработки и строительства

* dreamland_docker — инструкции и настройки для docker

* dreamland_web — вебсайт, поисковик, карты

* mudjs — веб-клиент

* mudjs-vue — веб-клиент Террана

Ставьте звездочки кому не лень >8)

Mudjs: новые окна в панели состояний

Что-то давно никто ничего не постил про веб-клиент!

Вот как выглядит теперь правая панель состояний, когда все окна видны и развернуты. Новые окна — кто в мире, параметры персонажа, инфа о заданиях квестора. Всё сворачивается-разворачивается по клику на заголовок и показывает контекстную подсказу по клику на само окно.



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

Новый WebSocket муд-клиент на базе mudjs: mudjs-vue

(репост новости из мира)

Один из наших игроков, Terran, проделал огромную работу, переписав вебклиент с использованием библиотек VueJS и Quasar.
Вот список вещей, которые или уже доделаны или еще в разработке:
* выдвигающаяся панель слева с полезными ссылками
* выдвигающаяся панель справа с несколькими вкладками
* поддержка навигации мышкой (виртуальный кейпад)
* панели, где можно задать триггера, горячие клавиши и алиасы
* поддержка нескольких профайлов с настройками
* загрузка/выгрузка всех настроек
* фильтрация сообщений каналов в отдельные вкладки на правой панели



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

Клиент в действии: https://dreamland.rocks/mudjs-vue
Исходники: github.com/ruffinakoza/mudjs-vue

Любой желающий может принять участие в разработке.

Оригинальный клиент mudjs: исходники, клиент в работе

Discord: автоматический пост новостей

Поделюсь как настроить постинг новостей в канал Дискорда через вебхук.

Обновления из GitHub


Для своего канала легко создать webhook и настроить репозиторий Github, чтобы он автоматом постил все обновления в этот webhook.
Каждый коммит или даже манипуляции с Issues будут появляться на канале. Всё описано в этой статье.

Обновления изнутри мира


У webhook есть свой API, через который с помощью простого POST-request можно пихать свои сообщения.
В момент отправки новости изнутри мира можно, например, также записывать ее в отдельный временный файл в специальном каталоге.
Потом из крона периодически вычитывать эти файлы и отправлять на Дискорд. Файл должен быть в формате JSON и кодировке utf-8.

Пример файла:

{
   "content": "**Заголовок использует Discord markup и будет выделен жирным**\nРазные улучшения\nмного разных улучшений.\n",
   "username":"Новости мира XXX"
}


Пример команды для отправки:

    curl --request POST \
      -H "Content-Type: application/json" \
      --data @"$filename" \
      --url "https://discordapp.com/api/webhooks/4701xxxxx/cK1xxxx"

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

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

discord.gg/RPaz6ut

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

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

До встречи!

— Update:
1) Если вы являетесь администратором МАДа, пожалуйста, черкните мне в личку, чтобы добавить вас в соотв. группу
2) Если вы хотите отдельную категорию в дискорде для своего МАДа с текстовыми-аудио каналами — пожалуйста, обращайтесь. Можно замутить вебхуки, сделать импорт новостей и проч :)

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

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

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

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

1
Требования к современному мад серверу.

Уже прошло более 20 лет после того, как первые мады увидели свет. Но на данный момент в технологическом плане они по прежнему все те же и кодовые базы по сути не менялись. За редким исключением (Сфера миров) кодовые базы — это наследники Циркуля и Rom-a, у которых в свою очередь общий наследник Diku. А кодовую базу Сферы авторы не раскрывают. Все что делалось в русском сегменте — это русификация и изменение игровой механики. Зачастую изменения делались людьми с небольшим опытом программирования, что в результате приводило к проблемам — падение сервера, пропажа игровых предметов и т. д.

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

Итак требования.

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