見出し画像

6人チームでClusterGAMEJAMに参加しました

この記事はClusterGAMEJAM2020 in WINTERに参加した記録として@_7cancerが書いたものです。GAMEJAM中は雪だるま⛄や虹🌈を作るなどしていました。

モデリングやパーティクル製作に関しては初心者でしたがとても楽しく開発することができました。そこで、これから参加してみたいよ!って人たちのために記事として残しておこうと思います。

ご意見や質問等はコメントをしたりTwitter( @_7cancer )まで連絡をお願いします。

はじめに

先日、2020年12月18~20日にかけてClusterGAMEJAM2020 in WINTERが開催され、筆者も参加しました。夏に開催されたClusterGAMEJAM in SUMMERに参加したことがあったため二度目の参戦です。

前回は個人(一人)で参加し開発も素材集めもすべて一人で行っていましたが、今回のin WINTERは六人チームで参加しました。

チーム参加では、個人参加のときにはない面白さがあって三日間がとても楽しかったです。(次もチームで参加したい)

そんななか、Twitterをいじっていると、「チームで参加したいけれどやり方が分からない」など書いている人がままいました。そこで、せっかくなので個人参加とチーム参加の違いチームでの開発の進め方などを書いていこうと思います。

そのため、本記事の想定している読者は「はじめてチーム開発をしてみたい!」と考えている人とします。

本記事では以下の項目について書いていきます。

・個人で参加した場合、チームで参加した場合のメリット/デメリット
・チーム開発で使ったツールやサービス
・チーム開発をした際の担当の分け方
・Unityプロジェクトやモデル、進捗などの共有方法

GAMEJAMの参加エントリなどはチームメンバーが書いてくれると思います!

個人で参加した場合・チームで参加した場合のメリット/デメリット

メリット/デメリットなんて、そんなことわかってるよ!って方は読み飛ばしてください。

個人で参加した場合とチームで参加した場合の比較を行います。あくまでも個人の主観なので信頼しすぎないようにしてください。

まずは個人で参加した際のメリット/デメリットです。それが以下になります。

個人開発をした場合の
・メリット

    1. すべての時間を開発にまわせる
・デメリット
    1. 自分の頭の中にあるアイデアしか出ない
    2. 完成度が自分の主観に依存する
    3. 手が足りない

メリット1: すべての時間を開発にまわせる

これは後述するチーム開発のメリット/デメリットにも関わってきます。

例えばチーム開発だと、完成イメージを共有できていない場合、大抵が悲惨な最期を迎えます。そのためチーム内でイメージの共有をすることにしっかりと時間を割く必要があります。

個人開発をする場合はこの作業がないので、時間は多く確保できるでしょう。

一方でデメリットでは以下の三点を挙げました。一つ一つ見ていきましょう。

デメリット1: 自分の頭の中にあるアイデアしか出ない

個人的にはこれが個人参加をした際の最大のデメリットだと思います。

普段から面白いことを考えて生きている人は多くないと思うので、「面白いゲームを作ってください」と言われたときに詰んでしまいます。(GAMEJAMでは一人で面白いゲームを作ってる人もたくさんいて、本当にすごいと思いましたが...)

そのため「頭の外」からアイデアを得るために、初めて見る動画ややったことがないスポーツ/ゲームなどを見たり体験したりして努力を積み重ねる必要があります。

筆者が個人参加をした際も、できるだけ自分の中にないアイデアを得られるようにいろいろなことをしました。

デメリット2: 完成度が自分の主観に依存する

二点目がこれです。(当たり前ですが)ゲームをプレイするのは自分だけではないです。公開するゲームですからね。そのため、主観で面白いものだけを組み込んでいってもなかなか面白いものにはなりません。例えば内輪ノリであったり倫理的にまずいものなどは主観だけで考えた結果だと思います(もちろん不快になる人が居なければ全然作ってOKだとも思います)。

これらはどれだけ頑張っても個人では限界があると思います。

デメリット3: 手が足りない

これは言わずもがなでしょう。三日じゃ開発が終わらないです...。

では次にチームで参加した際のメリット/デメリットです。それが以下になります。

チーム開発をした場合の
・メリット

    1. 多種多様なアイデアが出やすい
    2. すべての開発作業を並列で進められる
    3. 常に客観的な意見をもらえる
・デメリット
    1. イメージの共有が難しい
    2. メンバーの進捗状況が確認しづらい

メリット1, 2, 3

これらのメリットついては言葉通りなので特に触れる必要がないかと思います。

デメリットでは二点挙げました。

デメリット1: イメージの共有が難しい

個人的にチーム開発で一番重要なのが"イメージの共有"だと思っています。イメージの共有ができていれば、細かい指示を出さなくてもメンバーが作業でき、モチベーションを高く維持できるからです。

ですがこれはとても難しく、頭の中で描いたイメージをどうしたら人に説明できるのか、筆者は未だに分かってません...

今回のGAMEJAMでは、Unity上でプロトタイプをつくったり、チームメンバーが絵を描いてくれたりしたので何とかなりました。

文章でイメージを伝えるのは難しいので絵を描きましょう。どんなに絵心がなくても文章よりイメージを伝えられるはずです。

デメリット2: メンバーの進捗状況が確認しづらい

よく聞くのが「最近増えてきたリモートワークで、作業しているのかわからない社員...」などの話です。これはテキストコミュニケーションが苦手な人や進捗を文章にして伝えるのが苦手な人もいるので仕方がない問題だと思います。

そこで筆者のチームでは、後述するDiscordのボイスチャンネルで常に画面共有をし、呼べばすぐに会話できる状態で作業していました。

個人参加・チーム参加のメリット/デメリットは以上となります。

デメリットをうまい具合に回避することができればチームで開発したほうが効率よく進めることができます。あと単純に個人開発よりも楽しかったです。

チーム開発で使ったツールやサービス

今回チームで開発した際に使ったツールを順に書いていきます。

1. Discord

公式からの連絡も来るのでメインで利用していました。

特に重宝していたのがボイスチャンネル機能でした。デザイン班や実装班で分かれて常に通話状態にして作業していました。

また、この際に画面共有を行い、進捗や作業状況を見れるように工夫しました。おかげで状況の把握がかなりスムーズにできました。

2. Scrapbox

記事とチャットの中間のようなWebサービスです。Discordで流れていってほしくない情報をまとめておくのに使っていました。

例えば、Unity用アセットでいい感じのものを見つけたときに、リンクとGIFを張り付けて使っていました。

https://gyazo.com/a5da39ec4479171ef893c1916878d0b0

↑こんな感じでとても分かりやすいです。

3. GitHub

Unityプロジェクトを管理/共有するのに使いました。

主にワールドのギミックに関する実装をした際にGitHubで統合していました。

ブランチをうまく切り替えればいろいろな案も試すことができます。

4. Gogle Drive

Googleが提供しているオンラインストレージです。

Unityにインポートするのが簡単な3Dモデルやワールドの説明文、テクスチャなどを渡すために使っていました。


以上の4サービスを使って開発しました。GitHubなどを初めて使う人は難しいと思うので、もしGAMEJAMなどにエントリーしているのであれば予習をしておきましょう

チーム開発での担当の分け方

チーム開発をする際に、どんな役割分担をしたのかについてです。基本的には六人で以下のような分担として進めました。

① 進捗・作業内容管理/スケジューリング … 1人
② デザイン班 ... 3人
③ 実装班 ... 2人

各分担でどのような動きをしていたのか書いていきます。

① 進捗・作業内容管理/スケジューリング

この人は基本的に手を空けておき、実装やアイデアの詰めが甘い部分について常に考えます。不明瞭な部分を見つけた場合は即座にチームメンバーに共有し、議論をします。おそらく最も重要で難しい役割です

ゲームの実装やアイデアに関しては、開発が進んでいくにつれて甘い部分がたくさん見つかると思います。そのたびに各担当と打ち合わせを行い、決まった内容を全体に共有します。

また、各担当の作業の進み具合をすべて把握する必要があります。そしてその状況によっては優先度の低い作業を省き、これも全体に共有します。

情報を全体と共有したら、次はスケジュールの修正も行います。現実的でクオリティを犠牲にしないようなスケジューリングをする必要があります。

ほかにも空いてる人に仕事を振ったり素材を探したりなどあると思いますが、主には上記の内容をやります。

② デザイン班

デザイン班はゲーム中で使うキャラクターの3Dモデルやゲーム内に配置するイラスト、テクスチャ、サムネイル、パーティクル、地形データなどを作ります。"デザイン"班といいながら結構がっつりとモデリングやUnityでの作業をしていきます。また、Creator Kitは基本的に触りません

主にゲーム(ワールド)の雰囲気に寄せてデザインを統一しつつ作っていきます。そのため、ここまででも何度か出てきている「イメージの共有」をしっかりしておきましょう。

また、③班から求められた3Dモデルやテクスチャを作ったり、いらないものを作らなかったりするので、作業進捗を逐一報告しましょう。

今回はデザイン班に三人いたので以下のような分担で進めました。

・3Dモデル/シェーダー作成
・3Dモデル/テクスチャ(ゲームの説明など)
・地形作成/3Dモデル配置

3Dモデルに関しては既存のアセットだけで済ませることも可能なので、開発の状況や作業量などを見ながら調節することができます。

もし作業をすべてやり切ってタスクがなくなってしまったら、作った3Dモデルなどの写真をTwitterにでもあげておきましょう。GAMEJAMのフォームを提出する際に必要になります。これらがすべて終わって初めてCreator Kitに触れるくらいの勢いでやっていきます。

いずれにせよ、③班は3Dモデルがないと進まない作業などもあるので、できるだけ早く作業を終えられるように素早く動きましょう。

③ 実装班

実装班はCreator Kitを利用してゲームの動作を作っていきます。Creator Kitではアイテム、トリガー、ギミック、オペレーションといった四つのコンポーネントを組み合わせることでゲームを作ることができます。

この作業では、少しでもコンポーネントを組み合わせを間違えてしまうと期待した動作をしてくれません。そのため、実装班の間での進捗共有を頻繁に行ったり、方法/記述規則などを決めたりしておきましょう。

また、実装班が順調に進めていくと「実装が難しそうな機能」「新しくほしくなった機能」などが見つかると思います。これらを即座に①班に共有し、チームメンバーとの連携を取ることが大切になってきます。

Creator Kitを利用した開発のほかにも、②班から受け取った3Dモデルやテクスチャなどをワールドに配置したり、パーティクルを発火させるタイミングの調整などもします。

Unityプロジェクトやモデル、進捗などの共有方法

最後にワールドや3Dモデルなどのデータを共有する際はどうしていたのか、という話です。

はじめにまとめておくと以下のような感じになります。

・ワールドに関することはGitHubで管理する
・小物はunitypackageやvrmにしてGoogle Driveで共有する
・常にDiscordのボイスチャンネルに接続して即レスできるようにする

ワールドに関することはGitHubで管理する

まずワールドのデータですが、GitHubを利用してバージョン管理をしていました。

GitHubを使うのは基本的に③班だけです。これは「時間がない」「共有する内容が多い」などがあり効率が落ちかねないといった理由からです。ただ②班のうち、地形作成/3Dモデル配置をしている人はワールドのほとんどの部分に関わってくるのでGitHubを一緒に利用します。

小物はunitypackageやvrmにしてGoogle Driveで共有する

②班が3Dモデル/シェーダーを作成したら**.unitypackageや**.vrmの形式にエクスポートします。このエクスポートしたファイルをGoogle Driveで③班に共有します。

そして③班は**.unitypackageや**.vrmなどのファイルをUnityに読み込み、さらに作業を進めていきます。

常にDiscordのボイスチャンネルに接続して即レスできるようにする

やっぱり情報の共有は"話す"のが一番早いと思います。ただでさえ時間の足りないGAMEJAMなので、テキストチャットで「いま通話いい?」「いいよ」というやり取りをすることすら省きたいです。

なのでもう常にボイスチャンネルにつなげておきましょう。マイクはミュートで大丈夫です。名前を呼べば即座に打ち合わせができるのでかなりスムーズに情報共有をできると思います。

今回の筆者たちのチームでは以下のように部屋を分け、常に接続していました。

画像1

もし実装に行き詰まったりスケジュールを修正したい、となった際には「相談部屋」に集まって全員で話し合っていました。

さらにボイスチャンネルでは画面共有もできます。そのため、とりあえず画面共有しながら作業をしているだけで情報が見えるようになるのもいい点だと思います。

おわりに

個人参加とチーム参加の違いや開発の進め方などを書きました。

この記事は「六人チームで参加した経験」をもとにして書いています。かなり主観的な内容になっているので、記事自体は参考にする程度としてください。これを読んでいる人たちのチームに合ったやり方を探ってみましょう。

またメリット/デメリット章でも触れたとおり、デメリット部分を何とかすればチーム開発をした方が圧倒的に良いものが作れます。

この記事を読んだ人が友達を誘ってチーム参加に挑戦し、Clusterをさらに盛り上げてくれると嬉しいです。

チーム参加は個人参加のときよりも楽しかったです!

この記事が気に入ったらサポートをしてみませんか?