Documentation / Tile Tick Core RPG / Programmer

Architecture & Runtime Flow

Understand the framework boundaries, authority model, composition, and runtime lifecycle before changing code.

The framework has one gameplay architecture for dedicated server, host, and remote clients. The server owns truth, shared services own rules, NGO bridges carry requests and replication, and scene presentation binds only to the locally owned player.

Layer model

LayerResponsibilityExamples
Tile Tick MovementGameplay clock, grids, tile coordinates, pathfinding, motorTickManager, GridManager, TilePathService, MovementMotor
Core RPG runtimeTransport-agnostic RPG state and rulesUnitCombat, UnitSkills, SimpleInventory, UnitEquipment, CombatFormulaService
Multiplayer authorityRequest validation, ownership, replication, spawn/readinessNetworkBootstrap, NetworkPlayer, ServerInteractionPipeline
PersistenceCapture/restore modules and storage lifecycleSaveCoordinator, IPlayerSaveModule, ServerCharacterPersistence
Client presentationInput, UI, camera, interpolation, VFX, soundLocalPlayerPresentationBinder, LocalPlayerContext, HUD/panels
Editor/dataDesigner authoring and stable definitionsScriptableObjects and Core RPG Hub databases/editors

Runtime lifecycle

NetworkBootstrap chooses Server / Host / Client
Transport connection
NetworkLoginService authenticates
NetworkPlayerSpawner creates owned player
NetworkPlayer injects authority + identity
ServerCharacterPersistence loads character
NetworkLocationSession restores location
LocalPlayerPresentationBinder binds owner UI/camera
GameplayReadiness.AllReady

Composition over global lookups

PlayerComposition is the network-prefab composition bridge. The player prefab is expected to contain NetworkObject, NetworkPlayer, and PlayerComposition. Server-only authority dependencies are injected during spawn; owner/client presentation dependencies bind after ownership and readiness.

Exactly-once services

  • One NetworkManager/NetworkBootstrap.
  • One authoritative TickManager per gameplay world.
  • One shared grid/path service set.
  • One NetworkPlayerSpawner per network session.
  • One LocalPlayerPresentationBinder per client gameplay composition.
  • One AudioManager; it self-creates and rejects duplicates.
Anti-pattern: adding a new manager because an existing service is inconvenient. First find the authoritative owner and add an interface, handler, definition, or module at that boundary.

Namespace map

RootUse
GreenCloakGames.TileTickMovementTick, grid, pathfinding and movement foundation.
GreenCloakGames.TileTickRPGCoreCore runtime systems, data definitions, UI and saving.
GreenCloakGames.TileTickRPGCore.MultiplayerTransport-agnostic multiplayer contracts/configuration.
GreenCloakGames.TileTickRPGCore.Multiplayer.NGONetcode for GameObjects bridges and replication.