1. サイトTOP>
  2. 【CEDEC 2014】『剣と魔法のログレス』 スマホ時代のMMORPGを支える技術に迫る

【CEDEC 2014】『剣と魔法のログレス』 スマホ時代のMMORPGを支える技術に迫る

2014-09-02 22:21 投稿

『ログレス』のさまざまな技術をAimingの開発陣が語る

2014年9月2日~4日にかけてパシフィコ横浜にて開催されている、日本最大のコンピュータエンターテインメント開発者向けカンファレンス“CEDEC 2014”。本記事では、その初日に行われたセッション“『剣と魔法のログレス いにしえの女神』 ~スマホ時代のMMORPGを支える技術”の模様をお届けする。

『剣と魔法のログレス いにしえの女神』の開発を手掛けるAimingの神部公輔氏(クライアントエンジニア)、山藤智之氏(リードエンジニア兼サーバーエンジニア)、西村哲弥氏(クライアントエンジニア)の3名が登壇した本セッション。スマホでMMORPGという巨大なコンテンツをいかにしてアプリ内に詰め込んだのか? クライアントとサーバーの側面から、その技術について語られた。

[関連記事]
※剣と魔法のログレス いにしえの女神攻略まとめwikiはこちら

クライアントに求められた要件を解決するための開発環境

「スマホで遊べるオンラインゲームをリリースしたい」という思いからスタートした『剣と魔法のログレス いにしえの女神』。もっとも重要だったのは「早くリリースすること」(神部)。すでにブラウザ版『剣と魔法のログレス』という財産はあったので、そのブラウザ版を移植することで早くリリースできると考えた。しかし、サーバーは使いまわせても、クライアントについてはブラウザからアプリになるため、新規開発が必要。そこで求められたのが下のスライドだ。

これらの要件を実現するために採用した開発環境が、Cocos2d-xという2Dゲームを作るためのフレームワーク。神部氏曰く、Cocos2d-xを使うメリットを

・クロスプラットフォーム開発のサポート
・2Dゲームフレームワーク
・ソースが公開されている

とし、Objective-CベースでC++に移植されているのでC++の文化と違う部分でコーディングが面倒であること、UIのサポートが弱いことをデメリットと説明。しかし「デメリットはあるが、MMORPGが作れないというものではないので、あまり大きなデメリットとは思わない」(神部)と加えた。

MMORPGに必要不可欠なリアルタイム通信

MMORPGにとって非常に重要なリアルタイム通信の要素として、紹介されたTCP通信とRPC。同社の内製ネットワークライブラリは、そのふたつの要素をサポートしている。

TCP通信のサポートはブラウザ版『ログレス』でもおなじものを使用。RPCのサポートはIDLからRPC定義を生成するツールを内包しているとのこと。

併せてゲームアセットとゲームデータとの違いにも触れ、

・ゲームアセット……音楽や画像、アニメーションなどはクライアント側が使用。
・ゲームデータ……AIやレベルテーブル、アイテムデータなどはサーバーが使用。

と説明。では、ゲームロジック(ゲーム進行のアルゴリズム)はクライアントとサーバーのどちらが処理するのか? 移動制御やアタリ判定といったゲームロジックはクライアント側ではほぼ実装されていないそうで、すべてサーバーで行われているとのこと。ゲームサーバーがつねに正しい状態で、正しい情報を持っていることが、MMORPGには必要というわけだ。

ただし『ログレス』では、タッチした場所を探索して移動するアルゴリズム等をクライアント側で行うなど分散処理をして、サーバに負担をかけないようにする場合もあるという。

ちなみに、本作におけるサーバー構成とデータの流れは以下の通り。

サーバー構成の概念図とデータの流れ

サーバー構成の概念図の中の”WebAPI”は、特殊な存在のサーバー。ゲームとクライアント間で小さなデータのやりとりとは別に、大きいデータをやり取りする際の経由先としてWebAPIは存在するとのことだ。

チャットシステムで求められた要件

リアルタイム通信と並んでMMORPGの肝といえるチャットシステムに求められた要件は、

・可能な限り過去までさかのぼってログを見れる
・自分がオフライン中の間に、他プレイヤーが発言したメッセージもログで見れる
・グループチャットができる

の3点。過去のログについては、データベースに1ヵ月程度のログを保持することで、オフライン中の他プレイヤーのログもデータベースに保存してクライアントからWebAPI経由で取得することで、それぞれ実現させた。

そしてグループチャットに関しては、下の写真のようなフローで行っているとした。

直面した問題と今後の課題

最後に『ログレス』開発の中で直面した問題について。まず3G回線でのゲームプレイだが、「具体的な対策はない」としながらも大きな問題はなく動いた。また、回線切断の問題については、ブラウザ版『ログレス』のページリロード対策のノウハウがあったため、本作でも応用することで解消したという。

サーバーは資産である過去の実装をそのまま使いまわす必要があったが、設計が合わない部分でサーバーに高負荷がかかる問題も生じたが、こちらはバックエンドをスケールアウトできるように修正して対応したという。

今後の課題については、早期リリースを目指したため突貫で作ったため、クライアントのパフォーマンス・チューニング、クライアントの安定化などを挙げ、改善を目指していくという。

最後に神部氏は、「サービス開始からまだ1年経っていないですが、今後もいろいろと改善を重ねていき、(来年)この場でより深い話ができればと思います」と語った。

ピックアップ 一覧を見る

最新記事

この記事と同じカテゴリの最新記事一覧