Refactor GameplayTag documentation and implementation

- Updated references from GI_GameTagRegistry to DA_GameTagRegistry in architecture overview and implementation patterns documentation.
- Added new Blueprint specification for GI_StarterGameInstance, detailing its purpose, configuration, and integration pattern.
- Introduced DA_GameTagRegistry Blueprint specification, centralizing GameplayTag management and providing functions for tag validation and logging.
- Created documentation for the Starter GameInstance, outlining its role in the project setup and how other systems can integrate with it.
This commit is contained in:
Lefteris Notas
2026-05-20 14:31:52 +03:00
parent 3023ad3555
commit fee12b115f
17 changed files with 927 additions and 423 deletions

View File

@@ -8,7 +8,7 @@
| # | System | Asset Type | Role |
|---|--------|-----------|------|
| 01 | `GI_GameTagRegistry` | Data Asset | Central GameplayTag namespace registry & validation |
| 01 | `DA_GameTagRegistry` | Data Asset | Central GameplayTag namespace registry & validation |
| 02 | `FL_GameUtilities` | Function Library | Static utility functions (safe casts, math, tags, debug) |
| 03 | `I_InterfaceLibrary` | Interface Collection | All 9 framework interfaces for decoupled communication |
| 04 | `GI_GameFramework` | Game Instance | Application kernel; owns subsystems, manages game phases |
@@ -42,7 +42,7 @@
│ ├─► Bind to GI_GameFramework.OnGamePhaseChanged │
│ └─► Tick: accumulate ElapsedPlayTime when InGame │
│ │
│ ALL SYSTEMS query GameplayTags via GI_GameTagRegistry │
│ ALL SYSTEMS query GameplayTags via DA_GameTagRegistry
│ ALL SYSTEMS use FL_GameUtilities for safe casts & logging │
│ ALL SYSTEMS communicate via I_InterfaceLibrary interfaces │
│ ALL ITEMS are defined as DA_ItemData Data Assets │
@@ -51,7 +51,7 @@
---
## 01 — GI_GameTagRegistry: Central GameplayTag Registry
## 01 — DA_GameTagRegistry: Central GameplayTag Registry
**What It Does:** This is a **documentation anchor** Data Asset, not a runtime tag database. The actual GameplayTag definitions live in `DefaultGameplayTags.ini`, but this asset serves as the single place where all framework tag namespaces are documented and validated. Every system that uses GameplayTags references them from this registry's documented namespaces.
@@ -298,7 +298,7 @@ MainMenu → Loading → InGame ⇄ Paused
**How It Works Internally:**
**Core Properties (every item has these):**
- `ItemTag` (GameplayTag) — unique identifier, must be registered in `GI_GameTagRegistry`
- `ItemTag` (GameplayTag) — unique identifier, must be registered in `DA_GameTagRegistry`
- `DisplayName`, `Description` (FText) — player-facing text
- `Icon` (Texture2D soft reference) — UI icon
- `WorldMesh` (StaticMesh soft reference) — 3D mesh when dropped in world
@@ -361,7 +361,7 @@ MainMenu → Loading → InGame ⇄ Paused
13. DA_ItemData assets are loaded on demand ← Asset Manager async loads
14. FL_GameUtilities calls available immediately ← Static library
15. GI_GameTagRegistry.OnAssetLoaded() ← Fires when data asset loads
15. DA_GameTagRegistry loaded by Asset Manager ← Fires when data asset loads (no native OnAssetLoaded in BP)
```
---
@@ -385,7 +385,7 @@ MainMenu → Loading → InGame ⇄ Paused
| `GI_GameFramework` | GamePhase, session flags | Server sets; clients read via replicated dispatcher |
| `GM_CoreGameMode` | Player spawning, chapter transitions, death routing | Server-only (extends replicated GameMode) |
| `GS_CoreGameState` | Shared session state bus | **Fully replicated** — 5 vars with OnRep handlers |
| `GI_GameTagRegistry` | Tag documentation | Read-only config — identical on all clients |
| `DA_GameTagRegistry` | Tag documentation | Read-only config — identical on all clients |
| `FL_GameUtilities` | Static utilities | No state — callable from any side |
| `I_InterfaceLibrary` | Communication contracts | Interface calls work on any side; mutators must check authority |
| `DA_ItemData` | Item definitions | Read-only Data Asset — identical on all clients |