![image](https://habrastorage.org/files/a16/056/5ed/a160565ed7464e50add84832d8811f07.jpg)
Введение и выбор решения
Рано или поздно наступает такой момент в жизни любого сообщества форума, когда для привлечения и удержания людей возникает острая необходимость использования нового инструментария.
И таким весьма эффективным инструментом является то, что кроется за модным ныне словом геймификация. То есть, использование характерных для игр приемов и подходов в неигровых процессах по привлечению и вовлечению участников сообщества на форуме в создание активного и мощного информационного поля вокруг нашего продукта.
Используемый в нашей компании форумный движок XenForo в настоящее время является наиболее популярным и быстро развивающимся. Этот движок по-умолчанию имеет встроенную систему трофеев основанную на собственной, весьма ограниченной, системе критериев. Сама система создания трофеев также имеет ограниченный функционал, например, нет возможности создавать трофей с графическим бейджем, нет возможности создавать скрытые трофеи, и т.д. Для примера приведу скриншоты дефолтной системы трофеев XenForo для трофея Addicted (присваивается в случае достижения 1000 постов):
![](https://habrastorage.org/files/55b/b10/000/55bb100009ad41b8b6df75f249be933a.png)
Определение критерия для этого трофея выглядит так (таб Award This Trophy If...):
![](https://habrastorage.org/files/84a/99f/863/84a99f863e09425ca194fcfb3ba6a8a0.png)
Действительно, вполне возможно создать и использовать геймификацию на основе встроенного инструментария и критериев, но, в конечном счете, это выглядит недостаточно привлекательно и современно. Критериев для получения трофеев также недостаточно.
Движок XenForo хорош тем, что он имеет весьма серьезное и активное сообщество (имеются и русскоязычные группы), которое постоянно работает над его улучшением. Создана огромная база всевозможных плагинов, стилей, шаблонов и т. д. Они бывают как коммерческие, так и бесплатные. Существуют даже отдельные компании, занимающиеся разработкой и продажей решений для XenForo, например, Brivium.
Таким образом, потратив некоторое время на поиски подходящего решения и запросы сообществу, было определено лучшее на сегодняшний день решение для реализации продвинутой системы трофеев и достижений на платформе XenForo — связка плагинов Master Badge и CTA Criteria. Были опробованы и другие популярные решения, например, Brivium Extra Trophies Awarded, но их функциональность была оценена как недостаточная.
Но вернемся к связке Master Badge и CTA Criteria. Первый плагин представляет собой платное ($35) мощное решение для управления системой достижений и трофеев, а второй плагин — бесплатный увеличитель количества возможных критериев для получения трофея. Оба плагина обновляются нечасто, но в 2016-ом году обновления выходили. С разработчиками легко и просто связаться либо в обсуждении плагина на его странице, либо в приватной переписке.
Настройка плагина Master Badge
Разберемся поподробнее с настройкой плагина Master Badge. Первый таб выглядит так:
![](https://habrastorage.org/files/d1d/0a0/890/d1d0a089050648fa8987b9fa19f2babd.png)
Здесь интересна опция «Display user's featured badges in Member Card» и связанная с ней «Featured Badges». В полях ниже можно задать сколько трофеев юзер может отражать на своем Memeber Card в зависимости от своего текущего уровня. Например, для достигнутого 10-го уровня, юзер может на своем Member Card показать 5 заработанных трофеев. Выглядит это вот так:
![](https://habrastorage.org/files/0ca/150/b42/0ca150b4222a476e9620c9ff58bd7466.png)
Следующий таб настройки выглядит так:
![](https://habrastorage.org/files/527/db5/858/527db5858f504bafa7eda9e6d5296b77.png)
Тут интерес представляет то, сколько очков нужно набрать до достижения следующего уровня (Points Per Level) и система начисления очков при переходе с уровня на уровень выше (Level Up Options). Имеется даже Level Calculator для вычисления необходимого количества очков для достижения того или иного уровня.
И третий таб настроек:
![](https://habrastorage.org/files/c72/816/de3/c72816de3abd43ff9a187e5138ad567c.png)
Тут определяется месторасположение виджетов прогресса (Progress to Next Level) и топа юзеров (Top Level) в сайдбаре форума.
Создание системы трофеев
Для начала нужно сказать, что Master Badge определяет две важные сущности — Badge и Trophy. Badge имеет собственные свойства, важнейшее из которых Badge Mode, и может включать в себя трофеи (Trophies). Badge Mode может быть:
- Visible — все трофеи, входящие в этот Badge, видны.
- Step by Step — следующий трофей будет показан только после того, как предыдущий был получен.
- Hidden — трофей будет показан только тогда, когда будет получен.
![](https://habrastorage.org/files/274/6e7/bae/2746e7bae240419d8991c53d74401c30.png)
Внутри Badge мы создаем трофеи. Хотя трофеи можно создавать и не включая их в Badge. В окне создания трофеев имеются три таба. Для нас важны первые два. На первом задается название трофея, его ценность (Trophy Points), его описание, его принадлежность к Badge, его порядок, его иконка:
![](https://habrastorage.org/files/eab/e31/d03/eabe31d0372841a391d83cc1852a0474.png)
Второй таб самый важный, здесь задаются критерии получения трофея, и благодаря уже упомянутому плагину CTA Criteria количество этих критериев значительно увеличено, в отличие от умолчательной системы трофеев XenForo. Тут не влезли все возможные критерии, включен только один — достижение 100 лайков:
![](https://habrastorage.org/files/b17/320/102/b173201028444a8f84af3bc9dded2f5b.png)
Критерии для трофея можно комбинировать, что позволяет создавать всевозможные экзотические и редкие трофеи. В итоге формируется определенная структура из Badges и Trophies. Интересной особенностью является также возможность их контроля — выдать трофей определенному пользователю вне очереди, или выдать некий особенный трофей без определенного критерия конкретному пользователю за особые заслуги, можно посмотреть всех пользователей, обладателей трофея, и можно посмотреть иконку трофея:
![](https://habrastorage.org/files/ab4/8f4/779/ab48f47799644dcc9df779aa31f06c3c.png)
Таким образом, система позволяет создавать сложные структуры для реализации геймификации на форуме. Вопрос упирается только в фантазию для создания трофеев, и соответствующее графическое оформление иконок трофеев. Подразумевается, что иконки трофеев должны быть выдержаны в едином стиле и выглядеть привлекательно.
На изображении выше можно видеть следующую тестовую, черновую систему:
- Бейдж Poster с типом Step-by-Step и трофеями, основанными на критерии количества постов и с соответствующей возрастающей ценностью.
- Бейдж Favorite с типом Step-by-Step и трофеями, основанными на критерии количества лайков и с соответствующей возрастающей ценностью.
- Бейдж Cool Pleskian с типом Hidden и трофеями за привязку аккаунта к соцсетям, за достижения Ratio (отношение количества лайков к количеству постов) до определенного в критерии уровня (трофей The Most Useful!)
- Бейдж Years of service с типом Step-by-Step и трофеями, основанными на критерии количества дней с момента регистрации на форуме и с соответствующей возрастающей ценностью.
Дополнительно нужно упомянуть следующую техническую деталь. Трофеи и их уровне (Level Points) подсчитываются для пользователей на основе срабатывания соответствующей CronTask, которую при желании можно запустить вручную:
![](https://habrastorage.org/files/e8d/252/dc2/e8d252dc271e4374a8bf5cb219b452a7.png)
Система со стороны обычных пользователей форума
После того, как система трофеев настроена и запущена, со стороны пользователей форума она видна вот так:
На главном меню форума появляется таб Badges с собственными табами Leaderboard и Latest Awarded:
![](https://habrastorage.org/files/eb8/aa7/968/eb8aa7968f944303b508468d016b33ef.png)
В профиле каждого пользователя форума так же появляется отдельный таб Badges, где видны его заслуги:
![](https://habrastorage.org/files/17a/51d/2d4/17a51d2d4f744f62945b8c530340b05e.png)
При этом, пользователь может сам определить, какие трофеи он может разместить под своей аватарой в форумных постах:
![](https://habrastorage.org/files/9e0/861/d06/9e0861d067424cf58312dd4b52dbf40e.gif)
В тредах и постах ваши заслуги будут видны вот так:
![](https://habrastorage.org/files/d2b/636/125/d2b636125fa646cf903c9e66a93e74b1.png)
при этом количество позволенных для показа трофеев определяется уровнем пользователя, (Level Points), и зависит от настроек плагина Master Badge, о чем было сказано выше. Факт получения каждого нового трофея пользователь увидит в виде соответствующего Alert в верхнем правом углу форума.
О провокационности и результатах
Технические вопросы реализации безусловно важны, но не менее важная часть системы — ее наполнение. Создать запоминающиеся, креативные и яркие иконки трофеев с не менее зажигательными описаниями очень нетривиальная задача. Как вызвать острое желание пользователя получить тот или иной трофей путем его визуализации и вербализации — тема отдельного исследования. Скажу лишь, что изрядная доля геймерского опыта, озорства, и даже здоровой провокационности тут просто необходима. При этом важно не перейти некоторую грань, чтобы оставаться в рамках политкорректности, религиозной и расовой терпимости. Особенно это важно на форумах с многонациональным и многоконфессиональным составом сообщества.
Как небольшой пример такого подхода могу привести пару трофеев с нашего форума:
![image](https://habrastorage.org/files/bd1/72d/a53/bd172da53c154e40a72be862b973b50a.png)
![image](https://habrastorage.org/files/31f/e8d/dc7/31fe8ddc782e40a6b5a9a6e07b571d90.png)
Подобный подход, как правило, вызывает позитивную реакцию сообщества, особенно, когда такие трофеи сделаны скрытыми и вручаются пользователям неожиданно для них.
О результатах внедрения этой реализации геймификации с точки зрения заявленных в начале статьи целей говорить пока рано, но тенденция устойчивого роста активности на форуме заметна. Сейчас, после пары месяцев со времени запуска системы, сложно оценить долю геймификации в этом, но по мере накопления статистических данных, ее влияние можно будет попробовать оценить более детально.
Если у вас есть опыт по внедрению, оценке и использованию систем геймификации в профильных сообществах, делитесь, пожалуйста в комментариях.
Поделиться с друзьями
claygod
Пожалуй, не у каждого человека хватит чувства юмора на
трофей Better Safe Than Sorry , его вполне можно трактовать как «этот человек — ...»
Iron_Butterfly
Ну, это вопрос здоровой провокационности и владения английским :)
claygod
Я больше про картинку ))
Iron_Butterfly
Видимо тут дело в том, кто как эту картинку воспринимает. Можно назвать это ..., а можно подумать о безопасности и предохранении.