A comprehensive multiplayer system implementation for Serious Sam Fusion 2017, featuring a custom Master Server, Relay Server for NAT traversal, and a standalone Server Browser Launcher.
- P2P Multiplayer: Play with friends for free using Peer-to-Peer connections.
- NAT Traversal: Built-in STUN and Relay server support to bypass strict NATs.
- Server Browser: Custom Launcher with a full-featured server list.
- Master Server: Centralized REST API for server registration and discovery.
- Privacy Options: Public, Friends Only, Invite Only, and Password-protected servers.
- Persistent Settings: Saves player name and preferences to the Windows Registry.
The project is organized into two main parts:
- Client: The Launcher application for players.
- Server: Infrastructure components (Master Server, Relay Server).
SSFusionMultiplayer/
├── Client/ # Launcher Source Code
├── Server/ # MasterServer & Relay Source Code
├── Core/ # Shared Networking Library (SSFusionNet)
└── Bin/ # Compiled Output
├── Client/ # Launcher.exe + DLL
└── Server/ # Servers + DLL
- Windows OS
- .NET Framework 4.0 or higher
- Serious Sam Fusion 2017 (installed)
- Clone the repository (or download source).
- Navigate to the
SSFusionMultiplayerfolder. - Run
build.batto compile all components.
- Navigate to
Bin\Client. - Run
Launcher.exe. - Go to Settings and set your Player Name.
- Use Server Browser to find games or Create Server to host your own.
If you want to run your own Master Server (default uses localhost):
- Navigate to
Bin\Server. - Run
MasterServer.exe(requires Admin rights for port binding or URL registration).- Tip: Run
register_url.batonce as Admin to avoid running the server as Admin.
- Tip: Run
- Update the Master Server URL in your Launcher settings.
- Communication: UDP is used for game traffic and NAT traversal. HTTP is used for Master Server API.
- Ports:
8000: Master Server (HTTP)9000: Relay Server (UDP)- Dynamic: P2P Game Sessions (UDP)
- Configuration: Stored in Registry at
HKCU\Software\SSFusionMultiplayer.
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.
Engine developed by Adiru3 and the Open Source Community.
Built with ❤️ for the Serious Sam community.