Возникла необходимость написать игровой сервер для РПГ с неграфическим интерфейсом.
На него будут возложены такие задачи: интерактивное общение с пользователями, задачи по глубокой обработке текстовых данных — парсинг с помощью регулярных выражений, генерация ответов пользователю, создание «текстовых» уровней-лабиринтов, модификация сценария развития событий налету, достаточно сложная генерация сюжетных линий исходя из действий пользователя.
Требования:
- Высокая надежность со стороны ЯП и используемых технологий. В случае сбоя отдельных частей программной логики, необходимо, чтобы существовали какие-нибудь Супервизоры, работа которых происходит достаточно быстро для того, чтобы игрок не заметил «горячей замены» (возможно, выражение не совсем точное) кода, действующего узла, генератора карты, «отвалившегося» NPC-босса и так далее.
- Относительная проста написания игрового мира в терминах происходящих процессов.
- Красивая работа с многопоточностью, сетью и регулярными выражениями.
P.S.: Есть идея использовать для этой задачи связку из CL + Erlang или Java/Clojure + Erlang. Или просто CL.
На интуитивном уровне, вроде бы, понятно, что CL будет отвечать за логику, разбор регулярных выражений, работу с графами, генерацию мира, имитацию ИИ, а Erlang за работу с сетью и всевозможную многопоточность. Но интуиции свойственно ошибаться, поэтому интересует мнение людей, у которых есть опыт написания чего-то подобного.
И да, всячески приветствуется литература (желательно русскоязычная) по теории построения таких серверов. Можно с примерами на С.