Система Kanon

thoughtful emoticon

И снова о ролевых играх и инструментарии — кому не интересно, можете не читать. Я уже упоминал что Juperos позволил бы реализовать Kanon одним пинком, сейчас я расскажу что это такое и как идея появилась.

А идея появилась следующим образом. Мастерил я когда-то MUSH, каковой подвид сетевых ролевых игр следует назвать кабинетными играми постоянного протекания. Кабинетными, потому что они по масштабу соответствуют сверхбольшим кабинеткам — суммарное количество участников редко превышает сотню человек, тематика тоже схожа, основной упор на отыгрыш роли, конфликтные взаимодействия типа кто-кого-заломает сведены к минимуму. Постоянного протекания потому, что любой игрок может как войти в игру так и выйти в любой момент, и игра легко продолжается годами. Проблемы у них тоже похожи на проблемы кабинеток, а значит, могут подойти и некоторые решения.

Одной из проблем было то, что практически все игроки стартуют в вакууме. Если на сверхбольшую кабинетку люди хоть и не массово, но едут командами — семьями, организациями, делегациями — на MUSH это большая редкость, и игрок оказывается одиночкой, новым персонажем, не имеющим обычно внятных связей с уже существующими. Подразумевается, что он должен их завязать уже после начала игры, но для многих это оказывается непосильной задачей в силу самых разнообразных естественных причин. Мастера обычно пытаются решить эту проблему пинковым введением персонажа в некую организацию персонажей, что иногда срабатывает, а иногда нет, и предсказать заранее тяжеловато.

Для борьбы с этим я и придумал Kanon… Вы смотрели аниме Kanon? Если точнее, их на свете два, и оба происходят от игры в формате visual novel вышедшей в 1999 году и поднявшей его на новую высоту, а заодно нарожавшей толпу штампов которые теперь стали традиционными. Сюжет игры, а заодно и аниме — для старого аниме, которое вышло в 2002, это более справедливо чем для того, что вышло в 2006 — выглядит следующим образом:

В Город, к маминой сестре, то бишь родной Тете, приезжает Мальчик, который провел там значительную часть своего детства, но вот уже семь лет как не был — родители вынуждены куда-то уехать и сдали его Тете на руки чтобы он доучился в школе. Мальчик отличается не слишком хорошей памятью, и с трудом вспоминает двоюродную Сестру с которой теперь живет. Вспомнить Подругу Детства, из-за которой основная масса сыр-бора, ручную Лисичку, которая благодаря традиционной японской местной мистике стала девочкой, и прочих участвующих во всей этой катавасии лиц общим числом около пяти для него непосильная задача, а главное, у них у всех тоже не все в порядке с памятью — как-никак, семь лет прошло. Но у всех этих девочек есть к нему какое-то дело…

Обратите внимание на то, что:

  1. Реально, далеко не многие люди могут похвастаться хорошей памятью на всем протяжении своей жизни, и это медицинский факт.
  2. Многие социальные взаимодействия проходят в ситуациях, когда у них нет и не может быть сторонних свидетелей или документальных подтверждений. Особенно это справедливо, когда касается поведения детей дошкольного возраста, которые по фамилиям-то знают друг друга не всегда, а уж о том, чтобы узнать друг друга спустя десять лет, речи и вовсе не идет.1
  3. Если два человека уверены, и согласны в том, что в прошлом между ними что-то было, но сейчас нет ни свидетелей этого, ни документальных подтверждений, нет абсолютно никакой разницы, произошло ли это на самом деле, или они оба ошибаются, приписывая друг другу действия третьих лиц, поскольку это не влияет измеримо на современный материальный мир. Если их никто не может опровергнуть, значит так оно и было!

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

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

Система Kanon в первоначальном варианте должна была, пользуясь уже данными игроками сведениями о том, где они родились и как прошло их детство, а также сколько им лет, определить, сколько существует потенциально возможных случаев взаимодействия в неопределенном прошлом. По прикидкам, на сотню тамошних персонажей можно было набрать несколько десятков тысяч таких потенциальных пар. После чего разослать каждой такой паре письма по случайно выбранному из пачки шаблону примерно такого вида:

Копаясь в старом хламе, вы нашли {предмет}, и это напомнило вам про {друга детства/подругу детства/первую любовь/злейшего врага/соперника/другое} с которым вы {играли/дрались/целовались/другое} когда-то, {N} лет назад. Что-то с ними сталось? Ваши воспоминания об этом периоде несколько туманны, но у вас есть подозрение что {персонаж Y}, которого вы недавно встретили {в школе/в городе/в клубе/в гостях у Винни-Пуха/другое} — это и есть тот, кого вы знали тогда. Возможно, конечно, что вы ошибаетесь, но вдруг нет?

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

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

Так-то вот.

А пока я размышляю о концептуализации базы, ковыряясь в Ruby on Rails, и пытаюсь выразить базу таким образом, чтобы одному событию игрового мира соответствовала ровно одна запись в базе, ибо гирлянды мне все-таки не нравятся. Похоже, для этого придется поделить все события на два фундаментально различных типа — события определяющие членство в организациях, и события распространяющиеся по организационным связям как информация, а заодно ввести наследование членства организациях от больших к меньшим. Проблема в том, что событие типа «стал внештатным сотрудником СБ» однозначно является и тем и другим одновременно, а также в том, что прецедент когда наследником графа был не-фор и даже вовсе не человек — все-таки есть…


  1. Вспоминаем Форкон, на котором лорд Аудитор подозрительно похож на покойного императора, а вот Петер Форкосиган не похож на себя же шестилетней давности. ↩︎