Skip to main content

LyraGameStarter

LyraGameStarter is a sample project from Epic Games that we've adapted as a complex demo to showcase inter-server communication and player migration in a clustered environment.

Key Features:

  • Replication
    • Enable inter-server RPC for the AbilitySystemComponent.
    • Support for static actors like LyraWeaponSpawner.
    • Use a synchronization actor (AGameStateSync) to maintain consistent Game State across servers.
    • Modify both blueprint and C++ implementations to support clustering.
  • Player Migration
    • Migrate FFastTArray properties.
    • Save/Restore not-replicated property for migration. For example, how to migrate UCharacterMovementComponent data.

Building the Project​

Before trying this example, ensure you follow the Installation guide to compile Unreal Engine.

  • Clone the project from (LyraStarterGame)[https://github.com/git-clustech/LyraStarterGame]. Ensure that the submodules are also downloaded.
  • Unzip the file Content/Effects/Textures/Flipbooks/SmokeSwirl_3_Flipbook_CHANNELPACK.uasset.7z.*.
  • Compile the project.

Topology​

The demo utilizes the following server setup:

  • 1 Level Server (required for managing the level)
  • 1 NPC Server to host static actors
  • 1 Visibility Server
  • 2 Load Servers (for handling players)

Features​

This demo illustrates how to get the Gameplay Ability System (GAS) working across multiple servers. It is still a work in progress (WIP), so please refer to the project issues for more details.

Setup​

Before launching the servers, you'll need to configure the account settings and server configuration files.

Configure Account Settings​

Follow the Configure NetCluster section to set up your account information.

Configure Servers​

You can take most of the configuration from NetClusterStarter. For the NPC server configuration, use the following settings:

{
"ServerUID": "Luna-npc",
"LevelServerUID": "Luna-LevelServer",
"DomainID": "LyraNetClusterTest1",
"ServerFlags": "HostStaticActors",
"RegionID": 6
}

You can launch the servers using the run_editor_server.bat included in the project. Be sure to update UNREAL_ENGINE_PATH and CONFIG_FILES_PATH before using this script.

After launching the client, navigate to the menu and select Play Lyra -> Join Server to log in.