LoginSignup
2

More than 5 years have passed since last update.

【CEDEC2015メモ】いまどきのゲーム制作環境

Last updated at Posted at 2015-09-01

いまどきのゲーム制作環境
エディター群とそのバックエンド、開発スタッフ間のコミュニケーションの具体的な方法解説
http://cedec.cesa.or.jp/2015/session/ENG/3250.html

興味深いところのみ抜粋。

アセット共有

アセット共有で一番やっかいな問題は競合。

解決手段として以下が挙げられる。

  • ロック
  • ファイル分割
  • マージ

△ ロック

競合は避けられるが、ロック中は他の作業者の作業を止める可能性がある。

△ ファイル分割

ある程度の細分化は効果はある。しかし根本的な解決にならない。

◯ マージ

最終的にはやはりマージするしかない。

アセットマージ

ここでは自社でマージツールを作っているとのこと。
アセット自体も自社フォーマット。

アセットはマージしやすいXMLかJSONで作成。
マージする際は構文に気をつける事。

マージツール

ファイルでは無く操作リストをマージする。

元ファイル 自分が編集したファイル 他人が編集したファイル マージ後のファイル
base mine thier result

競合が発生した場合はは以下のフローでマージ。

  • baseにmineの操作リストを反映
  • baseにthierの操作リストを反映

コンフリクト

ユーザに選択させるのは難しいのでルール化する。
例えば、先出し優先など。
そうすればユーザは混乱しない。

バグでは無くまじマージを疑え

ユーザは自分がコミットしたものがおかしいとまずバグを疑ってくる。
エンジニアの工数を取らせないためにもまずマージを疑え。

テレメトリ

テレメトリとは遠隔測定法。
例えば、配布したアプリやツールの情報を測定したりすること。

ログをサーバに保存する。

NASにテキストとして保存するのは問題がある。

  • アクセスが限定される
  • 可読性が悪い
  • ログはフォーマットがそれぞれ異なる場合がある

データベースに保存

RESTfulAPIでJSONを送信しMongoDBに保存する。
ビューワを作成し可読性を高める。

送信する例
・クラッシュレポート
・データ収集

安定した環境の提供

安定した環境を提供しないとにどうなる?
A. 問題が発生して開発が止まる

CI(継続的インテグレーション)の導入

ツールはJenkinsを使用。

CIで以下を保証する。

  • 起動
  • 終了
  • メモリリーク発見

配布

起動時にバージョンチェックして古いバージョンはプレイさせない。

ネイティブキャッシュ

ネイティブキャシュとは・・・

高速にアクセス出来るキャッシュを作成し、オーバーヘッドを軽減する。

ローカル環境でネイティブキャシュを作成するのは時間がかかり、
時間を浪費してしまう。

ファイルが更新された際にコミットをJenkinsにHookし、
更新されたファイルのネイティブキャシュを作成する。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2