一年生対象の部内ハッカソンを開催しました!
こんにちは。A-PxL代表の橋本です。部名を改めてからの初の投稿となります。さて、私たちの部では7月13日と7月14日の二日間に渡って一年生対象の部内ハッカソンを開催しました。今回はそのハッカソンのレポート及びどのように企画したかについて記事を書こうと思います。
今年から部名がVRからxRに変わったので集合写真のポーズもxRポーズにバージョンアップです!
目次
ハッカソン開催の目的
今回のハッカソンの目的は一年生に
- 腕試しの機会を与える
- 他の一年生との交流の機会を与える
- チーム活動を経験させる
ことです。
今まで一年生には4月から6月までの2ヶ月間ほぼ毎週UnityやC#, Blender等のワークショップに参加していただきました。色々やっていただいたからこそ、今まで学んできたことの復習や、腕試しをする機会を与えたい! という思いがありました。その機会を与えることが今回のハッカソンを開いた目的の1つです。また、部で開いているワークショップは基本的に一人で完結してしまうものがほとんどでした。そのため、一年生同士の交流が若干少なかったり、チームでの開発をしたりしていませんでした。しかし、実際に部で活動をする際や今後就職して仕事をするようになった時は基本的にチームを組んで作業をすることになります。そして、チーム制作をする際にはチームメンバーとのコミュニケーションが重要になってきます。その練習を1年生にさせることが目的でもありました。
最初にしたこと
ハッカソンについてよく知らないという一年生がほとんどでした。そのため、開発をさせる前にハッカソンとはどういうものなのか、どんな目的で開催されるべきなのかについて教えることにしました。
(ちなみに、内容についてこちらの記事を参考にしました。今回のハッカソンを開催するにあたってこの記事の内容はとても参考になりましたし、共感を感じる部分が多々ありました。この記事の著者の方には感謝しています)
ハッカソンのテーマ
今回のハッカソンは 「既存のゲームを面白くハックしよう!」 というテーマを掲げて実施しました。内容としては、すでにある程度出来上がっているゲームをもとにしてどういう改良を施したら面白くなるか、ゲームっぽくなるかを考えて開発を進めるという感じです。0から新しいコンテンツを作らせることも考えたのですが、
- 一年生のUnityを使った期間
- プログラミング経験が大学入学前になかった人がほとんどであること
- チーム開発の経験がないこと
などを考慮した結果、ある程度ベースとなっているものに機能を付け足していくとした方が開発がしやすいしアイディアも浮かびやすいのではないかと考え、このようなルールとしました。
こちらで用意したUnityパッケージは以下の3種です。なお、これらのプロジェクトは改良が施しやすいようある程度の中途半端さを兼ね備えるようにさせました。
玉転がし
Unity公式のチュートリアルのものです。玉を動かしてステージ上の全てのアイテムを拾ったらクリアというシンプルなゲームです。
迷路
部内で開催したUnityワークショップの最終回で使われた迷路のゲームです。Unityちゃんを操作して目的地まで到達できればクリアというとてもシンプルなゲームです。
Space Shooter
こちらもUnity公式のチュートリアルのものです。宇宙船を操作して前から降ってくる隕石を避けたり弾を発射して隕石を壊したりするゲームです。なお、チュートリアルでは隕石を壊した際に得点を加算したり、音をつけたり、ゲームを再開したりする機能がありましたが、今回使用してもらったパッケージにはその部分はあえて含めませんでした。
開発中の様子。中には帰宅せずにずっと会場に残って開発をしていた一年生もいました!
審査の方法について
上級生がコンテンツを評価して各チームの優劣をつけて優勝チームを決定することも考えたのですが、上記で述べたハッカソンについて書かれた記事を参考にして参加者、上級生全員で審査をすることにしました。
具体的な方法
- 各チームの審査フォームを用意する。
- フォームに記入をしてもらう。この時、1年生は自分が所属するチームの審査はしないで違うチームの評価のみする。
- 全員のフォームが出揃ったら得点を集計する。
フォームの内容
動くものを作っていたか?
"yes" or "no" で回答。"yes"なら2点。"no"なら1点。その結果を2倍した値が得点となる。
ハッカソンで1番大事なことは、動くものを作ることであると思っています。そのため、一番最初の質問はこのようにし、一番倍率を大きくしました。倍率をつけた理由ですが、チーム間で得点が同じになってしまうことがないようにするためです。
チャレンジ点
10段階で評価。つけた点数を1.5倍した値が得点となる。
ハッカソン開催の根本の目的は上で述べた記事の通り、参加者に普段できないことややったことがないことを挑戦させるということにあると私も思います。そこで2つ目をチャレンジ点としました。
アイディアのユニーク点
10段階で評価。つけた点数を1.2倍した値が得点となる。
ハッカソンで一般的に重要視されるべき箇所としてユニーク性はマストだと思われたので3つ目をユニーク点としました。
コンテンツそのものの完成度
10段階で評価。つけた点数がそのまま得点となる。
コンテンツの完成度についても点をつけさせましたが、チャレンジ点のところで述べたとおり、ハッカソンは参加者にとって試す、チャレンジする機会であるべきと思います。そのため、今回はあまり重要視せず、倍率は1.0倍としました。
審査する前に、各チームには前に出てスライドを使っての発表を行ってもらいました。この場でコンテンツの内容やどんなところを頑張ったか、どこが難しかったか、どこに挑戦したかについて参加者全員に話してもらいました。その後、デモンストレーションの時間を取り、全員に全てのチームの作品を体験させました。
プレゼンの様子。
各チームの成果物
Space Shooterチーム
あえて既存のスペースシューターを完成させずに中途半端なところでパッケージを渡した結果、全く見たことがないスペースシューターのゲームが出来上がりました!
新要素
パワーアップアイテム
移動速度上昇やサブ機体を横に付けたり、シールドを前方に付けたりといった新しいパワーアップアイテム要素を追加していました。
大きなボスとその取り巻き
ゲーム開始後一定時間経過でボスが出現します。画面のほとんどを覆うかのような巨大な敵で、弾を一発当てただけでは倒せません。ボス出現と同時に画面上部にボスの体力ゲージが追加され、とてもゲームらしい画面が現れます。さらに、ボスの取り巻きも現れ、プレイヤーの方にホーミングしてきます。
隕石はただまっすぐに上から下に流れてくるだけなのに対し、ボスはゆっくりと左右に動くので、こちらも動かないといけないんです。でも動くと隕石や取り巻きにやられるリスクが上がってしまう...。個人的にはこのボスの動きが素晴らしいと感じましたね。以前このような記事を読んだことがあるのですが、こちらの記事の「ゲーム性」を考えるのなら、このチームが一番ゲーム性を再現したと言えるのではないかと思いました。
スペースシューターチームのデモの様子。
玉転がしチーム
今回のハッカソンの優勝チームです。超!エキサイティン!! なとても白熱する2人対戦専用の球を使ったゲームでした。
ルール
- プレイヤーは2人で、それぞれ「自信が動いた軌跡上に新たな球を生成する球」(以降プレイヤー1)と、「ぶつかることで相手が生成した球を消すことができる球」(以降プレイヤー2)を操作する。
- ターン数は7ターンで、自分のターンに相手が操作する球をステージから落とせば無条件で自分の勝ちとなる。
- ただし、7ターン以内に決着がつかない場合は、プレイヤー1がステージ上に15個以上の球を生成していた場合、プレイヤー1の勝利となり、15個未満であればプレイヤー2の勝利となる。
既存のゲームの改造というよりもはや全く新しいゲームの作成を行ってもらったといった感じですね(笑)。審査の結果、ユニーク点がとても高かったのが特徴的で、この要素が命運を分けたといった感じです。確かにこのルールの独自性はかなり高かったです。ちなみに、優勝商品はAmazonギフト券 1,500円分です!
玉転がしチームのデモの様子
迷路チーム
ただクリアエリアに行けばクリアだったルールを変更し、条件満たしてからじゃないと脱出できないという脱出ゲームとなっていました!
新要素
敵
ステージ上をうろつくゾンビが現れました。このゾンビがプレイヤーのことを追いかけます。もちろんぶつかった瞬間ゲームオーバーです。
スイッチ
迷路の脱出ポイントに到達しても、スイッチを押していないと脱出できない仕様に生まれ替わっていました。
このチームの凄いところはゲームの完成度が高かったところです。ゲームがホラー路線であるからタイトルロゴをバイ○ハザード風にしたり、SEを自分で作ったり、クリア画面で使う画像を自分で描いたりといった風に、ゲームプレイ以外の細かい点にもとても気を使っていたのが好印象となったみたいです。審査の結果、一番完成度ポイントが高かったのはこちらのチームでした。また、他のチームはUnityパッケージのやりとりで開発をしていたのに対し、こちらのチームではGitを用いてチーム開発をしていたのもよかったですね!
迷路チームのデモの様子。
各チームとも構成員2名のチームだったんですが、全チームとも2名とは思えないようなクオリティのコンテンツを作り上げてしまいました! 少なくとも私が1年だった頃のこの時期にここまではできていませんでした。ただただ脱帽です(笑)
まとめ
今までハッカソンを企画したことが無かったこともあり、うまくいくかどうか不安だらけでした。しかし、一年生は私たち上級生の予想をはるかに超える成長をしていました。プログラミングを始めてまだ数ヶ月であの出来ならば今後どのようになるのか...。とても未来が楽しみな一年生達でした。一年生には今後も内部、外部問わずハッカソンに出たりして腕試しをしたりチーム開発を経験していって成長してほしいと思っています。
P.S.
ハッカソン開催時の様子を見ていたところ、今回のハッカソンの3つの目的、
- 腕試しの機会を与える
- 他の一年生との交流の機会を与える
- チーム活動を経験させる
は全て達成できたのではないかと思っています。この目的を達成できたのは目を見張る成長を見せてくれた一年生やその一年生のサポートをしてくれた上級生の方々、そして何より1年生向けにワークショップの資料を作って開催してくれた上級生の方々のおかげです。本当にありがとうございました。