ゲームエンジニア必見!f4samuraiとgeechsが語る「方式設計」と「バージョン管理」とは?「TECH VALLEY#7」イベントレポート

21cafe管理人はぎー&えりー


ゲームエンジニア必見!f4samuraiとgeechsが語る「方式設計」と「バージョン管理」とは?「TECH VALLEY#7」イベントレポート
※本記事は「geechs magazine」より転載・編集した記事です

先日、geechsマガジンによる技術イベント「TECH VALLEY#7」が開催されました。「セールスランキング上位の人気ゲームを支える技術」をテーマに、今回も定員を超える多くの方にご参加いただきました。

人気ゲームを開発する現場の、フロントエンド・バックエンド・開発体制まで幅広く一挙に知ることができる勉強会の様子をレポートします!

オープニング

20160224_1

開演時間には、すでに多くの方にお集まりいただきました。オープニングでは、主催のギークスからご挨拶。TECH VALLEYの開催をはじめ、フリーランスエンジニアのための案件検索サイト「geechsjob」の運営などギークスのエンジニア支援の取り組みについてご紹介しました。

「人気ゲームを支える技術」についてトークセッション

リソースのバージョン管理・運用の失敗談と改善策について

 
20160224_nakanishi

発表者: 中西 敦之氏(ギークス株式会社
ギークス株式会社のゲーム事業部開発1部部長として、ゲームアプリのフロント開発にコミットする組織を率いる。WEBエンジニアとしてキャリアを積み、フロントエンドを得意とする。ギークスに入社後は、業界でも早期のUnity導入に貢献。

ギークスで開発・運営するゲームアプリのリソース数は約3000にもなります。中西氏からは、膨大なリソースのバージョン管理で抱えていた課題と、その解決策についてをお話いただきました。
 

手動のバージョン管理がミスの温床に

以前の管理方法では、キャラクター、楽曲、動画など複数のマスターテーブルが存在しており、そのバージョンの更新は手動でおこなわれていました。複数のマスターの管理は複雑で、さらに手動であるがゆえに、更新漏れなど人為的ミスが多発してしまう課題がありました。

中西氏いわく、複数のマスターテーブルでの管理は「黒歴史」だったのだそう。バージョン情報が拡散してしまい更新すべきものが分かりづらかったり、各マスター毎にリソース再取得のトリガーを開発していたり、あるリソースが更新されると紐付いているリソースも必要がなくとも更新されてしまったり……。こういった数々の失敗を自嘲を含みながらお話しいただきました。

チェックサムを使い、バージョン管理を自動化する

チェックサムをつかうと、ひとつのデータからひとつの値が導きだされます。そのため、全リソースのチェックサムの値を各リソースと紐付けてマスターテーブル上で管理したそう。リソース配信用の特定フォルダに、バージョンアップするリソースをアップロードすると、管理画面からボタンひとつでチェックサムの値が算出され、マスターテーブルが更新されます。

そしてローカルでのリソース取得する際、サーバー上のチェックサムの値とキャッシュのチェックサムの値が一致しない場合、そのリソースを更新します。こうすることで、バージョン管理自体を考えなくて済む状況を実現しました。

チェックサム/MD5とは
チェックサムとは、データの信頼性を検査するために、とある計算方式から導き出された値です。データが壊れていたり、改ざんされていたりしないかをチェックするために利用されます。

MD5は、あるデータから元の値とは異なる数値を得ることができるアルゴリズムの一種で、広義のチェックサムのひとつと考えていて、32桁の16進数を取得します。

 
また、黒歴史と語ったさまざまな失敗は、全てのリソースのバージョン管理を1つのテーブルでおこなうことで解決しました。

現在ギークスでは、昨年12月に発表した新キャラクタープロジェクト「カクテル王子」のスマホゲームを、2016年の秋リリースを目指して開発しています。これまで人気ゲームの開発・運営で培ったノウハウを生かしたオリジナル新ゲームにも注目したいところです。
 

「オルタンシア・サーガ」開発の裏側

20160224_matsuno

発表者:松野 洋希氏(株式会社f4samurai
株式会社f4samuraiCTOであり、創業者の一人。大学院卒業後、株式会社野村総合研究所に入社し、2010年、会社の同期3人とともに株式会社f4samurai設立。サーバサイドプログラムをメイン領域に置きながら、ネイティブから社内インフラまで、社内の技術領域において全般的に携わる。

今回松野氏からはf4samuraiが企画・開発・運用する複数のゲームの中でも、現在人気を博している「オルタンシア・サーガ-蒼の騎士団-」の開発について、方式設計の観点から幅広くお話いただきました。

f4samuraiの技術選定のポイントと方式設計のポイント

一般的には、新しく革新的な技術をつかうと注目されやすいアプリゲームですが、f4samuraiでは、メンバーのスキルセットにあった技術選定をおこなっています。それは、松野氏が前職で教えられた、新業界、新顧客、新技術、新PM、新パートナーの「5つの『新』によるリスク」の考え方によるものです。

新たなプロジェクトを始動させるとき、新しいものが多くなりすぎるとプロジェクトが破綻する危険性が高まるといいます。プロジェクトによってチャレンジが可能な領域を正しく把握した上で挑戦すべきだそうです。

またf4samuraiでは、「基本に忠実に作る」ことを大切にし、方式設計を重要視しています。システム用件・システム拡張方式・負荷分散方式・データ保持方式・アプリケーション処理方式・セキュリティ方式・運用方式・ネットワーク設計・ハードウェア設計・ソフトウェア設計・パラメタ設計といったことを方式設計時に考慮しています。

WebSocketサーバーの負荷分散方式

発表の後半では、方式設計時に考慮しているそれぞれに対し、実際どのように対応しているかお話いただきました。特に、多くのユーザーが利用することから重要視している負荷分散、とくに特殊なWebSocketサーバの分散の手法をご紹介します。

オルタンシア・サーガでは、対戦中ひとりのユーザーのアクション(攻撃やチャット機能上での発言など)を同じバトルに参加する他のユーザーに分配するのにWebSocketを採用しています。また、同じバトルに参加するユーザーは皆同じサーバに接続させていて、参加するバトルによってサーバーのホスト名を分け、負荷分散をおこなっています。

障害発生時には、Socketサーバーを監視しているBatchサーバーが障害を察知し、接続すべきSocketサーバーの変更をかけます。障害のあるサーバーへの接続は一度切れてしまいますが、再度トップページに戻ると正常なサーバーへの接続が可能になります。

オルタンシア・サーガでは、こうして、負荷分散と障害発生時の対応を両立させています。

その他にも、方式設計におけるノウハウを幅広くお話いただきました。f4samuraiでは現在新規タイトルが2本進行中で、3Dグラフィックスを使ったオリジナルタイトルも開発しているのだとか。今後のリリース情報にも目が離せません。

懇親会

20160229_0

イベント本編終了後は懇親会がありました。登壇者はもちろん、参加者同士でも交流を深めていました。

 
20160224_0

ビールやソフトドリンクの飲み物と軽食を交えての懇親会は、リラックスした空気で大いに盛り上がりました。それぞれのノウハウをシェアし合うことはもちろん、同じ技術領域に興味があるエンジニア同士が繋がる場となっていました。

次回のTECH VALLEYもお楽しみに!

TECHVALLEYは定期的に開催しております。是非、お友達をお誘いあわせの上、ご参加ください♪ TECH VALLEYの最新情報は随時このgeechsマガジンで発信しておりますので、引き続きgeechsマガジンも要チェックです!

これまでのTECHVALLEYはこちら

毎回大勢の方にお集まりいただき、大変ご好評いただいたこれまでの “TECH VALLEY” のイベントレポートはこちらです!

▼ZOZOTOWNを支える技術と開発体制 #techvalley1
▼クックパッド ヘルスケア事業への挑戦 #techvalley2
▼黒歴史だらけな技術的カオスからの脱却 #techvalley3
▼豪華な顔ぶれ!今話題の4社でグロースハックパーティ♪ #techvalley4
▼技術を持ったエンジニアだから出来る経営」とは #techvalley5
▼Sansan、Supership、Gunosyが語る!業界屈指の高トラフィックなWEBサービスを支える負荷対策#techvalley6

21cafe管理人はぎー&えりー
この記事を書いた人

関連記事