ClusterGAMEJAMでゲームをつくった話
先日「ClusterGAMEJAM 2020 in SUMMER」に参加したので、その感想を書こうと思います。
今回、チーム「ひきこもり∞げーまーず」でトリガーギミック/ロジック担当として参加しました。主にエンジニア面をやった感じです。
完成したゲームワールドはこちら。良かったら遊んでみてください。
参加経緯
もともと参加予定でしたが、せっかくならチーム組んで参加してみたいなーと思ってたところ、cluster内でるーしっどさんに声をかけてもらえて参加することになりました。
この後なんだかんだで最終的には6人で参加することになりました。この辺りの話はこちらのnoteに詳しく書いてあります。
よくよく振り返ってみると地声が3人、ゆかりねっと3人、エンジニア自分一人というメンバーでいろんな意味で攻めたメンバーだったと思います。
そもそもゆかりねっとでオンラインゲームジャムに参加というのは前例があるのだろうか?
準備期間
GameJAMの2週間くらい前にMTGを行いチーム名とかも決めました。ワールドに貼ってあるのはその時の写真です。
これ以降何度かMTGをやってオンラインで共同作業のためのツールの選定やマシンスペック、スキルの事前共有をやってました。
他にはゲームの参考にVRChatゲームワールド巡りとかしてました。
MTG自体は最初基本VRCかcluster上でやってました。ただ文字が多くなると現行のHMD越しだと解像度的につらく途中からデスクトップ+Discordメインに切り替えてやってました。
使ったツール
実際にMTGやいろいろ触った結果、共有作業のツールとして以下を使うことになりました。
・Discord - 通話用
・Scrapbox - 主に議事録
・Google- Jamboard - ブレスト用
・GitLab - Unityプロジェクト共有
プロジェクトファイルの共有でUnityCollaborate使わなかったのは容量や人数制限がきついのと使用中にバグることが分かったので今回使うのは見送りました。
具体的にはこんな感じの差があります
・UnityCollaborateは3人、1GBまで
・GitLabは人数無制限、10GBまで
機能を比較して結果的にGitLabを使うことにしました。この結果あと痛い目を見るのですがそれは後述。
とりあえずGitLabやGitを自分以外は使ったことなかったのでGameJAMの週で事前に二日ほどかけて使い方講座をしました。SourceTreeを使ってクローン、ブランチ切ってコミットとGitLab上でのプルリクとマージができるレベルまでチームとしてできるようになりました。
タスクの管理ツールとしてTrelloも上げたのですが、GameJAM自体も短期間でタスクをわざわざTrelloで管理する意義があまりなかったので当日は結局使いませんでした。Discord通話+Scrapboxで事足りた。
Git講座自体もGameJAM直前の2日で結構ギリギリでしたがGameJAM開始前に最低限オンラインで作業する準備をすることができました。
1日目
テーマ発表後ブレストを行いまずはアイデアをつくることになりました。
Discordで通話しながら、GoogleのJamboard上でブレストを行いました。
ブレスト結果はこんな感じに。
運要素からいろいろ派生してバトロワ的なゲームをつくることに決まりました。単純なバトロワだと独自性がないので最終的には動物+食べ物+成長という要素を組み合わせたゲームをつくることになりました。
おおよそのテーマとシステムのイメージが決まったところで、その日は2時くらいにMTGが終了しました。
1日目深夜
とりあえずゲームのシステムができたのでその日の深夜にさっそく基本となるギミックを作ることに。(通称もぐもぐガン)
寝るという選択肢もあったのですが寝られなかったので一人で作業してました。結果的にここで作業が進んだおかげで後々のトラブルを埋めれたので良かったと思います。
HP/MPや回復する食べ物アイテム、もぐもぐガンのギミック実装がこの時点で完了した感じです。
2日目
10時からMTGというなかなかのハードスケジュールでスタート(4時間しか寝てない)
とりあえずチーム内でタスクの割り振りをして作業をすることに。
午前中にはもぐもぐガンに進化ギミックの実装も完了して、マップもおおよそができていたのでこの時点では順調でした。
トラブル発生
担当者がいろいろ作業する中、アセットなどをGitLabにコミットする段階になっていろいろトラブルが発生。
・metaファイル生成問題(これは空フォルダが残っていたせい)
・ファイルパス長い問題
・同一シーンにコミットしたり
上記に起因してmasterのプルに失敗したり、マージコンフリクトしたりとトラブル報告が絶えない状態に。
自分自身がUnity+gitの運用に不慣れだったこともあり夜までトラブルに対応することになりました。
機能面でGitLabを選んでしまったことが裏目に出てしまいました。
「Unity+Gitは人類には早すぎたんや。」
なので2日目はトラブル対応で手いっぱいで進捗がなく、もともと19時くらいの完成予定が大きく遅れることに。
さらに夜間の回線の問題でメンバーの一人と通話がほぼ不可能という状態でトラブルの把握に手間取ったりもしました。
思い返してみると自分の作業が進んでいなかっただけでマップや効果音などはもぐもぐガンに組み込める状態だったので意外と影響は少なかったと思います。
2日目深夜
進捗なくて割と完成できるか不安だったこともあり、あまり寝れず。
とりあえず気晴らしにワールドを作ることにしました。
結果チキンASMRという謎のワールドができることに。
ランダムに鳴らせばセミの声みたいな自然なノイズができると思ったがそんなことはなかった。結果ホラーワールドになりました。
これで結構気が晴れた感じはしました。
3日目
10時MTGでしたが、11時まで寝てから参加することに(5時間睡眠,、実は12時まで寝ようかと思ってた)
とりあえずゲームシステム周りのギミックができないと何も進まないのでサポートはそこそこにシステム周りの実装に集中することにしました。
(Discord通話も切ってしばらく集中することに...)
そのおかげか15時くらいには一通り完成したので最終シーンへのマージを実施。
3日目は前日のトラブルもあり担当者ごとにシーンをコピーして作業、担当者一人が最終シーンに結合するという方法にGitでの作業フローを切り替えてました。このおかげかある程度安定してきたのでバグ修正や最終結合、細かな部分の修正を行うことができました。
完成したゲームの最終的なアップロードはマシンスペックがチームで最強のhkさんがやることになりました。
19:30にはhkさんが完成版のアップロードを行いゲームが完成!!
良かった点
メンバー全員がclusterワールド作成経験があるのでcluster自体によるトラブルはなかった。
マップの作成や効果音、エフェクトの組み込みは分担してやれたので各々が集中して作業できたの点は良かった。
サムネイルや説明文など意外と手間がかかる部分を担当してくれる人がいたのは助けられました。
メンバー全員がVRChatなどでよく遊んでいたこともあり、VRゲームのデザイン面で問題がでなかった。
人数多いのでマルチプレイのテストがやりやすかった点も。
反省点
Gitを無理に使うのはやめよう。プロジェクト最終データ共有ツール程度の使い方したほうが良かった気がする。
サウンド、BGMやギミックの使い方講座も事前にやりたかった。
スケジュールはもっと余裕をもって睡眠時間をもっと大切にしたい。
MTG時間だらだら伸びがちなので時間区切って休憩しつつやったほうが良い。
ゲーム自体も細かな点でいろいろやり残したことがありますが、この辺はアプデで直したい。
まとめ
GameJAM初参加、オンラインでの共同作業も初という初めて尽くしで上手くいくか最初は不安でしたが、なんだかんだでゲームを完成することができました。振り返れば完成したのはある意味奇跡だったと思う。
チームだからこその課題や問題がわかって良い経験にもなりました。
2日間でチームとしての成長を感じられたし、楽しかったのでまた参加したい!
clusterを使えばゲームエンジニアやCGクリエイターじゃなくてもVRゲームがつくれるというのは改めてすごいと思った。