推しアイデア
探索画面と戦闘画面の境界をなくしたシームレスな進行が特徴です。毎ターン回復する「行動ポイント」内でカードをやり繰りする戦略性と、敗北しても「ソウル」を持ち帰って永続的な能力強化が行えるメタ進行要素により、高いリプレイ性を実現しています。
探索画面と戦闘画面の境界をなくしたシームレスな進行が特徴です。毎ターン回復する「行動ポイント」内でカードをやり繰りする戦略性と、敗北しても「ソウル」を持ち帰って永続的な能力強化が行えるメタ進行要素により、高いリプレイ性を実現しています。
部内ハッカソンで定番となっていた「JavaScriptによるWebアプリ開発」から脱却するためです。「Java単体でPCとスマートフォンの両方で動く」ことを目標とし、審査員に対して技術力の高さと汎用性を証明する目的で開発を開始しました。
Java 25を用いたドメイン駆動設計による4層分離アーキテクチャを採用しました。ゲームのコアルールを副作用のない純関数として実装することで、755件の単体テストを通過する極めて堅牢でバグの起きにくい状態遷移機構を構築しています。
現代のハッカソンでは、環境構築の手間を避けるためにJavaScriptを使ってWebブラウザ上で動かす作品が主流です。しかし、私たちはあえてそこに頼りませんでした。
ゲームのマルチプラットフォーム対応フレームワーク「LibGDX」をベースに据え、PC(Windows/macOS/Linux)のどの環境でもそのままサクサク動く「ネイティブゲーム」を、構築しています。
OSごとの画面サイズの違いや、キーボード・マウスといった操作系統の差分を、裏側の基盤(インフラ層)で完全に吸収するように、どのPCでデモを行っても、画面や操作が破綻しない仕組みを作り上げました。
1プレイわずか3〜5分で終わる手軽なピクセルアートのゲームですが、その裏側は商用システム並みの設計と、数学的なアルゴリズムの塊です。
record クラスを使い、裏側のデータが予期せず書き換わることが絶対にない構造を作りました。また、すべての攻撃や移動などの行動を sealed(封印された)クラスとして定義。プログラムの書き漏らしがあれば「コンパイル段階(ビルド時)」でエラーとして弾かれる、絶対にバグを地レーダー化させない設計を徹底しています。「テストコード 755件」と聞くと、中身のない数合わせのテストだと思うかもしれません。
ですが、私たちのテストは本気です。本プロジェクトは、AI(Claude)のコード生成能力と知見をフルに活かしながら、人間が厳格にレビューと設計の手綱を握るスタイルで開発を進めました。
設計段階から、ゲームの「純粋なコアルール(APの消費計算、バフの残りターン管理、ダメージ計算の境界値)」を、画面描画の処理から完全に切り離しています。この外部の処理に一切邪魔されない「純粋な計算ロジック」だけを狙い撃ちして、755パターンのテストを形にしました。ゲームの基盤部分はデータを直接書き換えない形(純関数)を徹底しているため、機能追加を繰り返しても、既存のゲームシステムが絶対に壊れない堅牢さを数学的に証明しています。
ハッカソンの5分間のデモで見栄えが良いのはもちろんですが、「一本のゲーム」としての完成度にも一切妥協していません。
中央から外側へ能力を伸ばしていく25ノードの巨大な「ソウルツリー(永続強化)」、倒した敵のデータが記録される「図鑑システム」、持っている装備に応じて手札のデッキがその場で自動再構築される「装備システム」など、実装した機能は累積で58個にのぼります。
ダンジョン探索と戦闘の切り替え画面をなくしたシームレスな体験から、セーブデータの世代間クラッシュを防ぐデータ移行の仕組みまで、全方位において「遊べる製品」としてのクオリティを追求しきりました。
カードの種類、移動/攻撃/バフ/罠 属性、物理/魔法
主な操作説明はこちら!
設定画面
音の調整や、UIのプリセットなども調節できます!
敵を倒すたびに図鑑が埋まっていきます!
装備もつけれます!
ハッカソンなので説明用で装備がつけられますがこちらは本来開放性です。
カードを入手すれば増えていく図鑑!
プレイを始めたらこの画面!
カードをクリックしたり数字キーで選択!
ソウルツリー
壁の色が違う箇所は移動カードを使うと通過できます!
