Introduction
NetCluster is a robust networking plugin for Unreal Engine 5, built to facilitate the connection of multiple dedicated server processes, each responsible for different computational tasks. By extending Unreal Engine’s native networking capabilities, NetCluster enhances server-to-server communication through efficient RPCs (Remote Procedure Calls) and property synchronization.
Why NetCluster
Unreal Engine is a powerful, open-source platform with a wide array of features for game development. While various clustering solutions exist, they often involve significant engineering costs—either from learning new software stacks or from the financial burden of purchasing these solutions.
Unreal Engine, however, provides an extensive toolset, including:
- A robust system for handling game objects
- A powerful reflection system
- Blueprints for visual scripting
- A versatile Gameplay Ability System
- Modular gameplay support
- Efficient Movement & Collision
These built-in features, along with Unreal Engine’s native network framework, can be directly utilized for clustering, thereby reducing the need for external integrations and minimizing costs. The engine’s homogeneous and continuously improving network framework is especially suited for clustering. NetCluster leverages these strengths, extending Unreal Engine’s network capabilities to deliver an efficient, cost-effective clustering solution.
Features
NetCluster provides essential features for clustering and load balancing, allowing for easy expansion with additional modules. This modularity simplifies verification and integration.
Proxy Actor
The Proxy Actor is essential for enabling communication between actors on different servers. It allows an actor to detect and interact with nearby counterparts across the game world. This lightweight proxy requires updates only for position and replicated variables, optimizing resource usage while maintaining effective communication.
Customize the OnRep_* callback to optimize your server performance.
Visibility server
The Visibility Server is responsible for determining an actor’s visibility between dedicated servers. It guides other servers in creating Proxy Actors, facilitating server-to-server communication.
Seamless Player Migration
This feature enables seamless player computation transfers between servers. The original server only handles packet routing, ensuring a smooth transition.
Dynamic topology
NetCluster supports dynamic load management, allowing users to add or remove servers at runtime to adapt to changing demands.
Typical usage
NetCluster supports communication exclusively between Unreal Engine dedicated servers. It can be integrates with other frameworks, such as PlayFab, GameLift, Photon, and any MMO framework that supports Unreal Engine, particularly in cases where those frameworks do not offer load balancing or dedicated server communication.
NetCluster accommodates various network topologies, making it suitable for a wide range of use cases.
Offloading Computation
When running a match-based or room-based game, if you identify a performance bottleneck on a dedicated server, NetCluster allows you to offload related computations to other servers as an alternative to optimization. For example, AI bots can be managed by offloading their computational needs, such as processing actor movements or attack strategies, to dedicated AI servers. Unreal Engine's network system can efficiently replicate necessary data to these offload servers, ensuring smooth operation.
AI servers can handle AI computations, and servers can be dynamically added or removed based on demand.
Expansive World
For hosting expansive game worlds, NetCluster helps you create a dynamic and efficient structure:
Here’s a simplified overview:
- The world is divided into Areas (A to F).
- Each Area is initially hosted by a server. As long as players remain spread out, multiple servers can manage a single Area.
- During gameplay, a Dynamic Battlefield with high player density may emerge. Players within this battlefield can be dynamically assigned to a dedicated server from an available pool.
NetCluster offers the flexibility to design your hosting setup. For instance, you can use servers to manage the entire game world, enabling smooth player transitions. Each server handles only a portion of the players, ensuring optimal performance and scalability.
Space-based topology
NetCluster also supports the creation of a topology similar to the BaseApp
and SpaceApp
architecture.
In this topology, the base server can be built as a UE application or even a standalone application. This topology is currently in the planning stages.