EasyMatchmaking Plugin (Unreal Engine, Personal Project, 8 Weeks)

A multiplayer networking plugin I built from scratch that makes it easy to create games with dedicated servers. The workflow is simple: players meet in a lobby (peer-to-peer), and when everyone’s ready, they automatically transition to your dedicated server. No complex setup, no hidden subsystems - just generate your server .exe, run it, and the plugin handles the rest.

My Development Journey

Week 1-2: Research & “Why Does This Have to Be So Hard?”

I started this project because there wasn’t a simple solution for the workflow I wanted: lobbies that transition to dedicated servers. I wanted players to meet up in a peer-to-peer lobby, chat, ready up, and then automatically connect to a dedicated server when the game starts. This is how most modern multiplayer games work, but implementing it in Unreal Engine was unnecessarily complicated.

So I made a plan. Eight weeks, broken into clear phases. My goal: create a plugin that I wish existed when I started learning multiplayer development.

preview

My key decision: Instead of building on top of the Online Subsystem, I’d create a standalone C++ plugin that talks directly to EOS. No hidden dependencies. Readable code. Full control. And most importantly: a clear workflow from lobby to dedicated server.

The workflow I envisioned:

By the end of week 2, I had a basic prototype - one client could create a lobby, another could join. It was rough, but it worked. That proof-of-concept gave me the confidence to keep going.

Week 3-4: Lobby System

Built the core lobby features: player list synchronization, ready status, kick functionality, and exposed everything to Blueprint.

Network timing was tricky - handling simultaneous joins, disconnects, and keeping state synced across clients took longer than planned. This phase took almost twice my initial estimate, but the foundation needed to be solid.

Week 5-6: Dedicated Server Transition

The core feature came together: transitioning from peer-to-peer lobbies to dedicated servers. You generate a server .exe from Unreal, run it (locally or cloud), then:

preview

Players join lobby and ready up (peer-to-peer) Host clicks “Connect” Plugin creates session on your dedicated server All lobby members auto-connect to the server

Technical challenges: synchronizing the transition timing, broadcasting connection info, handling failures when the server isn’t running. Getting 4 clients to seamlessly transition together took extensive debugging. I also added chat functionality and comprehensive error logging (not in the original plan, but essential for debugging network issues).

Week 7-8: Polish & Documentation

Created example UI widgets, wrote setup documentation (how to generate .exe, run servers, handle transitions), and tested across different network conditions.

I cut the planned ELO rating and matchmaking queue to focus on a rock-solid core workflow. Better to do one thing well than many things poorly.

preview

What Changed From the Original Plan

Throughout development, several aspects of the original plan shifted based on practical realities:

This iterative process taught me that initial planning is crucial, but flexibility and responding to real-world constraints is equally important. The final product is stronger for these adjustments.

Summary

Overall, this project allowed me to deep-dive into networking architecture, understand EOS at a fundamental level, and create a tool that other developers can actually use and learn from. The plugin is designed to be hackable - developers can read the C++ code, understand how it works, and modify it for their specific needs. This transparency was a key goal, as I believe the best way to learn is by reading and experimenting with clear, well-structured code.

The project taught me not just about networking and multiplayer systems, but also about API design, user experience (for developers), and creating maintainable, expandable codebases. I continue to iterate on the plugin based on feedback and new feature requests from the community.

Go Back

BUAS