BlogKLabは、多くのスマートフォン向けゲームを開発・提供しています。スマートフォン向けゲームの開発と運用は、Webソーシャルゲームと比べて格段に複雑で、またコンシューマゲーム開発とも異なったノウハウが求められる領域もあります。このブログでは、KLabのゲーム開発・運用の中で培われた様々な技術や挑戦とそのノウハウについて、広く紹介していきます。SDK』を開発しています。SDKを利用することでゲーム開発者はゲーム特有機能の開発のみに注力することができるため、開発スケジュールの短縮及び開発コストの削減並びに開発品質の向上が期待できます。Service(以下KMSと略称)』を紹介したいと思います。SaaS型サービスKMSは、チャットシステムをアプリに容易に実装可能にするSaaS型サービスです。サーバサイドの運用はKMS運用チームが担当しているため、KMS利用者はチャット機能の開発のみに集中することが出来ます。KMSではサーバAPIとクライアントAPIを提供しており、ゲームサーバ及びゲームクライアントはそれぞれサーバAPI、クライアントAPIを利用してチャット機能を実装することになります。SDKでKMS用のクライアントライブラリ(Unityのみ対応)も提供しているため、アプリへの導入も容易となっています。※KMSを利用するためには事前にKMS運用チームが発行するアプリコードとアプリキーを取得しておく必要があります。自由なUI設計チャットのUIを利用者側で自由に設計できます。KMSを導入することでゲームの世界観を壊す心配はありません。自由なチャンネル設計KMSでは以下2種類のチャンネル作成機能を提供しています。KMS側でチャンネル参加可能人数を2人までに制限しています。そのためダイレクトチャット以外に使用できません。KMS側で何も制限していません。参加可能ユーザなど制限を設ける場合は、利用者側で制限する必要があります。上記の通り、ユーザ自由参加型チャンネルは利用者で自由に設計可能ですのでワールドチャット用チャンネル同盟チャット用チャンネルゲームキャラクター情報交換用チャンネルステージ攻略情報交換用チャンネルのように様々なチャンネルを作成することができます。全体お知らせ用チャンネル個人お知らせ用チャンネルのようにチャット目的以外にもKMSを利用することができます。メッセージデータのフォーマットを自由に設定可能KMSではメッセージデータのフォーマットを制限していません。平文だけでなく、JSONメッセージ等を登録しておくことで、豊富なチャット表現が可能となります。発言内容の他に文字色やフォントを含める場合、以下のようにメッセージデータを登録できます。発言のフィルタリングフィルタリング用のワードを事前に登録しておくことで、発言をフィルタリングすることが出来ます。フィルタリングオプションを用いることで、より高機能なフィルタリングを提供しています。KMSを利用したチャット開始までの流れ以下のステップでチャットを開始することができます。事前準備として、アプリコード・アプリキーの発行をKMS運用チームに依頼します(1)【ゲームサーバ】ユーザ作成ユーザ名や認証キー等を設定してKMSユーザ(※)を作成します設定情報は『手順(4)KMSサーバにログイン』で使用するため、事前にゲームクライアントに送信しておく必要があります※KMSユーザとは、KMS側が管理するユーザのことです。ゲーム内ユーザとKMSユーザとを1対1で紐づけてください。スタンプ以下2種類のスタンプ機能を提供しています。全ユーザ利用可能なお、KMSが保持するのはスタンプのIDのみで、スタンプの本体画像等は利用者側で保持・管理する必要があります。データベース検索機能ユーザ検索機能チャンネル検索などの機能を提供しています。※KMSはGroongaという全文検索エンジンと連携しており、高速な全文検索を提供しています。Groongaについてはこちらを参照ください。NGワードランキングNGワード発言数やNGワード発言ユーザを、ランキング形式で取得することが出来ます。利用例としてはNGワード発言回数が多いユーザのアカウントを凍結するなどが挙げられます。発言に含まれる単語をホットワードとして抜粋し、ランキング形式で取得することが出来ます。発言回数が多い施策名の集約などのユーザ分析が挙げられます。ホットワードの抽出には形態素解析エンジンMeCabを利用しており、解析結果が『名詞』の単語を登録しています。解析結果は辞書情報に依存するため、利用者の要望通りのホットワードが抽出されない可能性があります。そこで、KMSでは利用者が任意でカスタマイズできるユーザ辞書設定機能を併せて提供しています。『KLabの天クラってゲームおもしろいよー』と発言した場合、デフォルト辞書のみだと『天』『クラ』『ゲーム』がホットワードとして抽出されますが、ユーザ辞書として『天クラ』を登録しておくことで『天クラ』『ゲーム』がホットワードとして抽出されるようになります。※MeCabについてはこちらを参照ください。リアクション機能チャットにリアクション機能を追加することが出来ます。画像データ等のリアクションに関する設定情報は利用者側で自由に設定できるため、facebookの『いいね』やslackの『リアクション』機能など、任意のリアクション機能を実現可能です。翻訳サービス発言済みのトークを各種言語に翻訳することが出来ます。Translator等の外部APIを利用して翻訳しており、外部APIの契約は利用者側で実施する必要があります。Translatorのみです。Translatorについてはこちらは参照ください。S3上にアップロードすることが出来ます。ゲームのキャプチャ画面アップロードをチャットに組み込むことで、チャットをより活性化させる事ができます。S3の契約は利用者側で実施する必要があります。SDKの提供もしています。SDKに関するお問い合わせにつきましてはこちらをご覧ください。