Хабр Квест {концепция}
Недавно на ресурсе, по случаю начала процесса ребрендинга, предложили придумать идею сервиса, который мог бы стать частью экосистемы Хабра. На мой взгляд, одной из таких частей могло бы стать игровое ролевое измерение сайта, где каждый пользователь может стать неким «охотником за сокровищами» и «мастером приключений» в одном лице. О том, как примерно это могло бы выглядеть, и пойдёт речь в данной статье.
Обращаю ваше внимание на то, что речь пойдёт о режиме, который носит необязательный, «бонусный» характер. Подразумевается, что пользователь может переключать сайт в режим квеста, если хочет. Тогда он будет видеть несколько интерактивных окошек, помимо стандартной возможности читать статьи.
Кольца-коллекции
Для начала, подключив себе игровой режим, пользователь получает возможность составить коллекцию из нескольких (примерно от 2-х до 6) статей Хабра, которые по его мнению связаны некоей общей тематикой. Затем нужно присвоить коллекции имя, как если бы она была уникальной локацией игрового мира и сохранить её, после чего та станет частью определённого участка игровселенной Хабра.
На картинке показан приблизительный вид интерактивных игровых панелей, которые отображаются вокруг текущей открытой статьи.
Пройдёмся по блокам:
1) Информация о игровом персонаже пользователя. Здесь же может отображаться содержимое инвентаря или доступные способности, когда это нужно.
2) Главные опции и шкала энергии. Здесь как раз и находятся кнопки, открывающие инвентарь, либо способности героя. Кнопка настройки игрового профиля (героев, локаций), кнопка доступа к игровым логам и так далее. Энергия тратится на передвижение основного героя — 1 единица на 1 клетку. Каждый день пользователь получает 40 единиц энергии (не обязательно именно 40, но возьмём это число за отправную точку), неизрасходованная может накапливаться. Раз в неделю неизрасходованная энергия сбрасывается.
3) Здесь отображается текущая локация. В данный момент персонаж добрался до последней, шестой клетки и может покинуть локацию, нажав на самую нижнюю кнопку.
Отмечу, что деление на блоки именно таким образом, естественно, весьма приблизительное. Это мог быть и единый горизонтальный/вертикальный блок — тут уже зависит от того, какое из решений оптимальнее построить на архитектуре конкретного сайта.
Вернёмся к локации, которую создал пользователь.
Ей понадобится придумать название. Например, что-то вроде такого:
Замок Статистических Отклонений
Башня Волшебных Множеств
Пристань Одинокого Разработчика
Жёлтый Подводный Остров
Станция «Опенсурс 5»
Кладбище Битых Рукописей
Храм Цифры
Таверна «Последний Оператор»
Драконий Стадион
Круг Белой Ведьмы
Прорыв Аномалии
Определив имя локации, пользователь придумывает и устанавливает две необычных способности и два оригинальных предмета, которые могут быть найдены другими пользователями при посещении данной локации.
Это могут быть, например: невидимость, чтение мыслей, исцеление, заклинание погоды, общение с растениями, волшебное зеркало, кроличья лапка, цифровой меч, шар управления временем, универсальная отвёртка, карта лабиринта, склянка с зельем синего цвета, парадоксальный зонтик, микроскоп, колода карт и тому подобное.
Также пользователь создаёт себе некоего героя, который сможет путешествовать по звеньям локаций. У героя есть имя, класс/раса, статус, текущий квест, ещё какие-то условные параметры. Также он несёт с собой предметы и у него есть набор способностей — это всё герой находит/обменивает в странствиях.
Взглянем на пример «кольцевой» локации. Герой находится на третьей клетке, которая подсвечена тёмно-зелёным. Когда он попал в локацию, то появился на первой клетке, которая находится наверху списка. Все статьи локации видны пользователю сразу же — если нажимать на их названия, то будет открываться страница со статьёй. А для того, чтобы двигать персонажа нужно нажимать кнопку, подсвечивающуюся светло-зелёным. На это будет уходить энергия, а текущая открытая страница перезагружаться не будет. Когда герой дойдёт до последней строчки, то светло-зелёные кнопки исчезнут.
В любой момент, не дожидаясь открытия всех клеток локации, можно нажать на самую нижнюю кнопку и попасть на перекрёсток. На этот переход не тратится энергия.
Перекрёстки-указатели
После создания кольца-локации пользователь получает возможность создать «перекрёсток». Это тоже локация, но уже в виде связей-ссылок, идущих от центра перекрёстка к локациям-кольцам. Проектируя перекрёсток пользователь соединяет между собой два кольца (своё и какое-то из прочих). Число связей можно расширить, добавив ещё пару ответвлений. То есть минимальный перекрёсток имеет два выхода, а максимальный — четыре. При этом, когда герой попадает на перекрёсток, то всегда видит на один выход меньше, так как не может выйти тем же путём которым зашёл.
В центре перекрёстка пользователь создаёт игрового субъекта (нпс), придумывая ему/ей имя и класс/расу (младший научный гоблин, священник церкви Хаоса, принцесса пиратов, мутант-хамелеон). Также субъекту придумываются фразы, которые он/она будет говорить в отношении каждого перехода («на западе ты попадёшь в математические болота», «на севере ждёт тебя дорога к мудрости», «неоновый коридор заканчивался дверью с надписью wellcome, samurai», «взгляни направо, видишь хрустальный мост?»). И, конечно, фраза-приветствие.
На картинке выше приведён пример перекрёстка. Попадая в эту локацию пользователь не находится на клетке, но может нажать, на единственную доступную (потратив 2 энергии), тогда откроется окно с игровым субъектом, который приветствует героя. После этого можно уйти по одной из ссылок, которые ведут в кольцевые локации (тоже за 2 энергии). Если проигнорировать «лачугу» нпс, то переход по любому указателю стоит 4 энергии.
Субъекту можно пожертвовать способность, в ответ он наложит на персонажа какой-либо статус (благословение, проклятие, «заряжен электричеством», «уменьшен», «поделён на ноль», «оставляет за собой огненные следы»).
Также можно жертвовать субъекту предмет, тогда герой получит некий «квест» («очистить канализацию от крыс», «изобрести вечный двигатель», «пройти обряд посвящения в рыцари», «сдать курсовую работу по магоплетению файерболла», «отыскать все семь Великих Ключей», «найти способ развлечь Суперкомпьютер»).
Свои способности можно применять на субъекте, что отразится в его логе-истории («Йоши применяет на Марио способность Повелевающий грибами»). Пару предметов можно обменять на те, которые хранятся у субъекта.
Приключение
Сам процесс приключения выглядит так — у героя есть некоторое количество ходов, которые он может совершить в течении дня (определяется запасом энергии). Попадая в локации пользователь сразу видит их коллекции статей и может читать их, на саму игру это не влияет. Герой же устанавливается на определённую клетку локации и, переходя по полям, может обнаружить предметы или способности. Один предмет и одну способность герой может поднять просто так, если есть свободное место в «инвентаре» либо в списке «сил», вторая способность и второй предмет требуют убрать установленные ранее элементы. Если герой берёт более сложную способность/предмет, то та отмечается «лайком».
Когда герой нашёл на локации предмет, то в окне информации о герое открывается инвентарь. Сбоку показывается найденный предмет, откуда его можно подобрать, при желании.
Инвентарь героя можно открывать и самостоятельно, через кнопку в блоке опций. Если герой находится на перекрёстке, в «гостях» у нпс, то при этом сбоку отобразятся предметы, находящиеся у нпс и можно сделать до двух обменов. Схожим образом можно применить способность на нпс, открыв свои способности, когда открыт его экран.
Герой пользователя может в любой момент покинуть кольцевую локацию, тогда ему будут предложены несколько перекрёстков, связанных с ней. Если же связанных перекрёстков нет, то герой потратит немного энергии на то, чтобы бродить в тумане, пока не наткнётся на случайный перекрёсток.
Кроме приключений, пользователь может просматривать игровые логи, переходя на отдельную страницу. Как своего основного персонажа и нпс, так и, вероятно, героев прочих пользователей.
Там он увидит записи примерно следующего вида:
{охотник за привидениями} применяет {заклинание оптимизации} на {королева-русалка}
{PhP нежить} даёт задание {профессор математики} — {очистить отравленные воды реки}
{дракон артдиректора} обменивает ваш {меч разочарований} на {парящий ssd-диск}
Развитие
Здесь описан, в общем, самый базис того, как можно выстроить систему игрофикации, сочетающую в себе некую мета-игру, а также процесс сбора материалов в некое отдельное связанное пространство — нечто вроде лабиринта/подземелий/города, где контент неким образом структурирован, собран в специальные области/зоны.
Карма и рейтинг пользователя Хабра тоже могут как-то влиять на количество ежедневного прироста его игровой энергии. Как вариант.
Естественно, могут быть таблицы с общей статистикой игры. Разные топы. Например, наиболее часто посещаемые локации, предметы, набравшие больше «лайков». Кстати, эти самые предметы могут становиться цветными и повышать свою редкость (как в Diablo), при накоплении определённого числа оценок.
Также можно добавить возможность телепорта героя на читаемую пользователем в этот момент страницу (за 5 пунктов энергии), если, конечно, она кем-то уже привязана хотя бы к одной игровой локаций.
Можно со временем делать какие-то дополнительные виды локаций. Не только кольца и перекрёстки. Или позволять пользователям создавать больше тех видов локаций, что имеются.
Сама администрация имеет возможность создавать какие-то уникальные игровые объекты и структуры — те же гильдии, кланы, зоны испытаний, и так далее. То есть герои смогут туда как-то вступать, принимать участие, общаться.
Если присвоить способностям, героям и предметам числовые идентификаторы, то это позволит рассчитывать нарративные результаты их различных взаимодействий. Например, если раньше герой применял способность к субъекту и это просто записывалось в лог, то через идентификаторы и матрицу ассоциаций в лог можно будет выводить уже записи вида: «вы применяете {дыхание парадокса} на {лесной жук}. последствия: {сдвиг, время, открыть}». В таком виде пищи для фантазии уже становится больше и появляются новые элементы, на которых можно построить более масштабную ролевую систему.
Подробнее о концепции взаимодействий черт-идентификаторов, порождающих истории, я уже как-то писал в статье про Вычисляемый сюжет. В ней больше потенциала, чем в простых рандомайзерах, так как результаты различных взаимодействий, с одной стороны, выглядят хаотически-случайными, чего мы и хотим от рандомайзера, но, тем не менее, для любой пары взаимодействующих объектов результат всегда постоянен.
С числовыми идентификаторами можно сделать много чего интересного даже не выстраивая сложные системы. Например как вам какой-нибудь Аль Хабраический Куб Преобразования, доступный в игре. Герой кладёт туда предмет и способность, получая взамен достижение (ачивмент), разработанное администрацией. Подразумевается, что таких достижений целая таблица — каждое под своим номером. И когда способность умножается на предмет, то если в результате попался номер достижения, то игрок открывает это достижение.
Также получаемые героем квесты могут иметь некий простой номер-условие, при котором квест будет считаться пройденным. Триггером могут быть акты применения героем способностей на нпс — если в очередном таком взаимодействии номер-условие было достигнуто, то квест выполнен и можно брать новый. Герой даже может опыт за это получить, если мы хотим ввести в игру уровни или что-то ещё за опыт.
Со временем базовые правила и возникающие игровые элементы могут быть развиты в что-то более масштабное, приблизившись к подобию специфической социальной сети, притом с деятельным направлением, потому как само название Квест предполагает некие цели, активную постановку задач и их решение.
Можно подумать о том, чтобы Хабр Квест был не (или не только) в виде надстройки к сайту, а, возможно, отдельным мобильным приложением, в которое помимо самой игры встроен просмотрщик страниц Хабра. В таком виде и сама игра может быть подана в более интерактивной и свободной форме, не скованная форматом блока на вёб-сайте. То есть, уже не только кнопки и выпадающие списки, но и drag-n-drop, анимации и прочий набор возможностей игровых приложений.
Такие вот мысли. А вы что скажете?