Статьи

Джоко: жемчужина геймификации

new_logo За последние два года я много слышал о новых методах маркетинга и о том, как их можно применять в веб-разработке. Один из самых известных методов в наши дни — геймификация. Эта статья объясняет, что такое геймификация и как вы можете использовать ее с новым драгоценным камнем.

Что такое геймификация?

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

Gamification новый?

Геймификация как маркетинговая концепция не нова. Напротив, он уже довольно давно используется многими различными сферами бизнеса, такими как банковское дело, туристические компании и другие.

Если это не новость, почему она так быстро распространилась за последние несколько лет?

Это просто. Кто-то изменил правила делового мира, и теперь у нас другой контекст. У нас есть молодые предприниматели, которые разрабатывают приложения и сервисы для молодых людей, которым требуются эти функции.

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

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

Основатель SCVNGR Сет Прибатч твердо придерживается мнения:

«Для меня это похоже на очередную естественную эволюцию человеко-технологического взаимодействия»

«Когда мы завершим социальный слой, мы начнем всерьез строить игровой слой».

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

Основы теории геймификации

За геймификацией скрывается не так много секретов, почти каждая реализация связана с одной из пяти наиболее часто используемых игровых механик:
— Точки
— значки
— Уровни
— Таблицы лидеров
— Вызовы

Основываясь на этих правилах, я начал проект Gioco.

Gioco

Gioco — это гем, который реализует геймификацию для приложений Rails, использующих Active Record .

Сама по себе это не закрытая реализация, она просто дает вам средства, необходимые для построения того, что вы хотите, используя обычную игровую механику.

Почему я это сделал?

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

После еще одного исследования мы нашли несколько решений, но большинство из них я назвал «платформами Plug & Play», такими как Bunchball , BadgeVille и BigDoor . Обычно у меня не было бы проблем с использованием внешнего сервиса. Фактически, мы делаем это во многих наших приложениях. Однако в этом случае мне было неудобно делиться информацией о поведении моих пользователей и некоторыми из моих бизнес-правил с внешней службой, и я не чувствовал себя комфортно в связи с необходимостью реализации откатов в случае, если эта служба отключается.

Мои коллеги и я обсуждали, как было бы неплохо иметь набор инструментов, чтобы помочь нам с архитектурой и обычными методами реализации геймификации. Таким образом, Джоко родился.

Логика

Это проще, чем вы можете себе представить. Идея состоит в том, что все реализации геймификации построены вокруг этапов, фаз или значков — как я предпочитаю это называть. Базовая настройка Gioco будет включать только значки , но вы также можете связать эти значки с любой системой очков . Вот основной поток:

Badges Flow

Он следует за линейной прогрессией , поэтому вы получаете один значок, чтобы получить другой. Кроме того, если у вас есть значок № 3 в начале, вы автоматически выиграете значок № 2, так как он расположен перед первым в линейном ожидании.

Что если вы не хотите использовать реализацию линейной прогрессии, потому что ваше приложение будет иметь разные типы значков ? В этом случае вы можете использовать систему очков , поэтому у вас также будут разные типы очков .

Badges Complex Flow

Это пример множественной линейной прогрессии . У вас будут разные типы (группы) значков, которые будут организованы в соответствии с линейной прогрессией. Логика все та же, но у вашего пользователя будет разное количество очков для каждого типа.

Система начисления очков не является обязательной. Если вам это не нужно, вы можете настроить Gioco без него и управлять значками самостоятельно.

Как начать

Первый шаг к использованию Gioco — добавить его в свой Gemfile и запустить команду de bundle :

gem 'gioco'

Настроить

Команда установки Gioco — это Rails Generator, который принимает два параметра --points--types

Когда вы настроите Gioco, он спросит вас о вашей модели ресурсов и ожидает, что она уже существует.

Чтобы установить значки:

 rails g gioco:setup

Чтобы настроить значки разных типов:

 rails g gioco:setup --types

Чтобы настроить значки с системой очков:

 rails g gioco:setup --points

Чтобы настроить значки разных типов и с системой очков:

 rails g gioco:setup --points --types

Управление значками

Значки добавляются и удаляются задачами Rake, которые будут поддерживать разные аргументы в зависимости от тех, которые вы использовали в процессе настройки.

Все операции, использующие эти грабли, будут генерировать начальные файлы. В результате, когда вы решите переместить свое приложение в другую среду, такую ​​как QA, Staging или Production , просто запустите rake db:seedсреде разработки .

Добавление значков

POINTS_NUMBERTYPE_NAME В противном случае их можно игнорировать.

Аргумент DEFAULTресурсам , которые уже есть в вашей базе данных.

 rake gioco:add_badge[BADGE_NAME,POINTS_NUMBER,TYPE_NAME,DEFAULT]
Уничтожая значки

TYPE_NAME

 rake gioco:remove_badge[BADGE_NAME,TYPE_NAME]
Уничтожение типов

Уничтожение типов возможно только при отсутствии значков, связанных с типом. Другими словами, прежде чем уничтожить тип, вы также должны уничтожить все значки, которые ему принадлежат.

 rake gioco:remove_type[TYPE_NAME]

Методы Джоко

Gioco предоставит вам некоторые методы, которые будут связаны с вашей моделью ресурсов (например, для userBadges Model .

У вас также будут значки и методы ранжирования. Вы можете найти все необходимое о методах Gioco в документации.

За кулисами

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

Gioco Architecture

Будет 4 новых сгенерированных модели:

  • BadgeОтветственный за данные бейджей, такие как количество очков и имя.
  • LevelIt — прозрачный слой, используемый внутренними методами Gioco для управления потоком значков. Он также может быть использован как система уровней, но у него пока нет методов, чтобы помочь вам с этим.
  • PointIt хранит операции для точек каждого ресурса , то есть вычитания и дополнения. Он также хранит тип точек, которые выполнили операцию.
  • TypeIt содержит все существующие типы, которые связаны с точками и значками .

Планы на будущее

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

Одна из функций, которая меня больше всего волнует, — это простой способ перенести реализации и архитектуры, которые уже существуют, на Gioco. Если к вашему приложению уже применена концепция геймификации, и ее становится слишком сложно и сложно поддерживать, почему бы не перейти на более полный набор инструментов OpenSource без потери каких-либо данных? Это было бы удивительно, правда? Это, безусловно, одна из проблем для следующей версии.

Служба поддержки!

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