#オンラインで各プレイヤーを表示できるようにした話
RPGツクールMVでオンライン通信してアバターを表示するプラグイン作りました。
サンプルもありますのでまずは実際に具合を確かめてみてください。(IEでは動きません)
##どうやってるの?
Firebaseというサービス(BaaS)を活用してオンライン通信をサポートしています。
ですので自分でサーバーの設置、設定とか複雑なことを考えずに簡単にネット通信を利用したゲームを作ることができます。
このサンプルはゲーム性もないただのチャットルームに過ぎませんが、あなたがその気になればMMOからソシャゲまであらゆるオンラインゲームが作れるでしょう!!
…本当は「これさえあればあらゆるオンラインゲームを作れます!」ぐらいのことを言えるプラグインにできれば良かったんですが、とりあえずアバター機能(+拡張機能)だけで公開してみました。
(追記:これに加え、特定の範囲のスイッチ・変数を全プレイヤーで共有して同期する機能を付け加えました)
まあこれだけでも結構なことができると思いますし、プログラミング(JavaScript)を勉強してプラグインを自力改造するという手もあるので、現時点でもあらゆるオンラインゲームが作れるというのは嘘ではないハズ…
**「手軽な」あるいは「ツクール製の」「オンラインゲーム作り」**に興味が有る方はとりあえずお試しください!
##使い方
この章以降の内容はサンプル内の「石版」にも書かれてるので片方読んでくだされば結構です。
というか石版の方が説明が丁寧な気がする…
- 本プラグインをダウンロードして自分のゲームに配置
- Firebaseの公式サイトで、Googleアカウントを(持って無ければ)取得し、「新規プロジェクトを作成」する
- 「ウェブアプリにFirebaseを追加」ボタンを押してプラグインパラメータにappID、authDomain、databaseURLをコピペ
- 左メニューから「Auth」→上部から「ログイン方法」→「匿名」を有効にする
- ゲームをプレイすると同時にプレイしているすべてのアバターが表示されます
##応用編
本プラグインには実はサンプルのようなチャット機能(とジャンプ機能)はついてきません。
これは本プラグインの拡張機能を活用して実装しています。
サンプル内の「使い方:中級編」という石版で詳しく書かれてるのでそっち見てください。
…手抜きじゃないですよーツクール内だとアニメーション使えるので説明しやすいんです~(手抜き)
##Milkcocoaではダメだったのか
「ツクールとBaaSで手軽にオンラインゲームを!」というコンセプトの草分けといえばRPGツクールMVでMilkcocoaを使うでございましょう。
しかし同氏のRPGツクール用のMilkcocoaプラグインを改造して実際にゲームを作ってみたところ
残念ながらMilkcocoaの無料枠の上限が近すぎて趣味レベルですら実用に耐えなかったので、
それならともっとふさわしいBaaSを探した結果Firebaseにたどり着きました。
この2つ以外のBaaSは私の雑な調査によるとそもそもリアルタイム通信(というかpush型通信)がサポートされてないのでソシャゲはともかくネット対戦とかMMOは無理だと思います。(間違ってたら編集リクエストください)
サンプルはまだゲームと言える代物ではありませんが、それでもこれだけの人数が集まっても重くならず上限にも達さずに運用できたということで本プラグイン(というかFirebase)には確かな実用性があると思います。(ちなみにFirebase無料枠の最大同時接続人数は100人、Milkcocoaの無料枠は20人です)
#本題:Firebaseでオンラインゲーム作りに入門しよう!
さて、以上でお示ししたようにFirebaseの底力(の片鱗)、なんとなくわかったいただけたんじゃないでしょうか。
今までオンラインゲームの類を作るなら必要だった「(実物の、もしくはクラウドの)サーバーの用意、管理」などをまったく考えずに手軽に通信できるFirebaseの利用は、飛躍的に個人レベルでの難易度、勉強量を緩和したと思います。(まだドキュメントとか英語なので英語力は必要ですが(追記:2016/10/23)いつの間にかFirebaseのドキュメントが日本語化されていました。これでもう僕らのオンラインゲーム作りを阻むものはありませんね!)
「アバター機能なんていらねえからこんなプラグイン使わねえよ!!」という方もオンラインゲームを作る時はまずFirebaseの利用から検討してみてはいかがでしょうか。
本プラグインでは使ってませんがFirebaseには他にもユーザー認証やセキュリティなどの機能もあり、ゲーム作りする上で困るような機能不足は無いように思います。
そもそもFirebaseはゲーム向けに進化してきたBaaSであるという話も聞きます。
これはひょっとすると…会社や組織では無い、個人レベルの趣味で簡単にオンラインゲームやソシャゲが作れる時代が到来したのではないでしょうか!?
「オンラインゲーム作りの入門編」としてツクール+Firebaseの組み合わせ、高らかに提案させていただきたい!!!