Contact me @ Jamesillett@gmail.com or +44 7491 678521

Steam Networked Game Template

The networked top down template was my introduction to networked gameplay programming back when I was a student. I integrated the Steamworks API and Steam online subsystem to build a basic networked tech demo. The template features automated matchmaking, a basic lobby system, text chat, hot-join, and some simple server-authoritative gameplay (with a touch of client-side prediction). 

 

One of the goals of the project was ensuring the codebase was well written enough that others could use it as a base for multiplayer demos or to learn the UE4 gameplay networking layer from; in this regard I believe it still stands up fairly well. 

The project took around 300 hours to complete, including the 14000 words of documentation. The biggest challenges came from the lack of resources for C++ networking in Unreal Engine 4, especially when it came to sessions that persist across multiplayer maps or play modes.

General Architecture

  • Steam API Integration

  • Steam and Null online subsystem compatibility

  • Customisable player identity for Null online subsystem

  • Support for both hard and seamless map travel

  • Intigration of UE4's latency and packet-loss simulation systems

Gameplay Systems

  • Server-driven match states: pre-match, match, and post-match

  • Server-authoritative collectables

  • Server-authoritative player scores

  • Client-side prediction on collectable collection

  • Server-driven character death and respawn systems

  • Server-driven gameplay GUI with match duration and player score

Matchmaking System

  • Automated session-based matchmaking

  • LAN or Online networks

  • Session validity checking

  • Preferential session sorting

  • Full matchmaking error detection and display interface

Lobby System

  • Dynamic player list

  • Player readyness toggle

  • Text based chat

Source Code Samples
Collectable.cpp

Server-authoritative collection with basic client-side latency masking.

MasterPlayerController.h

Client side widget management and networked chat broadcasting.

MasterGameInstance.cpp

Sessioning and matchmaking functionality.

Full source and project files available on request.

This site was designed with the
.com
website builder. Create your website today.
Start Now