Создание Приложения Для Тренировки Мозга. Выбор Технологий И Методов Геймификации



Создание приложения для тренировки мозга.
</p><p>
 Выбор технологий и методов геймификации

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

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

навыки.

И пока идея не созрела до конца, начался процесс поиска технологий для реализации версии 2.0 сайта, плюс появился интерес к изучению новых технологий и языков.



Выбор технологии

Чтобы как можно больше людей могли использовать результат, минимизируя время разработки, мне нужно было максимально простое кроссплатформенное решение (веб/мобильные приложения).

При выборе языка предпочтение отдавалось функциональным.

Поскольку мой основной профиль — .

net, одним из очевидных вариантов было

Единство

Основные плюсы
  • Стабильный коммерческий продукт
  • Визуальный редактор
  • Благодаря технологии .

    net есть выбор из нескольких языков.

  • Большое сообщество (можно быстро найти ответ на любой вопрос или проблему; для контраста можно привести пример PureScript, где с большинством возникающих проблем приходится разбираться самостоятельно)
Используйте F# в качестве языка в сочетании с библиотекой UniRX, чтобы применить реактивный подход. Первый опыт оставил положительное впечатление, но на тот момент у веб-версии был большой минус — необходимость устанавливать плагин.

И хотя уже существовал экспериментальный метод компиляции в html5, реализация была еще сырой.

И насколько мне известно, на данный момент существует еще ряд проблем с этим подходом.



Кордова

Второй вариант — использовать js совместно с Cordova. Главное преимущество Кордовы — ее простота.

Упаковал html с js — вот готовое мобильное приложение.

Главный минус — на мобильных устройствах отсутствует нативность.

Написание чего-то более-менее сложного на js — не самое приятное занятие, поэтому нужна альтернатива, компилирующаяся на js, благо выбор достаточно большой.

Среди протестированных языков хотелось бы выделить Вяз, F# (WebSharper/Fable) — хорошие, вполне рабочие варианты, но для меня главный минус — это более простая система типов по сравнению с другими доступными языками.

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

Основным недостатком является то, что язык еще молод и находится в стадии бета-тестирования.

В результате существует небольшое сообщество и плохая поддержка редакторов кода.

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

Если к выпуску эти проблемы исчезнут, то в результате получится один из лучших вариантов языка FP на замену js. Скала (scala.js) - хоть и не так красиво и лаконично, как PureScript, но имеет более адекватно сгенерированный js-код + есть полноценная IDE в виде IntelliJ IDEA. Из всех опробованных нами языков этот вариант оставил самое положительное впечатление, поэтому было решено использовать его в дальнейшем.



React Native (победитель)

Хотя код тоже написан на js, в отличие от Кордовы интерфейс нативный.

Для scala.js поддержка React Native реализована в библиотеках sri. Несмотря на все шероховатости и подводные камни, React Native оставил исключительно положительное впечатление.

В процессе внедрения в большинстве случаев все просто работало, как на Android, так и в браузере (для запуска веб-версии использовалась библиотека act-native-web).

Конечно, выбор технологии для хобби-проекта отличается от выбора для коммерческой разработки, но сочетание React Native + scala.js считаю неплохим вариантом и на нем остановлюсь, пока не появится что-то более интересное.



Геймификация

Первоначально проводились эксперименты с своеобразной обратной геймификацией.

Если геймификация – это внедрение игровых элементов в неигровой контекст. Обратным можно назвать процесс внедрения неигровых элементов в игровой контекст. Например, были реализованы классические игры (раннер, змейка, подземелье) и введены в них неигровые элементы в виде решения простых когнитивных задач.

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

Целью использования геймификации было предложить игроку дополнительную мотивацию для тренировок к уже существующей.

Обычно приводят примеры потребностей человека, которые можно для этого использовать, например:

  • Социальные взаимодействия
  • Самовыражение
  • Потребность в развитии
  • Соперничество
  • Положение дел
  • Достижение цели и т. д.
В первой версии сайта уже использовалась опция соперничества.

Использование системы соревнований и лиг.

Но реализация использовала parse.com и канула в Лету вместе с закрытием сервиса.

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

Хотелось бы выделить несколько используемых механик.

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

Ощущение прогресса Во время обучения игрок заполняет шкалу прогресса текущего уровня, и чем лучше результаты, тем быстрее прогресс.

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

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

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

Поток Состояние потока достигается за счет оптимального баланса сложности задачи и навыков человека.

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

Это можно проиллюстрировать так

Создание приложения для тренировки мозга.
</p><p>
 Выбор технологий и методов геймификации

На основе этой идеи был реализован режим «Скорость» — в котором время реагирования постепенно подстраивается под ответы игрока, тем самым за счет плавного увеличения сложности осуществляется попытка привести игрока к заданной зоне.

Вы можете попробовать результат на себе.

Любая обратная связь будет оценена.

В опросе могут участвовать только зарегистрированные пользователи.

Войти , Пожалуйста.

Будет ли интересна более техническая учебная статья по использованию комбинации scala.js + React Native? 78,85% да 41 21,15% нет 11 Проголосовали 52 пользователя.

15 пользователей воздержались.

Теги: #react Native #геймификация #Разработка веб-сайтов #JavaScript #Разработка мобильных приложений #Разработка игр

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.