2026年度 春ハッカソン 26班では、 Protocol Vortex という、3×3対戦型パズルゲームを作りました。
試遊会においても、かなり多くの人に遊んでもらうことができ、最優秀賞も獲得することができました。
タイトル画面

プレイ中の画像

仕様の決定に至るまで
今回の春ハッカソンのテーマは「かん」「きゅう」でした。
アイデア出しの段階で、「きゅう」を9と解釈し、9マスのパズルで何かをするゲームを作ろうという案がありました。
その後、これに対戦という要素を加え、回転式パズルを採用し、試作版をCodexに作ってもらいました。
当初は盤面が完全に完成したら攻撃や防御などのアクションをとるという方針でしたが、パズルの完成頻度が割と低いので、段階的に攻撃を送れないかという議論になりました。
その議論で、ビンゴのように行や列が揃ったら攻撃が送られるという案が出て、それを採用し、そのまま使用が決定しました。
ちなみに、対角線上の攻撃も許容すると中央を最後に揃えたときに全マス攻撃が送れてしまうので没になりました。
ゲームの仕様
仕様は以下の通りです。長いので折りたたんでおきます。
ゲーム進行
詳細
- ゲームは5つのラウンドからなる。
- 最初の4ラウンドは40秒間であり、最後の1ラウンドは時間無制限である。
- 各ラウンド終了後、強化フェーズというものがあり、基本能力の強化や特殊能力の取得ができる。
- 能力はランダムな3つが提示され、その中から好きな1つを選ぶというローグライク形式である。
各ラウンドでの仕様
詳細
- 特定の画像が3×3の9個に分割され、それぞれの向きがランダムに定まる。最初から正しい向きであることはない。
- この9個のタイルの向きを全て正しい向きに直すのが目的である。
- 盤面のタイルがだんだんと揃っていく段階で、攻撃予告を相手に送ることができる。
- あるタイルが初めて揃った時、そのタイルを含む行が全て揃った状態になったら、その行の形に沿って相手の盤面に攻撃予告を送ることができる。
- 同様にあるタイルが初めて揃った時、そのタイルを含む列がすべてそろった状態になったら、その列の形に沿って相手の盤面に攻撃予告を送ることができる。
- 行や列に対する攻撃予告は同時に発動することがある。つまり、L字型や十字型の攻撃予告もあり得る。
- 盤面上のタイルがすべて正しい向きにそろった場合、特定のマスがハイライトされ、そのマスを選択した状態であるボタン(SpaceキーまたはAボタン)を押すことでBreak Attackという、相手の盤面に、相異なるランダムな5~8マス分の攻撃予告を送ることができる。
- Break Attackの発動後は盤面の画像が更新され、再び揃える段階に移行する。
- 攻撃予告とは盤面上に出現する、「!」が書かれた正方形のことである。
- この正方形は、攻撃予告がそのマスにいくつ存在するかを表す。
- そのマスに1つの攻撃予告が存在するならば赤色
- そのマスに2つの攻撃予告が存在するならば黄色
- そのマスに3つ以上の攻撃予告が存在するならば紫色
- 攻撃予告は、出現してから一定時間後、点滅し、その点滅が終了する瞬間に、プレイヤーがそのマスを選択していればそのプレイヤーにダメージが入る。
- ラウンド中、どちらかのプレイヤーのHPが0になったら試合は終了し、どちらが勝ったかの結果が表示される。
- この正方形は、攻撃予告がそのマスにいくつ存在するかを表す。
強化フェーズで出現する能力の例
詳細
明示されていない限り、効果は永続的です。
- 攻撃力上昇...攻撃力が特定の値[200,400]だけ上昇する。
- 即時回復...取得した瞬間に特定の値[200,600]だけHPが回復する。
- 即時ダメージ...取得した瞬間に特定の値[300,600]だけ相手にダメージを与える。
- 回転速度上昇...タイルの回転にかかる時間が短縮される。
- 攻撃ラグ減少...相手に送った攻撃予告が実際にダメージ判定を持つまでの時間を指定した量[0.2秒,0.3秒]だけ短縮する。
- 攻撃ヒット回復...相手に攻撃が当たるたびに自身のHPを100だけ回復させる。
- 自動Break...全てのタイルが揃ったら、ハイライトされたマスに行かなくても勝手にBreak Attackが発動する。
- 攻撃力上昇2...次のラウンドのみ、600だけ攻撃力が上昇する。
- 移動時回復...選択したマスを切り替えるたびにHPが5だけ回復する。
- Break時回復...Break Attackをするたびに自身のHPを200ずつ回復させる。
- Break時攻撃力上昇...Break Attackをするたびに自身の攻撃力を50ずつ上昇させる。
- コンボ...攻撃(行や列の完成やBreak Attack)を送る間隔が1.5秒以内である限り、各攻撃ごとに攻撃力が50ずつ増加する。もし途切れた場合は攻撃力がコンボ前にリセットされる
メンバー紹介
@2251799813685248 25B, リーダー, プログラマー
@MP24B, プログラマー, サウンド担当
@ruraruto24625B, グラフィック担当
@makaron080726B, プログラマー
@rin_DB26B, プログラマー
@torion_ooo26B, プログラマー
作成段階
まず、Codexに大まかなロジックを作ってもらい、人が機能を充実させるという方針をとろうとしました。
しかし、当日にCodexとGitHub Copilotを間違えてしまい、結構なタイムロスになってしまいました。
2時間ぐらい飛びましたが、Codexに切り替えた後はちゃんと実装してくれました。
この段階でBattleGameManager.csという神ができました。
大まかなロジックが完成した後、各ユーザーごとのフォルダーを作り、ロジックをその内部にコピーしておき、各ユーザーが完全独立した状態で作業できるようにしました。これは主にGitのコンフリクトを防ぐ目的で行っています。
その後、一日目の14時になってやっと新入生への本格的なタスク割り振りが開始しました。初動がかなり遅れましたが、その後は特に大きなバグもコンフリクトもなく、一日目の共同開発は終えることができました。
その後、リーダーは一旦ABC464に出て、(負けて、)とりあえず1問解き、作業に戻り、@MP, @ruraruto246は作業を継続し、新入生は明日に向けて早めに寝てもらいました。
次の日も特に大きなバグはなく、順調に実装を進め、アニメーションや効果音をより爽快なものに変更し、ユーザー体験の向上を目指しました。
感想
-
@2251799813685248- 今回のハッカソンで初めてリーダーになりました。今まではアイデア会議の日程調整をリーダーに投げていましたが、自分でやるとなると意外と難しいことが分かりました。全然みんなの予定が合いません。結局、最初の二日はオンラインでの会議となりました。しかし、対面で集まることができた3日目には、モックによる試遊などもあり、3×3回転式パズルによる対戦ゲームという骨格部をすでに確定させることができました。案が早めに確定したので、残りの2日の会議は仕様の詳細決定や、実装方針の決定を行うことができ、本番でのトラブルを最小限に抑えることができたと思います。特に、
@MPさんの「作業者ごとにシーンを完全分離してもらう」という方針により、git関連の問題はほぼ起こさずに済みました。 - 開発当日は、
@MPさんがタスク管理、私が難しめの部分の実装、新入生には簡単~標準的な機能の実装、@ruraruto246さんにはアイコンや背景画像などの作成をしてもらいました。 - 初めてのリーダーでしたが、頼りになる先輩と、一瞬で素材を完成させてくれたグラフィック担当と、バグをほぼ起こさずに正確に実装してくれた新入生のおかげでゲームを完成させ、最優秀賞まで取ることができました。
- 今回のハッカソンで初めてリーダーになりました。今まではアイデア会議の日程調整をリーダーに投げていましたが、自分でやるとなると意外と難しいことが分かりました。全然みんなの予定が合いません。結局、最初の二日はオンラインでの会議となりました。しかし、対面で集まることができた3日目には、モックによる試遊などもあり、3×3回転式パズルによる対戦ゲームという骨格部をすでに確定させることができました。案が早めに確定したので、残りの2日の会議は仕様の詳細決定や、実装方針の決定を行うことができ、本番でのトラブルを最小限に抑えることができたと思います。特に、
-
@MP- モックや基盤の作成、タスク分配、サウンドを担当しました!今回はコアの体験の面白さをかなり重要視していたので、準備期間中に「タイルの絵柄を揃えつつ攻撃を送り合う」という基盤を作れたことがすごく良かったです。AIが強い時代にどうタスクを振るのがいいか、というのはすごく悩みましたが結果としていい感じにできたんじゃないかな~って思います。
-
@ruraruto246- グラフィック全般を担当しました!自分が描いた素材がプログラマーの皆さんの手によってゲームとして動いていてまず感動でした。そして自分が制作したゲームをたくさんの人に遊んでもらうのが初めてで本当に嬉しかったです。ゲームの共同開発やアイディアの出し方など今後参考になる知見を多く得られた本当に貴重な機会でした。チームメンバー全員本当にありがとうございました!
-
@makaron0807- アップグレードの実装とタイトルの実装をしました(
@torion_oooと)。プログラミングもunityも大学から始めて何もわかっていませんでしたが、ハッカソンを通してゲーム制作について少し学ぶことができました。これが最後の活動にならないように今回の経験を活かしていけたらなと思います。楽しい一週間でした!ありがとうございました!
- アップグレードの実装とタイトルの実装をしました(
-
@rin_DB- 初日はアップグレードの実装をオンラインで行いました。二日目はリザルト画面の実装を行いました。Unityを用いたコーディングは初めてで、しかも実際に一つのゲームを作ったのは人生で初めてでした。先輩方に構文の書き方や共同作業を行うときの注意点などを教わりながら、AIを使ってコードの意味を理解したりと、この2日間でゲーム制作の様々な知識を得ることができました。また、発表会の時に自分たちが作ったゲームを多くの人に遊んでもらっているのを見ているとゲーム作りの楽しさを十分に実感することが出来と思いました。様々なことを経験出来てとても有意義来な2日間でした。本当にありがとうございました。
-
@torion_ooo- 1日目はアップグレードの実装を進め、2日目は他の26Bの2人がそれぞれ作業しているところのお手伝い(という名のくねくね…?)をしました。
- ゲーム制作未経験の状態で参加し、準備期間では熱が出て寝込んでしまったこともあり不安でいっぱいでしたが、先輩方の支えもあり無事乗り切ることができました。みんなで作り上げたゲームを遊んでもらえるってこんなにうれしいんだと実感でき、技術面だけでなくチーム開発の進み方も知れて貴重な経験をさせていただけました。改めてメンバーの皆さんには感謝しかないです、本当にありがとうございました!