Yahoo! Japan主催のHack U 2017 NAGOYAで最優秀賞とHappy Hacking賞をダブル受賞しました

f:id:yurafuca:20171008142941j:plain

諸事情で公開が遅れてしまいましたが,Yahoo! Japan 主催のハッカソン『Hack U 2017 NAGOYA』に出場して,最優秀賞と Happy Hacking 賞をダブル受賞しました.

メンバーは @garicchi@drilldripper@yurafuca(僕)です.

「最高の夏にするぞ!」「やっていくぞ!」などと言いながら奇妙に速が上がった状態で開発を進めていたら本当に最高の夏を手に入れることができました.2017 年夏,本当にありがとう…….

 プロダクト紹介

『みずかけメモリアル』というゲームを作りました*1

f:id:yurafuca:20170908123054p:plain

最高の夏を最高の美少女と一緒に過ごしたい。そんな純粋な気持ちを叶えてくれるオンラインゲームを作りました。ゲームを始めると対戦相手(美少女)とマッチングし、バーチャル空間の砂浜で水をかけあうことができます。ゲーム中で水をかけられると、現実世界のあなたにも水がかかります。圧倒的なリアリティで忘れられない夏を送りましょう。(作品概要より)

スマートフォンにゲームクライアントをインストールして画面をタップすると,霧吹きから水が噴出されます.そして,顔に水がかかります(!).

遊び方

ゲームを起動します.名前を決めてログインをしたら「マッチング開始」ボタンを押しましょう.世界中のどこかの美少女とのマッチングが開始します.

f:id:yurafuca:20170908122953p:plain

マッチングが完了したらフィールドにいる女の子に向かって水をかけましょう.ライバルの女の子も同様に水をかけてきますから,移動しながらうまく避けましょう.このときフィールドにあるのは,美少女のあなたと,美少女のライバル,そして薄暮のような砂浜だけです.

ライバルの女の子がかけた水があなたにヒットすると,あなたの目の前に置かれた霧吹きから水が噴射されます.仮想世界のあなたと,現実世界のあなたは完全に繋がっています.

今回の Hack U のテーマは「UPDATE 夏休み!」でした.砂浜で女の子と水をかけあうことで夏を UPDATE しましょう.詳しい説明はプレゼンの動画をみてください.

技術スタック

f:id:yurafuca:20170908124155p:plain

ゲームクライアントは Unity で実装されています.プレイヤーの移動や水かけを同期するために WebSocket を使用して,Node.js で実装されたマッチングサーバと通信します.水がヒットすると Raspberry Piサーボモーターを回転させ,ノズルを引き,水を噴出させます.ユーザーの登録やスコアの更新などは Rails で実装した API を使用します.

C#RailsJavaScript が得意なメンバーが集ったので,それぞれゲームクライアント(@garicchi),API サーバ(@drilldripper),ゲームサーバ(@yurafuca)を担当しました.

WebSocket

日頃から JavaScript で『にこさぽ』のような Chrome拡張を作ったりしていたのですが,WebSocket を使ったプロダクトを開発したことはありませんでした.

開発期間を迎えて突然ハッカソン用のコードを書くのにはすこし不安がありましたし,比較的早い段階で WebSocket を使用することがわかっていましたから,練習をかねて CGIBOY 風の簡単なチャットアプリを作りました.このときの記事もいずれ書きたいです.

レトロチャット

これは WebSocket と直接の関係がない話ですが,サーバーに EC2 を,DB にDynamoDB を使用しています.

特に手詰まりすることもなく,比較的スムーズに実装できました.WebSocket のコツを掴めましたし,AWS の簡単な知見も得られたのでよい経験だったと思います.

余興

せっかくチームで開発するということで,マスコットキャラクターを作りました.『芋焼酎ちゃん』です.かわいいですね.ところで醸造酒はほとんど飲みません*2

f:id:yurafuca:20170908130848p:plain

ところでこれは,Tシャツ屋さんの様子です.インターネットっぽい.

f:id:yurafuca:20170908131249j:plain

「チーム開発だし T シャツを作ると盛り上がってよさそう」という理由で T シャツを作りました.最高ですね.使用したアイロンとアイロン台は自宅から大学に持ち運ばれたものです.

最後にプロダクトのウェブサイトを作りました.行き過ぎた合理化はメンバーの士気を下げますから,こういう「くだらないけどエモいから間違いないんじゃないか」みたいな遊びを取り入れていきたいですね.

みずかけメモリアル

受賞

実は開発段階では,最優秀賞を狙うのは難しいと感じていました.理由は,歴代の Hack U ではゲームが最優秀賞を受賞したことがほぼなかったからです.最優秀賞を受賞したほとんどのプロダクトは「ハッカソン的な遊びがあり,応用次第で真面目な製品やサービスとして展開できそう」といった種類のものでした.

それだけに Happy Hacking 賞と最優秀賞をダブル受賞できたのは大変嬉しかったです.Happy Hacking 賞を受賞した時点で「いやー満足,よくやったよな俺ら」などと言って脱力していましたから,最優秀賞を受賞したときは完全に狼狽していました.

賞品

最優秀賞の賞品として DJI のドローンをいただきました.

9月末日,まるであの日が戻ってきたかのような夏日に,僕らは手に入れたドローンを飛ばして,夏に別れを告げました.

f:id:yurafuca:20171008150613j:plain

これからもやっていきの気持ちを忘れないように暮らしをしたいですね.ありがとうございました!

他のメンバーの受賞レビュー

Hack U 2017 NAGOYAで最優秀賞とHappy Hacking賞をダブル受賞しました - drilldripper’s blog

HackU Nagoya 2017にゲームを作って出場して最優秀賞とHappyHacking賞のダブル受賞をしました – garicchi.com

*1:タイトルは僕の発案です.

*2:ウイスキーをよく飲みます.