脳トレーニングアプリケーションの作成。 技術とゲーミフィケーション技術の選択

この記事では、脳のトレーニングに特化したプロジェクトの趣味を実装するためのクロスプラットフォームテクノロジーの検索の経験と、そのゲーミフィケーションのためのいくつかのテクニックについてお話します。







数年前、私は一連のエクササイズで小さなサイトを作り、しばらくしてから考えが浮かびました:キャラクターをゲームからエクササイズにポンピングするというアイデアを移して、プレイヤーが認知スキルをポンピングするようにしました。







アイデアは完全に熟成していませんでしたが、サイトのバージョン2.0を実装するためのテクノロジーを検索するプロセスが開始され、さらに新しいテクノロジーと言語を学ぶことに関心がありました







技術の選択



できるだけ多くの人が結果を利用できるように、同時に開発時間を最小限に抑えるために、最も単純なクロスプラットフォームソリューション(Web /モバイルアプリケーション)が必要でした。 言語を選択するとき、機能的が優先されました。

私のメインプロファイルは.netなので、明らかな選択肢の1つは







団結



チーフプロ









言語として、F#をUniRXライブラリと組み合わせて使用​​して、事後対応アプローチを行います。 最初の経験は好印象を残しましたが、その時点でWebバージョンには大きなマイナス点がありました-プラグインをインストールする必要がありました。 そして、html5には既に実験的なコンパイル方法がありましたが、実装は未加工のままでした。 そして私が知る限り、このアプローチにはまだ多くの問題があります。







コルドバ



2番目のオプションは、jsをCordovaと組み合わせて使用​​することです。 Cordovaの主な利点はシンプルです。 HTMLをjsでパック-これが完成したモバイルアプリケーションです。 主なマイナス面は、モバイルデバイスのネイティブ性の欠如です。 jsで多少複雑なものを書くことは最も楽しいことではないため、選択肢が非常に大きいため、jsでコンパイルする代替手段が必要です。 テストした言語のうち、強調したいのは







Elm、F#(WebSharper / Fable)は優れた、非常に有効なオプションですが、メインのマイナスは他の利用可能な言語に比べて単純な型システムです。







PureScriptは非常に興味深い言語であり、本格的な関数型プログラミングに必要なものすべてがあります-清潔さ、型クラスです。 主な欠点は、言語がまだ若く、ベータ版であることです。 その結果、小さなコミュニティ、コードエディターの不十分なサポート。 jsでデフォルトのカリー化を使用して純粋な言語を翻訳する場合、コードはあまり最適ではなく、弱いモバイルデバイスで顕著になります。

これらの問題がリリースのためになくなると、jsの言語を変更するための最良のオプションの1つが得られます。







Scala(scala.js)-PureScriptほど美しく簡潔ではありませんが、より適切に生成されたjsコードが必要です+ IntelliJ IDEAで表される本格的なIDEがあります。 テストされたすべての言語の中で、このオプションは最も肯定的な印象を残したため、将来的に使用することが決定されました。







React Native(勝者)



コードもjsで記述されていますが、Cordovaとは異なり、インターフェイスはネイティブです。 scala.jsの場合、React Nativeサポートはsriライブラリに実装されています。 すべての粗さと落とし穴があるため、React Nativeは非常に前向きな印象を残しました。 実装プロセスでは、ほとんどの場合、Androidとブラウザの両方で機能します(Webバージョンが機能するためにreact-native-webライブラリが使用されました)。







もちろん、趣味のプロジェクトの技術の選択は商業開発の選択とは異なりますが、React Native + scala.jsバンドルはそれほど悪いオプションではなく、もっと面白いものが現れるまで焦点を当てると思います。







ゲーミフィケーション



最初は、一種の逆ゲーミフィケーションを使用して実験が行われました。 ゲーム化がゲーム以外のコンテキストでのゲーム要素の導入である場合。 この逆は、ゲーム以外の要素をゲームコンテキストに導入するプロセスと呼ぶことができます。 たとえば、古典的なゲーム(ランナー、ヘビ、ダンジョンクローラー)が実装され、単純な認知タスクのソリューションの形で非ゲーム要素が導入されました。 経験は興味深いことが判明しましたが、最終バージョンではまだエクササイズに焦点を移すことが決定されており、これにはプログレスバーとバッジを使用した古典的なゲーミフィケーションがより適しています。







ゲーミフィケーションを適用する目的は、既存の内部ゲームに対するトレーニングのさらなる動機付けをプレイヤーに提供することでした。







通常、これらは、たとえば次のような、これに使用できる人間のニーズの例を示します。









このサイトの最初のバージョンでは、ライバルオプションがすでに使用されていました。 競争システムとリーグを使用します。 しかし、実装はparse.comを使用し、サービスの閉鎖とともに忘却に沈みました。







そして、最初のアイデアはポンピングでしたので、開発の必要性が基礎となりました。







使用されるいくつかのメカニズムを強調したいと思います。







難易度

各エクササイズはレベルに分けられます。これにより、ワークアウトを複雑にするプロセスのスムーズさを確保し、他のメカニックを使用する場所を提供します。







進歩感

トレーニング中、プレーヤーは現在のレベルのプログレスバーを塗りつぶしますが、結果が良いほど、進行は速くなります。







目標設定

100%の進捗が達成されると、レベルアップモードが開き、プレーヤーは次のレベルに進むために一種の試験に合格するように設定されます。







フィードバック

エクササイズに合格する過程で、応答の音声信号は、プレーヤーが以前の結果と比較してどれだけうまくエクササイズを行っているかを理解できるかどうかによって異なります。







困難を克服する

定期的にプレーヤーに挑戦するのはいいことです。これには、演習がランダムに生成され、それを完了するために1回試行されるテストモードがあります。







流れ

タスクの複雑さと人間のスキルの最適な比率により、フロー状態が達成されます。 このゾーンに入ると、最適な心理的経験の状態が生じます。 これは次のように説明できます。













この考えに基づいて、スピードモードが実装されました。このモードでは、応答時間がプレイヤーの回答に合わせて徐々に調整され、複雑さがスムーズに増加するため、プレイヤーをこのゾーンに入れようとします。







結果は自分でテストできます。 フィードバックをいただければ幸いです。








All Articles