backend(mBaaS)。エヴァンジェリストの一條です。backend)の利用事例をお聞きするこのコーナー。backend」をスタートしまして、今後はこちらにご登録いただいたアプリをピックアップしてメールインタビューを行っていきたい次第です。Itoh(@twobartha)さんにお話を伺いました。はやくい!」は、その名のとおり、テレビのクイズ番組などでおなじみの早押しクイズができるゲームアプリです。画面に少しずつ表示されていく問題文を読み(または読み上げられていく問題文を聞き)、分かったところでボタンを押して解答権を得て、正解を答える、というスタイルのクイズを遊ぶことができます。6段階の強さのコンピューターを相手に遊ぶ1人用モード、1つの端末を使って2~4人で遊ぶローカル対戦モード、同時に接続している他のユーザーと最大4人対戦ができるネット対戦モードがあります。派手な演出やストーリーはなく、気軽に早押しクイズを楽しめるアプリ、というスタンスで作っています。「早押しクイズ」という遊びには、その名の通り「早く押す」という要素があります。答えが分かっていても、押すのが相手より少しでも遅かったら解答権が得られません。このため、早押しクイズで強い人に勝つためには、知識量のほかに、いかに早く、答えが導き出せる限りで最速のポイントで押せるかが重要なポイントになります。「はやくい!」では、ネット対戦でもローカル対戦でも、答え合わせの際に、解答権者が問題文のどこまで読まれた時点でボタンを押したかがスラッシュ記号(「/」)で明示され、どのポイントで押されたのかが分かりやすくなっています。1人用モードについては、問題データにいわゆる「確定ポイント」(競技クイズなどで使われる用語で、問題文中でそこまで読まれれば答えが確定するといえる場所のこと)の概念を導入することで、コンピュータープレイヤーによる押し方に説得力を持たせようとしています。自作の問題を出題させることもでき、早押しクイズが好きな方がクイズの練習をするのにも使えます。本作の開発環境と、併用している他のサービスがあればお教えくださいAndroid版はJava、iOS版は主にSwiftで書いています。開発を始めた頃はiOS端末もmacも持っていなかったため、特にクロスプラットフォームなど考えずに作り始めてしまった、といったかたちです。Azureを利用しています。前者は実績とネット対戦、後者はマッチングと掲示板のような処理に使い、NCMBはこれを補完するかたちで利用しています。backendをお選びいただいた理由は昨年、iOSアプリのHTTPS接続が必須になるということで、従来使っていたHTTPSの使えないレンタルサーバーから別のサービスへの乗り換えを検討しました。その際、個人開発ゲームでの採用実績があり、導入が簡単だという話題をちらちら見聞きしていたNCMBを触ってみることにしました。日本の会社によるサービスでドキュメントやコミュニティが充実していそうだったことや、昔NIFTY-Serveを使っていたためニフティさんには愛着があった、というのも理由の一部です。実際に少し触ってみて、導入も楽で、さしあたりBasic(無料プラン)の範囲で十分使えそうだということで導入を決めました。現在のところBasicプランで運営できています。「データストア」はどのようにご利用いただいていますか?クイズの問題データの配信状況、アプリの最新バージョンやサーバーの稼働状況などの情報をアプリ側に伝えるために利用しています。Services)で行い、データストアはマッチングサーバーを利用できるかどうか(アプリのバージョンが条件を満たしているか、サーバー側の準備ができているかなど)の情報を得るために利用しています。「ファイルストア」はどのようにご利用いただいていますか?ファイルストアにクイズの問題データを置いて、問題データ更新の際にそちらからダウンロードするようにしています。現在は使っていない機能のうち、今後使いたい機能はありますか?会員管理機能とACL機能です。backendでできるならいろいろ実装できそうかなと思っています。導入した際に分かりにくいところ、詰まったところはありましたか?Android版は特に詰まるところなく、カンタンに導入できたと思います。iOS版については、、Swiftでの実装のしかたを調べるのに少々手間取ったような記憶があります。筆者補足:現在ではSwift3に対応したサンプルを充実させています。backend使って実現できたゲームシステムで、ほかの開発者さんにお勧めしたいものはありますか?まだまだ十分につかいこなせていませんが、適宜更新するようなデータをファイルストア+データストアで配信すると、更新作業が非常に楽かつ安心でオススメです。現在のアプリのアピールや、次回作の宣伝等ありましたらお教えください。「はやくい!」は3年前、当時使っていた端末を基準に作りはじめたアプリですので、多少古い端末でもストレスなく遊べると思います。クイズ番組が好きな方、競技クイズが好きな方、ぜひ一度遊んでみてください。Azureとの併用、という珍しいパターンでした。backendはリアルタイム対戦ゲームは苦手ですが、こうした他のサービスと組み合わせての利用ももちろん可能です。今回は、「サーバーの状態を受け取るためにデータストアを使う」という点がユニークに感じました。言い換えれば設定ファイル置き場のようにご利用いただいているわけですね。逆にファイルストアは、UGC(ユーザージェネレイテッドコンテンツ)機能の充実のために利用されているということで、こちらも面白い使い方です。以前ご紹介した自作サンプルでは、ユーザーが作成したステージデータをデータストアに保存する方法をとりました。場合によってはステージの配置情報をバイナリデータにしてしまってファイルストアに格納するやり方の方が、スクリプトからは扱いやすくなるかもしれません。Service)とは、スマートフォンアプリでよく利用される汎用的な機能をSDKとクラウドから提供するサービスです。backendのちょっと便利な使いかた・非公式SDKやアプリ開発の関連情報などをお届けするブログです。※記事内には、サポート対象外の内容も含みます。本ブログではコメント機能を公開しておりません。アプリ開発を行う上での課題解決には、ユーザーコミュニティやもくもく会などもご活用ください。LIMITEDスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。