MP_Manager
Technologies Used
Plugin Info
Visuals & Demos

Login screen
Handling asynchronous multiplayer handshakes in Unreal Engine requires strict state management to avoid race conditions, ghost players, and session desynchronization. MP_Manager was engineered to abstract the complexities of the Online Subsystem (OSS) while maintaining absolute server authority over the lobby lifecycle.
The core architecture revolves around an interface-driven wrapper that standardizes calls to diverse backend providers like Steam, Epic Online Services (EOS), and EIK. This decoupling allows developers to hot-swap their matchmaking backend without altering the underlying game mode logic. The session state machine is tied directly to the GameMode and PlayerController lifecycles, guaranteeing that operations such as creating, joining, and destroying sessions are handled sequentially and validated by the server.
A significant architectural focus was placed on decoupling the heavy backend networking logic from the user interface flow. By utilizing a component-based data structure and event-driven multicast delegates, the framework broadcasts real-time player metadata updates (such as selected characters or ready states) directly to connected clients. This ensures the visual lobby state remains perfectly synchronized with the server's authoritative memory, minimizing network lag and preventing desync events during level transitions.
Core Capabilities
Server-authoritative session lifecycle management and validation
Matchmaking abstraction layer compatible with standard OSS interfaces
Synchronized character and asset selection routines for pre-match lobbies
Event-driven player metadata tracking and real-time state broadcasts
Remote Procedure Calls (RPCs) for secure player discipline and removal
Modular map and game mode selection with persistent lobby configuration
Decoupled UI integration utilizing low-level event dispatchers
Architectural Implementation
01Asynchronous State Machine Integration
Architected a strict state machine within the GameMode to process OSS handshakes sequentially. This mitigates race conditions during rapid session join/leave events and ensures memory integrity across client connections.
02OSS Abstraction Layer
Developed a generalized interface wrapper for the Online Subsystem API. This standardizes the payload requirements for matchmaking, allowing seamless backend transitions between local testing, Steam, and EOS environments.
Plugin Specifications
Compatibility Matrix
Dependencies
API Documentation
Key Functions
AMP_LobbyManager::CreateSession(FSessionSettings Settings)Creates a new multiplayer session with specified settings.
AMP_LobbyManager::JoinSession(FSessionInfo Session)Handles the network handshake and local controller initialization for joining a session.
AMP_PlayerManager::KickPlayer(APlayerController* Player)Secure Server RPC to remove unauthorized or disciplined players from a live session.
AMP_ChatSystem::SendMessage(FString Message, EChatChannel Channel)Bridges session data with MP_ChatSystem for cross-channel communication.
Integration Guide
Install EIK plugin dependency
Add MP_Manager plugin to project
Configure lobby settings in GameMode
Implement player controller interfaces
Set up UI for lobby and character selection
Production Validation
- Published a stable lobby framework capable of managing complex state synchronizations across multiple platforms
- Reduced initial multiplayer setup overhead by abstracting repetitive OSS boilerplate code
- Established a modular architecture verified against 64-player concurrent lobby stress tests