みんなとUnityでゲームを作りたい!
社内の勉強会で初心者から上級者までみんなで作りたいのがキッカケです。複数人での作業になるとキチンとするならGitとかで管理した方がよいのです。
ただし1日で完結させるカンジじゃないとみんなのテンションも続かないので、作りやすいスタイルを模索した結果行き着いたのがモブプロでした。
モブプロって何?
モブプログラミングの略です。小さなグループを作ってプログラミングする人を交代しながら1つのプログラムを組み上げる開発手法です。
2人体制でやる場合はペアプログラミングになるようです。
よく非効率やんけ~って言われたりするわけですが、技術を共有する目的などの場合はモブプロやペアプロの方が向いているかなと思ってます。特に勉強会では技術共有というところ押していきたい!
今回の場合は一人15分くらいパソコンを操作してもらい、操作担当者を交代しながら開発を進めていくカンジです。
そもそもUnityで複数人で作業するのムズくない?
はい、ちゃんと役割やルールを決めないとタイヘンなことになります。小さなチームで分業したり、作業が被らないようにルールを決める必要があります。
テキトーにやると他の人の作業と重複して、あげくには他人の作業内容を上書いて揉めたりします。
ではどうやって作っていけばいいの?
モブプロで分かれたチームごとにミニゲームを作っていく形にします。ミニゲームにすれば独立して自由に作れ、勉強会の1日で作り切ることが出来ます。上記の重複する問題は次に記載する内容で回避できればイイなと・・・。
最終的には作ったミニゲームを結合してゲーム集的なアプリとして完成することが目標!
ミニゲーム作成のルール
他のミニゲームに重複しないようする。
- 各ミニゲームは独立したフォルダで管理
- 基本的に共通のスクリプトは使わない
- (ソース自体をコピーして専用のスクリプトにする)
- 同じスクリプトファイルがあるとエラーになるので被らないような仕組みにする
【ルール】概要
- 作成するミニゲームは2Dとする
- 初心者も2Dの方が馴染みやすいはず
- 作成するミニゲーム以下の命名規則の接頭辞をつける
- A01_Action、A02_Puzzle、A03_Bomber
- 接頭辞についてはゲーム作成前に予め決めておく
- もしグループが分かれたりして新しいゲームを作成する場合は
接頭辞の使用を宣言して重複しないようにする - 最初のアルファベットの部分については勉強会ごとにA→B→Cと切り替えていく
【ルール】接頭辞の付与
以下の項目について必ず接頭辞をつける
- トップのフォルダ名(例:A01_GameTitle)
- 接頭辞がついたフォルダごとにミニゲームが作成されます
- フォルダの下の構成はゲーム毎に自由
- 作成するスクリプト(例:A01_PlayerScript)
- 接頭辞がつくことで他のスクリプトと競合しなくなる
- 同じコードの記述で煩雑になるがフォルダごとで分離するので
他への影響がないことを優先する - レイヤーなど他に影響を与えるもの接頭辞を追加する
【ルール】その他
- タグやレイヤーの設定はインポートで設定が引き継がれないの
で、テキストファイルに設定内容を記載してゲームフォルダに
格納してほしい - アセットを利用したい場合は要相談
できるだけ入れて楽はしたいのでできれば入れたい! - どうしても共通化したい処理がある場合はCommonフォルダの
導入を考える - 画面は縦型のportraitで1920×1080のサイズで作成する
実際に作成したサンプル
- 1つ目のミニゲーム
- 2つ目のミニゲーム
それぞれのミニゲームでフォルダが分かれているのでぶつからない。フォルダの下の構成は最悪異なっても大丈夫。スクリプトは同じモノがあるとエラーになるので接頭辞を付けることでエラーを回避(重複することを「競合」っていう風にいうとカッコよさげですね)。
上記の手法をAZML-Projectとして発足
接頭辞がアルファベットの「A」から始まって「B」→「C」と進んでいくのでA to Z(amazonのパクリ・・・)。あとミニゲームゲームを結合して大きなゲームにするのでMinimal to Large。それぞれの頭文字を取ってAZML-Projectとして発足してレポートに残していきます。関連するQiitaの記事のタグには「AZML」と付けていきます。