boltQuickstart

This quickstart shows how to connect any networking stack (NGO, FishNet, Mirror, custom) to the Game Creator 2 Networking Layer.

For the canonical transport contract and public runtime API reference, see:

The GC2 layer is transport-agnostic. You provide:

  1. A NetworkTransportBridge implementation.

  2. Packet serialization + routing in your transport.

  3. Ownership mapping (characterNetworkId -> ownerClientId).

1) Scene Prerequisites

Use Game Creator > Networking Layer > Scene Setup Wizard once, then verify your scene has:

  • One NetworkTransportBridge implementation (your class, not a placeholder).

  • One NetworkSecurityManager (server/host scenes).

  • Relevant module managers/controllers you use (NetworkCoreManager, NetworkInventoryManager, NetworkStatsManager, NetworkShooterManager, NetworkMeleeManager, NetworkQuestsManager, NetworkDialogueManager, NetworkTraversalManager, NetworkAbilitiesController). The setup wizard can create/reuse these directly in Step 3: Scene Objects when their toggles are enabled.

  • If Create / Ensure GC2 Network Player object is enabled, the wizard also adds selected per-character controllers to that player template: NetworkCoreController, NetworkInventoryController, NetworkStatsController, NetworkShooterController, NetworkMeleeController, NetworkQuestsController, NetworkTraversalController.

  • NetworkDialogueController is usually placed on dialogue actors (not automatically on the player template) and can reference Dialogue + NetworkCharacter on different GameObjects.

Optional modules compile only when their symbols are enabled:

  • GC2_INVENTORY

  • GC2_STATS

  • GC2_SHOOTER

  • GC2_MELEE

  • GC2_QUESTS

  • GC2_DIALOGUE

  • GC2_TRAVERSAL

  • GC2_ABILITIES

These are auto-synchronized by GC2NetworkingDefineSymbols based on installed modules. Manual refresh: Game Creator > Networking Layer > Refresh Define Symbols.

2) Create Your Bridge

Create a class inheriting NetworkTransportBridge and implement the abstract API.

Important:

  • clientId = 0 is valid.

  • Reject only NetworkTransportBridge.InvalidClientId.

  • Keep ownership mappings current with SetCharacterOwner(...) / ClearCharacterOwner(...).

3) Initialize Managers Per Session Role

Create a bootstrap script and initialize managers after your transport is ready.

4) Wire Outbound Delegates To Transport Send

Managers/controllers emit requests/responses/broadcasts through delegates. Wire those delegates to your transport sender methods.

Example (NetworkCoreManager):

Do the same for Inventory/Stats/Shooter/Melee/Quests/Dialogue/Traversal/Abilities managers you enable.

5) Route Inbound Packets To Receive* APIs

When a packet arrives, deserialize it and call the module manager Receive* API.

Examples:

For every enabled module, map each network message ID to exactly one matching Receive*/Process* method.

6) Spawn, Role, and Ownership

For each spawned NetworkCharacter:

  1. Call InitializeNetworkRole(isServer, isOwner, isHost).

  2. Set ownership mapping in the bridge immediately on server:

    • SetCharacterOwner(character.NetworkId, ownerClientId)

  3. Clear mapping on despawn:

    • ClearCharacterOwner(character.NetworkId)

Strict ownership validation is enforced in request paths. Late ownership mapping causes valid requests to be rejected.

7) Competitive-Ready Checklist

Before shipping:

  • Keep NetworkSecurityManager active on server/host scenes.

  • Ensure all inbound requests pass authoritative sender ID.

  • Keep client and server on the same protocol version (v2).

  • Confirm each enabled module has both outbound delegate wiring and inbound Receive* routing.

  • Validate with host + dedicated server + 2 clients and forged-request tests.

8) Where To Go Next

  • Start unpatched first. Read here why. Interception/fallback mode is the default recommendation.

  • For coop and most flows, this is typically enough (including Quests/Dialogue/Traversal).

  • Move to patch mode when your game gains traction and abuse risk appears (confirmed cheaters, ranked pressure, economy exploits).

  • When patching, prioritize combat/economy-critical modules first, then expand as needed.

Patch menu:

  • Game Creator > Networking Layer > Patches > <Module> > Patch (Server Authority)

Detailed strategy:

  • Assets/Plugins/GameCreator2NetworkingLayer/Documentation/PATCHING_STRATEGY.md

10) License

Game Creator 2 Networking Layer is MIT licensed.

See:

Last updated