ゲームエンジニア必見!f4samuraiの語る「方式設計」、geechsの語る「バージョン管理」

先日geechsマガジンが送る技術イベント「TECH VALLEY#7」が開催されました。テーマは「セールスランキング上位の人気ゲームを支える技術」!今回も定員を超える多くの方にご参加いただきました。人気ゲームを開発する現場の、フロントエンド・バックエンド・開発体制まで幅広く一挙に知ることができる勉強会の様子をレポートします!

20160224_2

オープニング

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

20160224_1

 

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

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

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

20160224_nakanishi

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

 

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

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

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

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

 
チェックサムは、ひとつのデータからひとつの値が導きだされるので、全リソースのチェックサムの値を各リソースと紐付けてマスターテーブル上で管理します。リソース配信用の特定フォルダにバージョンアップするリソースをアップロードすると、管理画面からボタンひとつでチェックサムの値が算出され、マスターテーブルが更新されます。そしてローカルでのリソース取得する際、サーバー上のチェックサムの値とキャッシュのチェックサムの値が一致しない場合、そのリソースを更新します。こうすることで、バージョン管理自体を考えなくて済む状況を実現しました

チェックサム/MD5とは
データの信頼性を検査するために、ある計算方式から導き出された値であり、ダウンロードしたデータが、壊れていたり、改ざんされていたりしないかをチェックするために利用します。MD5は、あるデータから元の値とは異なる数値を得ることができるアルゴリズムの一種で、広義のチェックサムのひとつと考えていて、32桁の16進数を取得します。

 
また、黒歴史と語った様々な失敗は、全てのリソースのバージョン管理を一つのテーブルで行うことで解決しました。
 
バージョン管理について具体的な課題解決が聞くことができました。現在ギークスでは、昨年12月に発表した新キャラクタープロジェクト「カクテル王子」のスマホゲームの2016年秋リリースを目指して鋭意開発中。これまで人気ゲームの開発・運営で培ったノウハウを生かしたオリジナル新ゲームにも注目したいところです。
 

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

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

20160224_matsuno

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


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

 
一般的には新しく革新的な技術を採用すると注目されがちですが、f4samuraiでは成熟され、メンバーのスキルセットにあった技術選定を行っています。それは、松野氏が前職で教えられた、新業界、新顧客、新技術、新PM、新パートナーの”5つの「新」によるリスク”の考え方によるものです。新たなプロジェクトを始動させるとき、このうち3つ,4つと新しいものが多くなりすぎると、プロジェクトが破綻する危険性が高まるといいます。プロジェクトによってチャレンジが可能な領域を正しく把握した上で挑戦すべきだそうです。

また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


最新情報はFacebook/Twitterをフォロー!


関連する記事

facebook

案件情報や最新記事をお届けします。
ぜひチェックしてみてください。