初めに結論ですが、ゲームの納期は以下の式で大雑把に予測できます納期=基盤の実装コスト+(コンテンツの種類×コンテンツの量×コンテンツの実装コスト)これは個人ゲーム開発者たここが十数個ゲームを作った上で見つけた経験則です。正確では無いかもしれませんが、そこまで実情とかけ離れていないと思います。色々なゲームジャンルの納期を予測する際に1つの指標として使えます上の式に出てきた言葉の定義をします基盤:一度ゲームに実装したら変更を加えないもの例)音楽を再生する仕組み、画面遷移を制御する仕組み、基本的なUI、イラストやテキストをゲームに組み込むためのツールコンテンツ:ゲームの中身。多ければ多いほどゲームのボリュームが増えるもの例)イラスト、敵キャラ、ステージ、アイテム、セリフ、スキル、実績、クエスト、武器、ステージギミックコスト:人月(かかる時間)例えば初代マリオブラザーズの納期を予想してみます。納期=基盤の実装コスト(マリオの操作60分、当たり判定の設定30分、ステージエディタの実装48時間、UIの配置15分、スコア計算15分、制限時間の計算60分、残機の計算30分、画面遷移の制御30分、音楽再生60分、効果音再生60分)+コンテンツの種類(マップチップ、プレイキャラのイラスト、プレイキャラのアニメーション、効果音、効果音の再生タイミング、効果音の音量、音楽、音楽の再生タイミング、音楽の音量、ステージの地形、ステージギミック、アイテムのイラスト、アイテムの効果、アイテムの挙動、敵キャラのイラスト、敵キャラの挙動、敵キャラのアニメーション、敵キャラの配置位置、各アクションで加算されるスコアの値、UIのイラスト)×コンテンツの量(マップチップ(地面、レンガ、ハテナブロック、土管、...)、プレイキャラのイラスト(1Pカラー、2Pカラー)、プレイキャラのアニメーション(待機、歩く、走る、ジャンプする、死ぬ、登る、しゃがむ、...)、...)×コンテンツの実装コスト(マップチップ1つ15分、プレイキャラのイラスト1つ30分、プレイキャラのアニメーション1つ15分、...)大体2人月くらいでしょうかまぁ言ってしまえば、ゲームを構成する要素を全て洗い出して、その要素の実装にかかる時間を決めれば納期も定まります。ただ、ここでは特に、コンテンツの種類とコンテンツの量、その実装コストという3軸によって3次元的に納期が決定される側面があるという点を強調したいです。全てのコンテンツを1列に並べて納期を足し算で求めるよりもずっと直感的で想像しやすいかと思います。直方体の体積を保ったまま3軸を調整しようゲームのボリュームを増やした上で納期を短くしたい場合はどうすれば良いのでしょうか?もう一度式を見てみます納期=基盤の実装コスト+(コンテンツの種類×コンテンツの量×コンテンツの実装コスト)ここで重要なのは、どの要素によってゲームのボリュームが左右されるのかです。それは、上の言葉の定義にもあったように、コンテンツの種類×コンテンツの量で決まります。マリオブラザーズで言うところのステージやアイテム、マップチップに敵キャラがゲームのボリュームUPに貢献しています。従って、ゲームのボリュームを増やしつつも納期を減らす(言い換えると、3軸の生み出す直方体の体積を減らしながら、コンテンツの種類とコンテンツの量という2軸の生み出す四辺形の面積を増やす)ためには、コンテンツの実装コストを減らせば良いのです。具体的には、素早くコンテンツを用意する、ゲームへの実装手順を自動化する、素材を使い回す等です。特に、2Dアクションゲームであればマップエディタのような、開発ツール(ゲームエディタ?)を使いやすいものにする事がコンテンツの実装コスト低減に繋がると強く感じました。また、コンテンツ同士の関係性を減らすことも、コンテンツの実装コストを減らすことに貢献します。上のマリオで例えると、アイテムを配置する位置は、ステージの想定難易度、他のアイテムとの距離、周囲のステージギミックなど複数のコンテンツがその決定に関わっています。こういったコンテンツの実装には多大な実装コストを要します。なので、アイテムはステージ開始時にランダムに1つ貰えるようにするなどすれば、アイテムの配置位置に思考リソースを割かずに済むので、ほぼ同じボリュームで実装コストを下げることができます。面白いかどうかはまた別で検証しないといけないとは思いますが...。これは3軸の話とは関係ありませんが、ゲームの基盤の実装コストを減らすことも納期を短くするのに役立ちます。同じようなジャンルのゲームを続けて作るのであれば、前作の基盤をガンガン使い回すと良いと思います。納期を正確に予測することがゲーム開発成功のカギ皆さん「苦行ゲー」を遊んだことはありますか?例えば、壺に入ったおじさんがハンマー1つで転がり落ちながらも山を登っていく『Getting Over It with Bennett Foddy』や、糸みたいな細い足場の上を卵がジャンプして進んでいく『LOST EGG』、丁度よく力を溜めて上に飛ばないとすぐ下層に叩き落とされる『Jump King』などです。しかし、何故そういったゲームは「苦行」と呼ばれるのでしょうか?それは、プレイヤーの頭の中にある想定クリア時間をゲームが大幅に上回ってくるからです。要は「クリアできると思ったのに!」という落胆の感情が強烈に呼び起こされるからです。故に「苦行」と呼ばれ、途中で挫折するようなプレイヤーが続出するワケです。これと似たことがゲーム開発にも言えます。プレイヤー(ゲーム開発者)の頭の中にある想定クリア時間(想定していた納期)をゲーム(実際の納期)が大幅に上回ってくるのです。「クリアできると思ったのに!(もっと短い時間で完成するはずだったのに!)」という落胆の感情が強烈に生まれて、途中で挫折するようなプレイヤー(ゲーム開発者)が続出するワケです。では、苦行ゲーをクリアするようなプレイヤーはどのような考えを持って挫折せずエンディングに辿り着いているのでしょうか?それは、適切な想定クリア時間を頭の中に描いているのです。「まだまだ序盤」「先は長いから引き続き頑張ろう」「ここはあと5回くらい挑戦すれば慣れる」「試行錯誤していればいずれ突破できる」「まだ時間がかかりそうだな」などと、全体を俯瞰して行動していたり、計画を都度修整していたりします。さらにはクリアした際、「想定よりも早く攻略できたな」とさえ考えていたりします。そういった考えの下では、「クリアできると思ったのに!」といった挫折は起こりにくく、結果的にエンディングへ繋がるワケです。なので、ゲーム開発に苦行ゲーの攻略法を転用するのであれば、それは実現可能な納期を設定することだと思います。ただ、ゲーム開発は苦行ゲーと違って、「ステージが進んでいる感」「チェックポイント」といった、モチベーションに繋がるフィードバックが自動的に提供されないので注意したいです。優れた苦行ゲーは優れたゲームサイクルを備えていますが、ゲーム開発はその限りではなくて、持続的なゲーム開発を実現するための取り組みを開発者自身が用意しないといけないです。具体的には、開発中のゲームをデモ版として公開する、マイルストーンを設定する、進捗報告を行う等です。おしまいそんなわけで納期について思っていたことを出力してみました。誰かにとって価値のある文章になっていたら嬉しいですそういえばこのブログのタイトル、国語の教科書にあった『生き物は円柱形』みたいだな〜って思いました。なんかテーマも似通っている気がします以上