Waverです。
6/22(土)に行われたハッカソンにてTeam resonanceとして参加し、ゲームSonarを制作しました。制作のかいあって見事Git賞をいただきました!チームメンバーの皆さんありがとうございました!
今回のハッカソンではテーマが「あい」、「わ」ということでチームとしてはまず作りたいものを決めてテーマとの関連をこじつけました。 テーマがゲームの中で題材として使われるように頑張って調整しました。
ゲームSonarの設定としては、戦艦同士が夜間戦闘を繰り広げるというもので、ソナーを用いて敵を探知し、砲弾を発射、敵を撃沈させるというゲームになっています。ソナー探知時の敵の居場所を「わ」で表示し、突然敵と「あい」対する遭遇戦というコンセプトのもと、テーマ回収をしました。
動画
チームメンバー
- eiya(TA)
- zln(プログラマー)
- JOY(プログラマー)
- gymnema(プログラマー)
- Adwaver_4157(プログラマー)
制作経緯
企画
ハッカソンのチームが決まり、本格的に始動し始めたのは、ハッカソン3週間前でした。そこでの話し合いの結果、暗闇の中での戦闘、ソナーを使うような「対戦」ゲームを作ることが決まり、使用する言語はC++、ライブラリはOpenSiv3Dとなりました。このライブラリを使うに至った経緯としては、
とりあえずゲームを作るからC++なのは確定
↓
ライブラリは使ったことのある人が多い DxLibを使おう!
↓
しかしみんなのOSがばらばらでDxLibではチームでの作業がしずらい
↓
ここでeiya先輩がどちらのMac、Windowsどちらでも使えるOpenSiv3Dを発見
↓
じゃあそれを使おう!
といった感じでした。
制作
ハッカソン当日、9時から制作を開始しました。
まず最初にゲーム画面、ゲームの処理ごとに制作の割り振りが行われました。ゲームの自機や当たり判定などをzln君が、ゲームの砲弾の処理をgymnema君が、Result画面をJOY君が、Title画面をWaverが、そして今回実装が一番重い通信部分をeiya先輩が担当することになりました。
午前中は特に問題もなく各々作業を進めることができていたと思います。昼休憩に入るまでにTitle画面、Result画面がほぼ完成し、ゲームの処理の方も着実に進んでいました。
昼休憩をはさんで午後の部がスタート。午前中に最初に割り振られたタスクを終えた人は、自分のできる範囲で細かいところを実装していき、ゲームの処理を担当している人は、引き続き完成に向けてeiya先輩と相談しながら進めていました。そして3時ごろについにゲームの処理の骨組みが完成しました!あとは実際に動かしながら修正を加えるだけ…しかしここからが大変でした。
今回作ろうとしたゲームSonarは、「対戦プレー」ができることを目指していました。はい…この「対戦」に当たる通信部分が曲者でした。ゲームの骨組みができていた時点で通信部分もほぼほぼ完成していたのですが、いざ実装してみるとうまく動作しなかったのです。ここからeiya先輩の怒涛の修正作業が始まりました。
修正→commit→push→pull→修正→commit→push→pullの繰り返しをひたすら行いチーム全員のパソコンを使って通信テストをしました。もうこれが大変でした。もちろん一番大変だったのはeiya先輩ですが…。
通信部分の修正が果たされることなく、無情にも制作終了の時間がきてしまいました。しかし、幸運にも?我々のチームの発表は最後ということに気づいた一同。発表までの間、発表用のスライドの用意を含めゲームの修正をひそかに続けていました(すいません)。そして何とか通信部分のエラーを修正(eiya先輩曰く握りつぶした)。発表までに形にすることができました!
発表
Team resonanceはハッカソンチームの中で最後に発表をしました。発表はJOY君が担当し、順調に進められていきました。しかし、いよいよ実演プレーをする…という時に、私(Waver)は重大なミスを犯しました。実演で使う自分のPCのマカフィーのファイアウォールを切り忘れていたのです!このミスのせいで発表時間中にうまく実演することができませんでした。すいませんでした!!
以上のように問題を抱えながらも、何とか発表まで終えることができ、ホッとしました。その後の表彰では、怒涛の修正の甲斐あってかなんとGit賞をいただきました!まさか賞を頂けるとは思ってもみなかったので非常に嬉しかったです!チームメンバーの皆さんありがとうございました!
工夫点・苦労した点
プログラム
- 敵をソナーで探知する際の円の表示
- 操作する船がリアル(慣性系上で動くように設定)
- 砲弾にホーミング機能搭載しようとした
- スキャンボタンを押す時間の長さによってスキャンの種類を変えようとした
- (対戦通信ができるようにした)
グラフィック・サウンド
- このチーム皆プログラマです…はい…フリ素フル活用です…
ゲームの紹介
操作方法
- 上下移動:W(上)、S(下)
- 方向転換:D(右)、A(左)
- 弾を打つ:X
- スキャン:Z
Title画面
部屋を作った時の画面
部屋に入る時の画面
Game画面
Result画面
感想
今回のハッカソンを通して、チーム開発の難しさやそんな中でも作品が形になっていく楽しさを肌で感じ、非常に良い経験でした。改めてハッカソン運営の先輩方、チームメンバーの皆さんありがとうございました。また、チームに貢献できるほどの技量がなく、もどかしさを感じることが多々あり、技術力アップが今後の課題だなと気づかされました。こうした自分の限界を試す機会があってこそ、今の自分を知ることができるのでハッカソンに参加してよかったと思いました。