このプロジェクトについて
UnityStarterは、Unreal Engineのアーキテクチャに着想を得た、実運用向けのモジュール式Unity基盤プロジェクトであり、再利用可能なフレームワーク基盤です。そのGameplayFrameworkは、Actor、Pawn、Controller、GameModeを中心にUnreal風のゲームプレイ構成を適用し、Gameplay AbilitiesとGameplayTagsは、明示的なゲームプレイ契約のためのGAS風のアビリティおよびタグ付けプリミティブを提供します。
長期的な反復ニーズを持つ中規模から大規模のUnity制作を対象としています。明示的な所有権境界、パフォーマンスを意識したランタイムシステム、エンジン非依存のコアレイヤー、プロジェクトが所有するビルド/ツール基盤を特徴とします。プロジェクトテンプレートとして使用する場合(UnityでUnityStarter/を開き、同梱ツールでリネーム)も、CycloneGames配下のフォルダを移動してUPMパッケージとして使用する場合もあります。
アーキテクチャ原則には、重要な箇所での純粋なC#優先(コア契約はUnityEngine型を漏らさない)、統合レイヤーとしてのUnity、分離された任意の統合(DIコンテナ、トゥイーンエンジン、シリアライザー、トランスポート、ホットアップデートバックエンド)、設計制約としてのパフォーマンス(ゼロGCまたは低GCのホットパス、再利用可能なバッファ、明示的なライフサイクルクリーンアップ)、プロジェクトが所有するビルド基盤、APIの一部としてのドキュメントが含まれます。
モジュールマップのハイライト:
- Gameplay: GameplayFramework(Actor/Pawn/Controller/GameMode、ライフサイクル、カメラおよびシーンフロー)、GameplayAbilities(データ駆動型アビリティ、属性、エフェクト、コスト、クールダウン、キュー、権限/レプリカロール)、Choreography(エンジン非依存のアクションプレゼンテーションスケジューリング)、GameplayTags(階層タグ、生成された定数、クエリヘルパー、エディタツール)、RPGFoundation、UIFramework(ウィンドウ管理、UIフロー、SLRUキャッシュによるアセットベースのローディング)、Foundation2D。
- AI: BehaviorTree(ランタイム、エディタサポート、テスト)およびAIPerception(Jobs/Burst指向の知覚、センサークエリ、空間構造)。
- Data、Assets、Content: AssetManagement(インターフェース優先のローディング、境界付きセグメント化LRUキャッシュ、CacheRetentionポリシー、診断、非同期フロー)、DataTable(任意のLuban、MessagePack、アセット管理ブリッジを備えたデザイナー向けパイプライン)、GameplayTags.DataTable、Choreographyブリッジ、Localization(ロケールフォールバック、分割されたテキスト/アセット、トランザクションカタログ)、Audio、FontAssets。
- Runtime Infrastructure: Factory(プーリング、DIフレンドリー、ECS/DODバリアント)、LoggingおよびLogging Pipeline(Unity非依存の契約、境界付き処理、シンク、ファイル出力)、DeterministicMath(リプレイ/ロックステップ用の固定小数点数学)、Hash、IO、Persistence(Record V1整合性チェックを備えたバージョン付き単一レコードオーケストレーション)とSystemIO、VYamlおよびMessagePackコーデック、InputSystem(YAMLオーサリング、マッピングコンテキスト、プレイヤーごとのデバイス所有権、ローカルマルチプレイヤー)、DeviceFeedback、SettingsおよびSettings.Persistence、Utility、Cheat。
- Build、Tools、Quality: Build(プロジェクトが所有するプレイヤービルドパイプライン、バージョン情報、任意のホットアップデートフック、CI向けメソッド)、Tools(リネーム、パッケージトリミング、クリーンアップ、ファイルツリー、オーディオ正規化、テクスチャチャネルパッキング、WebM変換のためのGoユーティリティ)、Analyzers(Assets/Default.rulesetを介して段階化された20以上のRoslynルール)。
ネットワーキングモジュール(Networking、GameplayFramework.Networking、AIPerception.Networking、BehaviorTree.Networking、RPGFoundationの移動/インタラクション/プロジェクタイルネットワーキング)は実験的と記載されており、本番採用前にエンドツーエンドの検証が必要です。
ビルドとCI: Assets/Build/はプロジェクトが所有する基盤であり、BuildData ScriptableObject構成、GitまたはPerforceのリビジョンメタデータ、エディタメニュー項目とコマンドラインエントリポイント、任意のHybridCLR、Obfuz、YooAsset 3、Addressables統合、および単一のCIエントリポイントBuild.Pipeline.Editor.BuildEntryPoints.RunCommandLineを備えています。バッチモードおよびリリースビルドにはバージョン管理メタデータが必要で、対話型のDevelopmentビルドのみがLocalDevelopmentフォールバックを使用できます。
はじめに: リポジトリをクローンし、Unity HubでUnityStarter/を開き、Scene_Launch.unityを開き、GameplayFrameworkとBuildのREADMEを読み、新しいプロジェクトを派生させる際にはrename_project.exeを実行します。個々のモジュールは、package.json、asmdefファイル、依存関係を確認した後、Assets/ThirdParty/CycloneGames/からコピーできます。
テクノロジースタックの例には、UniTask、R3、VitalRouter、VYaml、Burst、Collections、Mathematics、Input System、Cinemachine、URP、TextMeshPro、UGUI、Splines、Scriptable Build Pipeline、NuGetForUnity、および任意のVContainer、PrimeTween、Navigathena、Luban、MessagePack、HybridCLR、YooAsset、Addressables、Obfuz、Mirror、Mirageが含まれます。このプロジェクトはMITライセンスで、英語と簡体字中国語の二言語でドキュメント化されています。
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.