[Unity]Kii Cloudでサーバーサイド構築 part.1

フレンド機能や各種イベントなど、スマホのインディーズゲームでもちょっとあると「おっ」っと思わせることが出来ると思います。
とはいえ、そんな簡単な話ではなく、たとえ自分でRuby on Railsだとかnode.jsなどでサーバーサイドプログラミングが出来たとしても、インフラの整備などの手間が大きいように感じます(私がそっち方面に疎いだけってことでもありますが・・・)

そこで、最近良く耳にすることが多くなったBaaSというもので、サーバーサイドを構築してしまおう。というのが今回の話です。
調べつつーの記事書きつつーのでやっていますので、もしかしたら間違っていることもあるかもしれませんが、その時はそっと教えていただけると助かります。

※私のtwitterアカウントはこちら
https://twitter.com/LycoRadi

BaaSとは

Backend as a Serviceの略で、バックエンド(スマホアプリなどのクライアントに対するサーバー。ユーザーに直接触られることがない、クライアントを支える部分、とでも言ったらいいでしょうか)を提供するサービスで。
簡単に言えば、サーバーサイドでよく使われる機能をまるまる用意してくれています。
つまり、BaaSを使えば特別な処理が必要でない限りサーバーサイドの構築をすべて任せられる、ということですね。

主な機能として

  • ユーザー管理
    登録、認証などなど
  • プッシュ通知
    たとえば「冷やし中華はじめました」と通知すると、ピロン!とインストールしている人全員にメッセージが出るアレ。
  • データストレージ
    ファイルだけでなくデーターベースも含む
  • 分析
  • サーバー拡張
    javascriptなどで独自のAPIを組むこと

があります。
最悪、ユーザー管理に至るまでに数週間コストがかかると思うと、利用しない手はないですね。
制限はありますがフリープランがあるところがほとんどなので、ためしに導入してみる敷居はすごく低いです。
特にモバイル向けBaaSをMBaaSというようです。MはMobileのMですね。

BaaSといっても、Parse、appiaries、ニフティクラウド、Kii Cloudなどなど、いろいろありますが。
今回、私が選んだのがタイトルにもあるとおり、Kii Cloudです。

Kii Cloudについて

先ほども出たように、BaaSを提供してくださっています。
制限はありますが、無料でも利用することができるので、インディーにとっては嬉しい限りです。

Kii Cloudはこちら
http://www.kii.com/jp/technology

今回私がKii Cloudを選んだ利点としては以下のとおりです

  • 国産BaaS
    ドキュメントがほとんど日本語!
    もちろん日本サーバーもあるので快適なはず
  • 2013年10月8日にUnity対応!
    まさにタイムリー。
    REST API(直接HTTP経由で情報やり取りする方法。UnityではWWWクラス叩く)だけでも十分使えるとは思いますが、
    Unity用SDKが出たということで、Unity使いとしては嬉しいですね
  • もちろん無料
    正直言ってしまうと他のサービスよりもフリープランの制限はちょっとキツメかなという感もありますが、
    初心者の私はまず使ってみてモノを完成させることが重要なので贅沢はいいません

Kii Cloudにサインアップ

http://www.kii.com/jp/technology

  • こちらの公式サイトに行き、デカデカと表示されているサインアップボタンをクリック
  • 苗字名前、メアド、パスワードを入力してSignUpボタンをクリック

そうすると

You have not created any apps yet. Create a New App

と出て登録完了です。
入力したメアドにも、ようこそメールが来ています。

アプリの作成

表示されているとおり、アプリがまだないので作ってね。といわれてるので、作りましょう。
ココでいうアプリは、Unityプロジェクト作ってあるかなどは関係なく、Kii Cloud上での管理単位的な意味でのアプリですね。

  • Create a New Appをクリック
  • Create An AppのApp Nameにアプリ名を入力
    アプリ名は日本語でも大丈夫そうです。あとから変更も可能できました。
  • Server Locationを日本に
  • プラットフォームのUnityアイコンのところをチェック
    あとからでもプラットフォーム編集できるそうなので、たぶんいらんもの付けたり間違っても大丈夫
  • Createボタンをクリック

すると

Congratulations! Your App has been created.

と表示されて完了です。

同じ画面で、プラットフォームごとのSDKがダウンロードできるので、
ここでUnity用SDK一式をダウンロードします。
ちなみに2013年10月12日現在の最新版は

  • Cloud SDK v1.1
  • Analytics SDK v1.1

のようなので、この二つをDLすればOKですね。
また、Readmeは更新情報が書いてあるだけでした。

Unityプロジェクトにインポート

さっそくDLしたSDKをプロジェクトに入れてみましょう。

  • Assetsフォルダの適当な場所(適当にKiiCloudフォルダ作ったり)にPluginsフォルダを作成(念のためPluginsに入れておく)
  • KiiCloudStorageSDK.dll、KiiAnalyticsSDK.dll、JsonOrg.dll(同じのが入っているのでどちらか片方)をそのフォルダに突っ込む
  • EditメニューからProject Setting/Playerをクリックし、Other SettingsのInternet AccessをRequireに

Kii Cloudの初期化

ここから実装していきます。
まずは、Kii Cloud関連をラップして制御管理するKiiCloudManagerクラスを用意します。

using UnityEngine;
using System.Collections;

using KiiCorp.Cloud.Storage;
using KiiCorp.Cloud.Analytics;

public class KiiCloudManager : MonoBehaviour
{
	[SerializeField] private string _AppID;
	[SerializeField] private string _AppKey;

	void Awake()
	{
		string deviceID = SystemInfo.deviceUniqueIdentifier;

		Kii.Initialize( _AppID, _AppKey, Kii.Site.JP );

		KiiAnalytics.Initialize( _AppID, _AppKey, KiiAnalytics.Site.JP, deviceID );
	}
}

※deviceIDのためにSystemInfo.deviceUniqueIdentifierを使用しています。もし気になる場合は他の方法に置き換えるようにお願いします。
ちなみに、deviceUniqueIdentifierを使うと、Androidの場合、パーミッションにREAD_PHONE_STATEが追加され、アプリインストール時に「電話/通話 携帯のステータスとIDの読み取り」の表示が出ます。

新たにGameObjectをシーンに作成し、さきほどのKiiCloudManagerをアタッチします。
KiiCloudManagerすると、このようにAppIDとAppKeyを入力する欄が出るので、

KiiCloud上のApps→登録したアプリをクリック、右上にあるAccessKeyをクリック。
AccessKeyApp IDとApp Keyをコピペ

これでKii Cloudを使える状態にまで持ってこれました。

今回は以上です。
次回からはユーザーの管理部分を見ていこうと思います。


別件ですが、Twitter連携を導入いたしました。
記事投稿すると私のアカウントでつぶやかれるようになりましたので、良かったらフォローお願いします。

※twitterアカウントはこちら
https://twitter.com/LycoRadi

かなり前に放置したままだったアカウントなので、ツイート内容はお察しくださいw

Unityのアセット販売中!

Arbor 3

ステートマシンの状態遷移やパラメータはエディタで編集でき、
ゲームロジックに依存するステートの挙動はスクリプトで記述可能なエディタ拡張。

詳細はこちら

Nostalgia 2

RPGツクールVXやWOLF RPGエディターのオートタイルに準拠したエディタ拡張。

詳細はこちら

オススメ!


Privacy Preference Center

Your Privacy

This site uses cookies to display contents and advertisements tailored to users, provide social media functions, measure advertisement impressions and clicks. We also gather information on users' site usage status and provide them to social media, advertisement distribution and data analysis partners. Each partner may use this information in combination with other information that the user provided to each partner or other information gathered when the user used the service of each partner.

Analytics, Ads