時代に翻弄されるエンジニアのブログ

ゲームプログラマをやっています。仕事やゲームや趣味に関してつらつら書きたいと思います。

チームでゲーム開発をするときにはじめに決めておいてよかったこと

f:id:tkymx83:20210523001252p:plain
こんにちは、たくという名前でブログをやっております

みなさんは普段チームでゲーム開発をすることはありますでしょうか? 一人で作る場合と違ってチームで作ると、思った以上にコミュニケーションの重要性に気づくと思います。

コミュニケーションを円滑にするために意識を統合する決め事を決めることがあると思うのですが、僕がチーム開発をする上ではじめに決めておいてよかったなと思うことを知見として残したいと思います。

チームでゲーム開発する上で決めておきたいこと

ゲーム開発に限らず開発とは、仕様に沿って機能をプログラミングしていく作業です。

ゲーム開発の場合は作ったあとに本当に面白いのかの議論が始まります。議論の中で仕様が変わることもありますが、まずははじめに決めた仕様通りに機能を作る必要があります。

チームで作る場合は、だいたいは仕様を機能に分割してメンバーで分担して作成します。分担後は設計やプログラミングを行うのですが、何も考えずに作り始めると期日までに本当に必要なものがまず完成することはありません。

それは、以下の要素がはじめに決まっていないからです。

  • 具体的にどこまで作るのか?
  • その機能を作成するのに誰が関わっているのか?
  • どうしたら終わりなのか?

以下それぞれについて解説したいと思います。

1. 具体的にどこまで作るのか?

バトル部分を作ってくださいと言われたときに、まずどこから作り始めるでしょうか?仕様書の一番はじめから作るでしょうか?ただ、パーティー編成画面はまだ作られていないので、パーティー情報はサンプルデータを用意して作っていく必要があります。そのままではバトル部分は完成するかもしれませんが、実際にパーティで編成したキャラとは違うキャラがバトルに登場します。これは完成ではありません。

このように、ゲームを作る際には並列に開発される機能と歩調を合わせて開発をする必要があります。そのため、自分の担当部分が完成したあとは、他機能とのつなぎこみをする工程が発生します。はじめにこれを意識できていないと、完成したときに漏れや意識違いが発生しますそのため、具体的に何を作るのかをはじめに決める必要があります。

先程のバトルの例で行くと、まず4月はサンプルのデータでバトルできる機能を開発をする。5月はパーティで編成したキャラでバトルをする。と、いうように順番を考慮して、具体的に開発内容を決めつつスケジュールを建てることが大切です。

もし、具体的な開発内容が明確ではないと、開発後に漏れや、勝手な思い込みによる作り直しが発生する可能性があります。

2. その機能を作成するのに誰が関わっているのか?

ゲーム開発はエンジニアだけでは完結しません。イラストを作成するデザイナーや、データの管理をしてくれるサーバーエンジニアだったり、いろいろな職種の人が関わっています。

色んな人が関わっているため、それぞれの工程の間にははじめに決めておかなくてはいけないことがたくさん存在します。

例えば

  • イラストの画像サイズや圧縮形式、ファイル名
  • サーバーAPIやマスターデータのスキーマ

などなどです。

これらはある程度想定して作成することはできますが、はじめに決めないと認識違いによって後々大きな手戻りが発生する可能性があります。よって、他職種に依頼する内容と機能的な決め事は、始めにすり合わせておく必要があります。

3. どうしたら終わりなのか?

この項目は、意外とあまり考慮されていないことが多いです。一見仕様書通りに作成したら、終了のようにも思えるので、考慮されることが少ないのかもしれません。

開発の終了は、その目的を満たせたかが重要になります。ゲーム作成の目的は、おもしろゲームを作成することです。その面白いの基準を判断するのはディレクターやプロデューサーです。そのため、機能をある程度開発したらレビューをしてもらうことが必要です。そのレビューの方法や日付、レビュー後の対応などは予め来ておく必要があります。

例えば開発が終了したと思っても、その機能を見るにあたって必要なデータが揃っておらずレビューの準備で別途工数がかかる可能性もあります。そのため、どのようにしたら開発が終わるのかは、はじめに決めておく必要があります。

まとめ

一人でゲームを作っていると自分がルールになるので特に気にすることはないのですが、チームで作るときはルールなどのを作成して、みんなで意識を統一する必要があります。

意識が統一されていないと、認識違いによる手戻りが発生したり、想定通りのものできなかったり、残業したりと開発の後半で苦労することが多いです。そのため、はじめに決めておくことで開発をスムーズにすすめることができます。