Pull to refresh

Еще один вьювер сообщений (логов) для Dwarf Fortress

Reading time2 min
Views3.1K

Как-то раз решил поиграть в игру Dwarf Fortress, показалось очень интересно. Это несмотря на неудобное управление, которое возможно будет переделано в новой реинкарнации игры. Но речь о другом: взаимодействие с игроком во многом опирается на сообщения, которые появляются на отдельном экране и приходится постоянно делать переключения на него и обратно в игру.

Для решения проблемы прибегают к сторонним утилитам, которые отображают лог игры в отдельном окне. Попробовав два варианта таких утилит (один включен в PeridexisErrant's Starter Pack), я пришел к выводу, что оба варианта не могут полностью устроить.

Вот то, что мне бы хотелось, но чего нет в каком-либо варианте или в обоих сразу.

  1. До 4 отдельных окон для различных типов записей.

  2. Гибкая настройка цветов и распределения типов записей по окнам.

  3. Временное или постоянное скрытие каких-либо типов записей (желательно без перезапуска программы).

  4. Настройка отображения имен: отображение или скрытие псевдонимов или профессий.

  5. Указание относительного времени появления записей.

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

Для начала, надо было найти подходящий графический фреймворк для того, чтобы программа работала в тех же операционных системах, что и игра. После поиска вариантов, я остановился на Monomer.

Для парсинга логов я выбрал вариант с использованием Parsec. Хотя в Haskell разработке есть возможность использования регулярных выражений, я предпочел более функциональный подход (на самом деле, это почти прямое использование подхода конечных автоматов, только нет явных определений состояний автомата в программе).

Сейчас утилита уже в рабочем состоянии. Домашняя страница проекта на гитхаб.

Дистрибутив с исполняемым файлом для Windows. Дополнительная информация по использованию утилиты в install.txt. Ниже скриншоты экранов утилиты.

Основной экран - четыре окна сообщений
Основной экран - четыре окна сообщений
Настройка цветов
Настройка цветов
Настройка типов записей по окнам
Настройка типов записей по окнам

Tags:
Hubs:
+8
Comments7

Articles

Change theme settings