Back to Projects

Solo Developer  |  2024.02 — Present

TFramework

TFramework

Overview

自分自身の過去の開発経験・知見を集約して構築した個人プロジェクトとしてのゲーム開発用ベースフレームワークです。

Role & Responsibilities

構想、アーキテクチャ設計から実装まで一人で行いました。 - クリーンアーキテクチャやMVPパターンの導入 - DIコンテナ(VContainer)を利用した依存性の注入 - R3 や UniTask を用いたリアクティブ・イベント駆動アーキテクチャ

Challenges

新規プロジェクトを立ち上げる際、UI管理、音響管理、ステート遷移などのいわゆる「基盤部分」は毎回同じようなコードを書き直す必要が生じがちで、保守性や開発スピードに課題がありました。さらに、プロジェクトがスケールするにつれて、シングルトンパターンの乱用による密結合が発生し、テスト容易性が低下する問題がありました。

Solutions & Architecture

この課題を解決するため、特定のゲームジャンルに依存せず汎用的に利用できるコンポーネント群をTFrameworkとしてパッケージ化しました。 - シングルトンを極力排除し、VContainerによるDI(Dependency Injection)を全面的に採用してクラス間の結合度を下げました。 - イベント通知や状態管理にはR3 (Reactive Extensions)を採用し、通知時のメモリアロケーションを抑制しつつ宣言的なUIバインディングを実現。 - Addressablesによるアセットロードをネイティブにサポートする非同期UIマネージャーを実装。

Results

現在は個人開発タイトル「Vox Dungeon」の開発基盤として実戦投入しており、FSMによるバトル進行、シーン遷移、UIのPageスタック管理、Addressablesによるアセットロードを本フレームワーク上で運用。実際のゲーム開発を通じて発見された課題(DIスコープ設計の最適化、EventSystemの所有権管理、AudioListenerの配置方針など)を随時フレームワーク側にフィードバックし、継続的に改善を重ねている。

また、この開発を通じて得たモダンなアーキテクチャ設計(DI, Rx等)の知見は、実務においても設計提案やコードレビューに活かせると考えている。

Next Project

Vox Dungeon →