レスポンスモンスター(EC学会企画)

Fri Jun 01 2018

title

概要

企画

エンタテインメントコンピューティング学会2017オーガナイズドゲームという企画に研究室B2で出ました。

サイト: resmon.online

内容

学会内チャットをゲーミフィケーションでより活発化できないかと考え、コメントやいいねリアクションをするとカルマがたまり、ゲーム画面にモンスターが召喚できるというようなゲームを作成

今まで、あまりチャットしていない人(消極的な人)に参加してもらうため、チャットへの三種類の参加方法を作成

担当

チャットシステム部分・ユーザデータ管理などWeb関係全般

ゲーム部分は他メンバーがUnityで作ったものと通信して実装

詳細

チャット部分

チャットシステム画面

chat_screen_explain

積極的にComment Star Responseをして学会を盛り上げると素材や経験値が手に入るシステム

ゲーム部分

モンスター作成画面

make_robot_explain

まだ発見していないモンスターは自由に素材を組み合わせて作って見ることができる

  • たくさんモンスターを作って図鑑を埋めるのがゲームの目的
  • 失敗した場合は弱いモンスターができる

対戦部分画面 game_screen_explain

  • ホーム画面下部に常に対戦している画面が配信されている
  • 学会の1階と6階に対戦画面が映し出されている画面を配置して、対戦状況がライブ中継された

使用した技術

Webページ

gopher

Vue.js + Echo(Golang) + mongoDB でSPAアプリケーションを作成

運用は自前で借りたVPSで動かした

チャット部分に関してはWebsocketで通信し、それ以外の部分はapiを叩いてajaxで取ってくる仕組み

  • 接続したURLに応じて、チャットルームが自動で開設される

    • パフォーマンスが許す限り無限にチャットルームが作れる(はず)
    • 実際に学会で必要だったのは5個のチャットルーム程度だったのであまり意味がなかった
  • チャット、レスポンスは同時接続者60人程度でほぼ一瞬で送ることができた

ゲーム部分(Webとの連携)

unity_logo

  • Unityで作成したものからポーリングして、新しいモンスターが作られていないかをチェック

    • この時、Golangのchannelがめちゃめちゃ便利だった
  • ゲーム内部でモンスター同士が戦い、ログを蓄積

    • その結果をJSONでPOST
    • 結果的に一つのUnityのゲームを通してオンライン対戦が実現できた
  • リアルタイムに表示する部分を配信画面の埋め込みで対処したのは少し強引

    • 作成したモンスターを操作する必要がない為、不便を感じなかった
    • 通信量を食う問題は学会Wifiがあったので今回は問題なかった

感想

良かったところ

  • 学会に参加した先生方にプレイしていただけて非常に嬉しかった。

    • あの先生が俺のサイト開いてる!!! 的な嬉しさが半端なかった
  • 一定数のプレイヤーは用意したコンテンツやゲームをほぼ全て遊んでくれた

    • 図鑑の大半を埋めている人がかなりいた

悪かったところ

ゲーミフィケーションで消極的な人の参加を促せないかと考えたが、結果としては積極的な人をより積極的にするシステムになってしまった部分もある。

行動にご褒美を用意すると、もともと得意な人が当然のごとく有利になるため苦手な人は不利な状況から始まる。

単に何かしらのインセンティブを与えれば、消極的な人が積極的になるわけではないことを確認できた。

Thank you for reading!