プログラミングの魔物

エラー、バグ、仕様変更と戦うブログ

ゲームの開発速度は十分ですか?

スクリプト言語による効率的ゲーム開発 1章

この本はスクリプト言語を使ってしあわせになろうという本。
例としてLuaC++での作り方が載っている。
スクリプト言語なんて使わなくてもC++で組めばいいじゃん。速いし」
そう考えるのはちょっと早い。

ゲーム開発にかかる時間

ゲーム開発にはきっちりとした詳細な仕様書は存在しない。
業務用のアプリと違って完成品は「ユーザーが楽しめるもの」である。
だから完成品のイメージである仕様設計を事前に作成することは難しい。
実際に何度もテストして、細かく調節しながら理想の作品に近づける必要がある。

ゆえにコーディングからテストの実行までにかかる時間を短縮することが、ゲーム開発の高速化への第一歩である。

30回のプログラム微修正にかかる時間は?(本からの引用)

あくまで例として。

  • コーディング:30秒
  • コンパイル:1分30秒
  • ゲームの修正箇所への移動:30秒
  • 修正箇所の確認:20秒

1回のテストにかかる時間は2分50秒、30回で170秒*30で5100秒、時間に直すと1時間25分。
そのうちビルドにかかる時間は45分もある。
ビルドにかかる時間は特にすることもないのでプログラマが仕事していない時間である。
また、ビルドで意識が途切れると集中力も途切れやすい。一度切れた集中力を取り戻すにはさらに時間が必要となる。

無駄なビルド時間を短くするために様々な工夫が存在する(マシンへの投資、ソースコードの構成、プリコンパイル、ライブラリ化、手作業の排除など)

修正箇所へ到達するまでの時間は「1.ゲームを起動するまでに必要な準備作業」「2.起動したあとの操作」の合計。
2.の方は「オープニング→タイトル→ゲームロード→ステータス画面」のような画面遷移。
これは開発用のショートカットを作ることでスピードアップできる(デバッグモード)


ゲーム開発をスピードアップするへ続く

メモ

  • 何度もテストしながら完成のイメージに近づけるという考え方は、奇しくも並行して読んでいるリファクタリングと似ている。

この記事で読み進めている本

スクリプト言語による効率的ゲーム開発 新訂版 (LuaとC/C++連携プログラミング)

スクリプト言語による効率的ゲーム開発 新訂版 (LuaとC/C++連携プログラミング)