BlogKLabは、多くのスマートフォン向けゲームを開発・提供しています。スマートフォン向けゲームの開発と運用は、Webソーシャルゲームと比べて格段に複雑で、またコンシューマゲーム開発とも異なったノウハウが求められる領域もあります。このブログでは、KLabのゲーム開発・運用の中で培われた様々な技術や挑戦とそのノウハウについて、広く紹介していきます。KMSについて、そのサーバサイドの構成を紹介したいと思います。チャットシステムを手軽に実現するための、SaaS型サービスとして企画されました。システムを複数のゲームアプリが利用することが前提にありました。汎用性を常に意識して設計しています。チャットに関するもの以外のデータ、例えばゲーム内のギルド情報などのデータは扱いません。NGワードなどのチャット機能に必要なデータは、利用ゲームごとに個別に保持し、必要に応じてゲームサーバから更新できるようにしています。メッセージをやりとりする場であるチャンネルを軸としたチャットシステムです。ユーザは特定のチャンネルに所属することで、そのチャンネルに対して発言することができるようになり、また同じチャンネルに所属する他のユーザが発したメッセージを受け取ることができます。ユーザが発言したメッセージは、リアルタイムに他のユーザに転送されます。チャンネル構成は、KMSを利用するゲームアプリ次第です。個人チャットなどの用途が考えられます。ゲーム内で使うためのチャットシステムですので、クローズドなチャットです。サーバに接続する際は、ユーザ認証を実施する必要があります。自体では生成せずに、ゲームサーバ側から受け取る形にしています。サーバサイドの主要部分は、次の4種類のサーバで構成されています。クライアントアプリが接続する先のサーバです。