サイバーエージェントを支える技術者たち
第24回 進化を続けるソーシャルゲーム「モグ」(後編)
自分の料理を食べてもらったり,ほかのプレーヤが作った料理を食べたりして「レシピ」を獲得していくソーシャル“料理”ゲームとして,サイバーエージェントが提供しているのが「モグ」です。前編(第22回)に引き続き,このモグのプロジェクトに携わる鈴木恵美子氏と久保卓也氏,そして秋山卓見氏の3人にお話を伺っていきます。
多くのプレーヤを集めるモグのバックエンドシステム
ソーシャルゲームが従来のゲームと異なっている点として,サーバサイドで多くの処理を行うことが挙げられます。さらに人気ゲームとなれば,1度に多くのユーザがプレイするため,サーバ側の負荷は大変なものとなるでしょう。もちろん,人気ソーシャルゲームである「モグ」(図1)も例外ではありません。
それでは,「モグ」ではどういったシステム構成で稼働しているのでしょうか。モグのプロジェクトでシステムエンジニアを務める久保氏は,次のように話します。
「Tomcatをアプリケーションサーバとして利用し,WebサーバにはApache,DBサーバにMySQLという一般的な構成です。プログラミング言語としては,サイバーエージェントの多くのプロダクトと同様にJavaを使っています。ただ,一部ではRubyも活用していますね」(久保氏)
サイバーエージェントでRubyが使われるのは珍しいとのこと。採用した理由を伺ったところ,もともと開発を担当していたエンジニアが好きだったからということに加え,Javaよりもスピーディに開発できるメリットがあるからだと言います。
これまでの運用の中で苦労したことを伺うと,久保氏からMySQLの特定のバージョンで発生する問題に遭遇したという話が出ました。
「MySQL 5.0は,InnoDBのAUTO_INCREMENTが遅いため,同時接続数が100を超えたあたりから性能が急激に低下してエラーになるという問題がありました。具体的には同時処理数が100を超えはじめるとエラーを返すことがあるんですね。そこでとりあえずチューニングで回避しつつ,スタンバイ機を使ってMySQLを5.1にバージョンアップして回避したことがありました」(久保氏)
スマートフォンへの対応を積極的に進めるモグ
モグは携帯電話だけでなく,Android OSを採用したスマートフォンのWebブラウザを使ってプレイすることも可能です。ただ,携帯電話とAndroid OSでフロントエンドのソースを分けてしまうと,その後のメンテナンスに大きな影響が生じてしまいます。そこで端末の違いを極力バックエンド側で吸収するしくみなどが開発されました。
このAndroid対応で苦労した点として,秋山氏が語るのは端末の検証です。
「当時はまだ端末の数も少なく,5台程度の検証でしたがそれでも苦労しました。今はAndroid OSを採用したスマートフォンが増えているので,検証はさらに大変になりそうです」(秋山氏)
従来の携帯電話と同様,スマートフォンも端末によって画面サイズが異なるなど微妙にスペックに違いがあります。こうした課題に対し,どのようにしてスムースに端末検証を進めるかは,今後のソーシャルアプリの開発における課題の1つになるのではないでしょうか。
それぞれの担当者が語るモグのこれからと目標
ソーシャルゲームはリリースして終わりではなく,ユーザにより楽しんでもらうためにイベントを仕掛けたり,あるいはアイテムを追加したりといった作業が継続的に発生します。こうした運用面における難しさの1つとして,鈴木氏が挙げるのはパラメータの設定です。
「たとえばイベントを開催する際,そのパラメータをどう設定するかはいつも悩む点ですね。簡単だと飽きられてしまいますし,難しすぎるとユーザが最初から諦めてしまうということになりかねません。なので解析チームと相談したり,ユーザからのフィードバックを見たりしながら,常に試行錯誤しています」(鈴木氏)
また長期的には,現在のゲームにおいて一番のモチベーションとなっているモノの価値を再定義していきたいとのこと。こうした将来的な改善についても日々検討が行われていると言います。
最後に今後の意気込みについて伺ったところ,「ユーザが求めているものを常にスピード感を持って提供していきたいです」(鈴木氏),「スマートフォンのユーザでも気軽に遊べる環境を早く整えていきたいと考えています」(久保氏),「料理を食べるときの動きのかわいさなど,ビジュアル面では常に細部にまで気を遣ってこれからも開発を続けたいと思います」(秋山氏)と,それぞれの立場から熱い想いが語られました。
なお,現在はアプリ版のAndroid向けのモグを準備されているとのこと。こうした積極的に改善を続ける姿勢と絶え間ない努力が,多くのユーザを惹き付けている要因ではないでしょうか。
- サイバーエージェント公式エンジニアブログ
- URL:http://ameblo.jp/principia-ca
エンジニアの生の声を週替わりでお届け中!
サイバーエージェント, Ruby, ソーシャルゲーム, モグ, MySQL
サイバーエージェントを支える技術者たち
- 第32回 若手エンジニアのスキルアップを支援「エンジニアアカデミー」[前編]
- 第31回 秋葉原に集結した技術者集団Ameba Technology Laboratoryの役割を探る[後編]
- 第30回 研究課題レポート運営プロジェクト[後編]
- 第29回 研究課題レポート運営プロジェクト[前編]
- 第28回 秋葉原に集結した技術者集団Ameba Technology Laboratoryの役割を探る[前編]
- 第27回 プライベートクラウド構築プロジェクト[後編]
- 第26回 プライベートクラウド構築プロジェクト[前編]
- 第25回 MongoDB最前線! 効果的なシャーディングとバックアップ
- 第24回 進化を続けるソーシャルゲーム「モグ」(後編)
- 第23回 ファン待望のスマートフォン向けピグを開発!

