Global Game Jam 2016 Sapporo 参加レポ

# Global Game Jam 2016

世界93カ国で3万6千人以上が参加し、48時間で約6800のゲームをつくる世界的なゲーム制作イベントです。2012年時点でギネスの世界記録にも認定されています。

* 公式サイト(英語): http://www.globalgamejam.org/

# Global Game Jam 2016 Sapporo

札幌会場は前年は国内で最大のサイトでしたが、今年は定山渓会場が出来たというのもあり、国内では東京工科大学会場に次ぐ、第2位の参加人数を誇るサイトとなりました。
見学者含めて109人、定山渓会場と合わせると、122名の参加がありました。（以下Global Game JamをGGJと表記します）

* 日本の会場一覧: http://ggj.igda.jp/sites-list/
* GGJ札幌の公式サイト: http://ggjsap.juegos/2016/

# 参加チーム・事前ミーティング

札幌会場では11チーム+IDGAチーム+定山渓会場4チームの合計16チームが編成されました。自分はUnreal Engine 4(以下UE4)チームにプログラマとして参加しました。[札幌11チームの編成はこちら]( https://docs.google.com/spreadsheets/d/1nbGZa3fI2-9P-TUfOyGLYb7hI2-B5VmeGWhVPUjvPHA/edit#gid=0)。

チームメンバーは5名で、1名は企画とモデリング。1名は前年からUE4のチームでプロのデザイナ。残り3名がプログラマですが、2名は本業がゲーム開発ではないプログラマで、1~2ヶ月程度のUE4経験でした(僕はこの立場です)。最後の1名は、UE4を使ったぷちコンという作品応募イベントにも参加しているプログラマで、チームのエースプログラマです。また、3名は昨年のGGJで同じチームだったメンバー（前年はUnityを利用、チーム名変態デバイスチーム）でした。

この5名でUE4を使って、Oculus Rift、VR対応ゲームを作ること。連絡は Slack、プロジェクト管理は Backlog/subversion(7~8年ぶりに使いました)を使うこと。そこまでを事前ミーティングで決めて、あとは余り詳細は詰めずに当日を迎えました。

# 開会式・1日目

開会式では今年のGGJのテーマが発表されます。このテーマが発表される時間は世界中で各国のローカルタイムに発表されるため、最後のハワイで公開されるまでSNS等での公開は禁止されています。今年のテーマは「Ritual（儀式・習慣）」です。

* オープニング会場の様子（全天球）: https://theta360.com/s/liwBDFCUyGDZz2Xjnq1bHmkVQ

![CZ4F4SmWcAAENEZ.jpg](https://qiita-image-store.s3.amazonaws.com/0/2798/f266f6c2-3684-b97b-4085-c5bc1a5203d7.jpeg)

UE4を使うときに問題になることのひとつに、マシンスペックがあります。ある程度のグラフィック性能が求められるため、デスクトップPCの持ち込みが基本的に必要です（前年のUE4チームは初日以外は自宅作業をする作戦をとっていました）。今年はPC貸出を受けるメンバーがいたのと、UE4の経験が浅いメンバーもいるため、会場にデスクトップPCを持ち込んで作業をすることにしました。この決定は良い面も悪い面もありました（後述）。

初日はまずは企画と方向付けを行い、おおまかなタスク配分を行います。その後、少し作業を進めて明日の予定を立てて解散しました。ちゃんと帰るというのも大事なチームの目標です。ちなみに見学で来ていたShooter君もすっかりチームに馴染んでメンバーの一員になっていました。

![CZ5JQL1UUAEg4f4.jpg](https://qiita-image-store.s3.amazonaws.com/0/2798/24174f44-813f-d3a1-d39b-e8c5eb4841a3.jpeg)

# 2日目

1日目に家に帰ってから作業を進めていたメンバーも居て、朝から進捗がいい感じに出ています。だいたい9時くらいに全員が集まり、作業を始めていました。今回制作するもののコダワリポイントがいくつかあるのですが、自分はそのうちの一つ「HMDを被っている人だけじゃなく、まわりの人も楽しめる」という部分をどのように実現するか、調査・試作を行っていきました。途中で目処が立たなかったら、1人プレイでの仕立ても考えようと話していましたが、なんとか実現目処を立てることが出来ました。

会場に集まって作業することを選択したので、コミュニケーションは円滑で調整や相談はうまく進めることができました。反面、会場のネットワークが不安定でソースコードをコミット、アップデートするのに時間がかかるという問題もありました。

写真は隣のチームに差し入れされた Oculus Cake と Redbullガールです。
![CZ9HqFAVIAEAty8.jpg](https://qiita-image-store.s3.amazonaws.com/0/2798/4bb304e8-44bb-e8ab-e4c9-9722a20e92e1.jpeg)
![CZ91TbtUYAACsG8.jpg](https://qiita-image-store.s3.amazonaws.com/0/2798/7940741e-ae77-abb3-14ef-ae597763a523.jpeg)

2日目は概ねモデリング(1名)、レベルデザインやマップ制作(1名)、各種アクタの実装・配置(2名)、マルチプレイモードの実装(自分)、音関連(見学からメンバーに)という役割分担で進めて、タイトル画面とステージ1のマルチを含めたプレイ、ステージ2のマップが出来上がるくらいで終電を迎えました。夜中にライティングとステージ3の雛形を作ってくれたメンバーが居て、プロの腕を見せつけられました。また、夜中のテンションでおもしろアクタで不思議な世界( [madness world - Youtube](https://www.youtube.com/watch?v=sbbIpiuSqDI) )を作っていたメンバーもいて、とても楽しかったです。この日はAM1:30くらいに撤収しました。

# 3日目・閉会式・懇親会

3日目は全ステージを通してプレイできるようにして、動作テストを行いながら、デモプレイを可能にするために必要なことを進めていく作戦です。最終日はGGJ公式サイトへのゲームのアップロードも含めて17時までに実施し、撤収作業開始、18時からプレゼン・デモプレイを行うスケジュールです。そのためゲーム完成を15時くらいの目処において開発を進めます。

マルチプレイがうまく動くかの検証は、他の要素を結合した後に行う最後の工程になるため、必然的にそこで問題がわかります。クライアント側にアニメーションが反映されない問題があり、16時くらいまで対応にかかりましたが、てんちょーさんに助けてもらって問題を解消。GGJ公式サイトに登録する人、最後のブラッシュアップを行うメンバー、プレゼン資料を作成する自分。17時過ぎ、撤収開始ギリギリまで作業をして、デモプレイ準備が整いました。ハッカソンではよくあることですが、今回もギリギリでした！

* プレゼン資料: http://www.slideshare.net/sandinist/stray-sheep-ggjsap-2016-ue4-team
* 閉会式の集合写真(全天球): https://theta360.com/s/d04INppT8DKFbtcnsozo2SGDU

懇親会場でのプレイ風景。良い場所を使わせて頂いて感謝です。2人以上で協力プレイをして迷路を進んでいきます。大画面に迷路全体が映るので、見ている人も楽しめます！

![CaDJ8cWUAAAn42y.jpg](https://qiita-image-store.s3.amazonaws.com/0/2798/4ec8399b-6b41-e126-e7f8-7d3edcc7f3ec.jpeg)

* 懇親会場でのライブノーディングの様子（全天球）: https://theta360.com/s/39JX358lypcYtSlOIhf63TJ4u

# おわりに

制作したゲームは[公式サイト](http://globalgamejam.org/2016/games/straight-sheep)に登録しています。Windows向けの実行ファイルとソースコードも添付していますので、Oculus Rift DK2 をお持ちの方はぜひお試しください。企画で話したHMDを被っていない人でも楽しめるというのは大正解だったなぁと思います。懇親会会場で大きなスクリーンを使わせてもらえたのもあって、作ったものを存分に楽しんでもらえた感があります。

48時間での制作ということを考えると、よくまとめることが出来たなぁという印象です。今回はチームのバランスも人もよく、楽しく開発をすすめることが出来て、個人的にも学びがたくさんあったのでとても有意義な経験をすることが出来ました。プロのお仕事は本当に流石でした。自分が担当した、UE4でのマルチプレイ周りはハマりどころもあったので、技術情報としてどこかでまとめて発信しようと思います。

ハッカソンは参加するハードルが高いですが、参加する覚悟さえ決めてしまえば、あとは出来る範囲で貢献するだけなので、飛び込んでみると得難い体験をすることが出来ます。最近では多くのハッカソンイベントが各地で開催されていますので、勇気を持って飛び込んでみるのも良いのではないでしょうか。自分も今回の学びを活かしつつ、もっとUE4をうまく使えるようになりたいと思います。最後まで読んでいただき、ありがとうございます！

# Links

* [GGJのチームページ（exe, コードあり）](http://globalgamejam.org/2016/games/straight-sheep)
* [てんちょーさんのブログ記事](http://shop-0761.hatenablog.com/entry/2016/02/02/015245)
* [madness worldのgithubリポジトリ](https://github.com/com4dc/ue4_madness_world)
* [#ggjsap まとめ- togetter](http://togetter.com/li/931979)