Tyou — CocosCreator 向け基礎フレームワーク

Library

概要

Tyou は CocosCreator 3.8.7 をターゲットにした基礎フレームワークで、特に Unity から CocosCreator へ移行する開発者を念頭に置いて設計されています。リポジトリ内の README によれば、フレームワークの設計は Unity のオープンソースフレームワーク(TEngine / YouYouFrameWork)や CocosCreator 向けの各種 OSS を参考にしており、TypeScript で実装されています。主要な機能として、グローバル単一インスタンスでのモジュールアクセス(tyou.*)、UI のスタック管理とレイヤー制御、リソースのインデックス化と自動参照カウント、バンドル分割ロード、ノード/クラスのオブジェクトプール、優先度付きイベントや async/await で待機できるイベント、最小ヒープに基づく高性能タイマー、非同期遷移に対応した FSM、そして基本的な ECS を備えています。これらの機能は小〜中規模の CCC プロジェクトで迅速に組織化された基盤を提供します。

GitHub

リポジトリの統計情報

  • スター数: 21
  • フォーク数: 2
  • ウォッチャー数: 21
  • コミット数: 4
  • ファイル数: 4
  • メインの言語: TypeScript

主な特徴

  • 全局シングルトンアーキテクチャ(tyou.* 経由でモジュールへアクセス)
  • UI: スタック管理 + レイヤー制御 + 背景のぼかし + 右クリック生成の UI コードサポート
  • リソース管理: インデックス、参照カウント、遅延解放、Bundle 階層ロード
  • 高性能ユーティリティ: オブジェクトプール、優先度付きイベント、最小ヒープベースのタイマー、非同期 FSM、基本的な ECS

技術的なポイント

README に挙げられている機能から読み取れる Tyou の技術的特徴と実装上の注目点を整理します。

  1. グローバルシングルトン設計 Tyou は “tyou.*” という名前空間を通して全モジュールへ直接アクセスする設計を採用しています。Unity ライクな開発者には馴染みやすく、頻繁な getComponent 呼び出しやシーン間での参照管理を簡潔にできます。とはいえグローバルアクセスは依存管理を曖昧にしがちなので、実運用では明確な初期化/破棄フローとユニットテストを用意することが推奨されます。

  2. UI 管理(スタック+レイヤー) UI はスタック式で管理され、前後関係を自然に扱えるためモーダルや画面遷移に向いています。レイヤー(背景、メイン、ポップアップ等)と組み合わせることで Z オーダーや入力遮断が容易になります。README にある「右クリック一键生成 UI 代码」は開発効率を高めるコード生成ツールを示唆しており、ボタンやバインディングの自動生成で boilerplate を削減できます。

  3. リソース管理と Bundle 戦略 リソースは索引化され、参照カウントで管理されるため、不要なリソースの早期解放や循環参照の検出に役立ちます。Bundle の階層的読み込みは大規模タイトルでのロード最適化(シーンや DLC 毎の分割)に直結します。遅延解放を組み合わせることでガベージのピーク負荷を抑える実装が可能です。

  4. オブジェクトプールとユーティリティ型プール Node プールと Class プールを標準搭載し、頻繁に生成・破棄されるオブジェクト(エフェクト、弾、ベクトル構造等)を効率的に再利用できます。README に Vec3/Vec2/Color 等の型プール記述があり、GC 発生を抑えてフレームレートの安定化に寄与します。

  5. イベントとタイマー 優先度付きイベントや async/await による待機可能なイベントは、非同期処理やインゲームのシーケンス制御(カットシーン、遷移処理等)を簡潔に書ける点が利点です。タイマーは最小ヒープ(min-heap)を用いることで多数のタイマー管理でもオーバーヘッドを低く抑え、高性能なスケジューリングを実現します。

  6. FSM と ECS の組合せ 有限状態機(FSM)は非同期状態遷移をサポートしており、ネットワーク待ちや演出中の遷移を安全に扱えます。加えて基本的な ECS(Entity-Component-System)により、ゲームロジックの分離と再利用性が高まります。README の「bitm…」の記述からビットマスク等を用いた高速なコンポーネントフィルタリングが想像され、多数のエンティティを扱う場合に有効です。

実際の採用上のポイント

  • Unity から移る開発者は、グローバルアクセスやシングルトン慣習がそのまま使えるため学習コストが低い。
  • ただしプロダクション導入時はリソースバンドル設計、ライフサイクル管理、依存注入の仕組みを検討してメンテナンス性を確保すること。
  • TypeScript ベースのため型定義を活用すれば IDE 補完や型安全性による開発速度向上が見込める。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .gitignore: file
  • Client: dir
  • Design: dir
  • README.md: file

上記はリポジトリのルートにある主要要素で、Client 配下に実装コード(TypeScript)やエントリが含まれている想定です。Design ディレクトリは UI 設計やアセットの参照資料を置くためのものと思われ、README には導入手順や特性一覧がまとめられています。

まとめ

Unity から CocosCreator へ移行する開発チームに適した、実用的で学習コストの低い基礎フレームワーク。

リポジトリ情報:

(参考: README 抜粋に基づく要約)