MMOZPG «Сказка»

Лень читать? Идём сразу в игру и разбираемся на месте  :-)

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

Ну конечно, чтобы оно было ролевым, чтобы онлайн и с другими человеками играть, чтобы мир живым был (да ладно, кому нужен саморазвивающийся мир? Главное чтобы он живым казался, остальное не важно. Но у нас он не только кажется, а таки саморазвивается, немножко), чтобы времени много не занимало, не кончалось и чтобы приключения-приключения, и чтобы я, ИГРОК, мог на всё это влиять и поворачивать как мне захочется. Вот.

Есть, конечно, Космические Рейнджеры, Маджести, Годвилли, ВоВ-ы, ВоТ-ы и прочие, но там всё урывками и то не онлайн, то время съедает, то кончается быстро, недостатков полно. Поэтому пришлось делать самому, вот 1,5 года примерно и делаю.

В итоге получилась ммо браузерная игрушка с непрямым управлением персонажами (формально zero-player-game, фактически уже немного не zero). Зовётся «Сказкой».

Итак, чего же такого сказочного она может предложить искушённым игрокам?

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

Во-вторых, живущий собственной жизнью мир: от действий героев (и решений, которые им помогают принимать игроки) зависит влияние ключевых персонажей (NPC). Персонажи меняют различные параметры городов, в которых проживают. А города изменяют мир вокруг себя. Если вы всегда хотели организовать свой маленький пустынный халифат, то нет ничего проще: помогайте оркам в одном из городов, со временем те захватят власть и распространят вокруг пустыню. Любите горы? Помогайте дварфам. И да, помните, что кроме вас есть и другие игроки, чьи действия и желания стоит учитывать.

В-третьих, система политики, позволяющая через принятие законов, переименовывать города, прогонять NPC и делать другие не менее интересные вещи.

Кроме того, большое внимание уделено целостности мира: есть своя мифология, в болотах водятся болотные монстры, в горах — горные. Для каждого (!) из них есть просто замечательное описание в виде выдержки и из одной из многочисленных работ по миру Пандоры (так он называется).

Вот одна из моих любимых:

…Ха-ха! Не путай одержимого колдуна с полоумным магом. Одержимый колдун, сволочь, опасный. Они же не в себе, а такие всегда силой и живучестью отличаются… Да кто? Люди либо эльфы.

А одержимость у них одна. От колдовства мозг набекрень становится, и колдуну кажется, что его хотят убить, что на колдунов охотятся… Да я почём знаю кто? Психи, говорю же. На кой ляд они кому нужны?

Я вот раз иду, вижу, человек у дороги в кустах сидит… Ну мало ли, думаю. Не моё дело. Так я ещё даже отвернулся… как это… тактичность проявил, во! Слышу вопль! Оборачиваюсь. А тот вскочил, глаза из орбит повылазили. И орёт мне, мол, и тут вы меня нашли, сволочи-убийцы. Давай магией кидаться. Я ему, дескать, он ошибся. Уважаемый, говорю, я знать не знаю о чём вы. Бесполезно! Пока башку ему сталью не развалил, он так и не угомонился. Они ж безумцы все крепкие… Кстати, тебе проклятые кольца не нужны?.. Ну как сувенир… Да у меня их мешочек целый, как-то везло мне с того раза на одержимых колдунов.

Из бесед у камина со старым Переяром.

Всё это чудо постоянно развивается, обновления выходят примерно раз в 2 недели, присоединяйтесь!

И немного технической информации:

концепт документ

руководство

технологии: python, django, postgres, html5

статистика: написано больше 42 тысяч строк кода (1,7 мегабайта), стабильность работы игры охраняется более чем тысячей тестов.

По мере разработки я выделяю часть кода в независимые компоненты и выкладываю на github под BSD лицензией, буду рад, если кто-нибудь решит воспользоваться моим трудом  или захочет эти библиотеки немного доработать (окажу всяческую поддержку)

на текущий момент открыты:

pynames — библиотека для генерации имён персонажей

textgen — библиотека для генерации связанного русского текста.

deworld — библиотека для генерации карты. Рассчитывает: высоту, влажность, температуру, ветер, качество почвы, растительность.

rels — продвинутые enums для python + их интеграция в django


Если появится желающий сделать мобильный клиент, с радостью предоставлю стабильный API для него.

По поводу Годвилля и отличий

Если кратко, то общего у игр только жанр, и элементы интерфейса. Причём сходство интерфейсов обусловлено именно общим жанром: в текущем виде он появился не путём копипасты из Годвилля, а путём постепенного развития и анализа взаимодействий игроков с игрой.

В чём игра отличается от Годвилля:

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

Чего в игре пока нет, но есть в Годвилле:

  • нет системы гильдий, но она планируется и будет играть существенную роль;
  • нет большого сообщества игроков — это дело наживное;
  • нет крутого и удобного интерфейса (не сказал бы, что он сильно удобный в Годвилле, но всё же удобнее). Т.к. являюсь единственным программистом, то работы по интерфейсу веду по мере необходимости — механика игры в первую очередь (в этом плане ориентируюсь на Dwarf Fortress :-) ).