Введение в BBS MUD
Давно я хотел написать свой мад, но необходимость работы с портами, кодировками и очередями событий пугали меня. И я во время пути на работу и с работы по улице Механизаторской придумал собственную архитектуру.
- Мад представляет собой процесс по имени server (процесс в смысле ОС UNIX)
- Клиенты тоже представляют собой процессы по имени bbs (на одного человека игрока один экземпляр процесса)
- Общение клиентов с серверов осуществляется путем помещения файликов в каталоги cmd (команды от клиента к серверу) и messages (ответные сообщения сервера), имена файлов начинаются с uid клиента, так достигается уникальность. В общем, многозадачность и семафорность я возложил на ядро UNIX (Linux, FreeBSD) и на его файловую систему.
Вот собственно и всё 🙂
Процесс-сервер можно запустить демоном и он будет висеть, обслуживать запросы, а клиенты можно запускать вручную из консоли или сделать на UNIX-машине пользователя по имени bbs, у которого в качестве командного интерпретатора будет указан процесс bbs. Этим я убил еще одного зайца: коммуникацию тоже я возложил на UNIX, а так как входить в мад надо будет по протоколу ssh, то это будет кроме всего прочего еще и защищенный мад!
Название BBS (bulletin board system) возникло у меня в голове случайно и прижилось. На данный момент в маде реализован только минимальный чат (механизм общения игроков), то есть мад вполне можно использовать в виде простейшей BBS. Если вы считаете название дурацким, то по вашему “реки грязи” или “кружок грязи” – более умные наименования? 🙂
Простейшая инсталляция
- Все собрать командою make
- Проверить, чтобы там, где бинарники, были каталоги cmd и messages
- Запустить в одной консоли сервер ./server
- Запустить в другой консоли клиента ./bbs
- Радоваться (рыдать или поражаться идиотизму автора мада)
Вот старая версия BBSMUD http://prool.kharkov.org/mud/bbs/
А вот продолжение разработки на github https://github.com/prool/bbs-mud