/GET/ENTRIES/WORKS/570e1r020p

term: 2024.3
role: デモ版の実装
member: 1名
link: TBD
gh-repo: TBD
tags
skills
チェインズ
落ちコンカードゲーム「チェインズ」という企画に参加し、デモ版の実装を行いました。
企画概要
「チェインズ」は、手札のカードを条件に沿って連鎖(チェイン)させ、敵と戦う落ちコン型カードゲームです。カードをただ出すだけでなく、前に出したカードの属性やアクション値を条件として次のカードがつながる「チェイン」という独自の仕組みが戦略の核心となっています。
実装内容
デモ版は SvelteKit + TypeScript + Electron で構築しました。ゲームロジックの中心となる GameManager クラスを設計・実装し、プレイヤーと敵それぞれのデッキ・手札・ステータスを管理する状態機械として機能します。
チェイン処理は再帰的に実装しており、直前に出たカードを「親」として、手札から条件を満たす「子」カードを順番に探索し、自動的に連鎖させていきます。 条件の種類はカードタイプ・レアリティ・アクション値の大小比較・特定カードIDなど複数のパターンに対応しています。
敵 AI もシンプルながら実装しており、タイムアウトを使った非同期ターン処理によってプレイヤーの操作とスムーズに交互進行します。 ステージ・フェーズ構造も設計し、フェーズをクリアするごとに次の敵へ進む進行管理も組み込みました。
技術的なこだわり
Combatant インターフェースでプレイヤーと敵を共通の型として扱い、カードインスタンスには一意の instanceId を付与することで、同名カードが複数手札にある場合も個別に追跡できる設計にしました。 チュートリアル・デモ向けに手札を任意のカードセットで初期化するメソッドも用意しており、体験設計の柔軟性も確保しています。
また、UI 演出面では GSAP を用いてカードのドロー・プレイ・チェイン発動時のアニメーションを実装し、ゲームロジックと連動した動きで「つながっていく気持ちよさ」を感じられるよう工夫しました。