Re-thinking matchmaking: Going beyond skill-based systems with EOS and PubNub
Matchmaking has long been overdue a makeover. Up until now, most matchmaking systems came in two distinct flavors: those that match players by latency, and those that match players by skill.
The former sees players of all ability levels thrown together—often resulting in mismatched contests. The latter can lead to predictable gameplay that feels like hard work.
What’s missing in both cases is the not-so-secret ingredient that motivates players to pick up the controls in the first place—fun.
Prioritizing social experiences is key to putting the fun back into matchmaking. Players who build friendships in-game are far more likely to stick around. We know that a driving motivation for multiplayer players is to stay connected with friends, and that squading up with friends can increase a player's longevity in the game.
These bonds are built by moments and driven by players—the teammate who revived you at the last second, the squad that worked together perfectly in a high-pressure moment, or the random duo who turned into regular gaming partners.
Moments like this don’t happen by accident—they happen when matchmaking prioritizes social engagement and meaningful interactions as much as skill.
What if matchmaking adapted in real time to player behavior, playstyle—and social dynamics—without the need to code and patch, creating more powerful moments for players and their friends?
Epic Online Services and PubNub have partnered to enable everyone to create precisely those experiences. Read on to find out how. From ping-based lobbies to SBMM: how we got here
In the beginning, it was simple—if you had a good ping, you got into a match. The problem? That meant beginners could face seasoned pros, creating wild skill gaps that led to frustration. And thus, Skill-Based Matchmaking (SBMM) was born. SBMM kept games competitive and engaging. But over time, cracks started to show.
Repetitive matches – Identical skill levels meant every game started to feel the same.
“Sweat lobbies” fatigue – Players found themselves stuck in high-intensity matches when they just wanted to relax.
Queue-time problems – “Perfect” balance often meant longer wait times, especially for high-skill players.
With SBMM, fairness became the priority—but fun and variety took a hit. Winning in a sweat lobby is great, but those "remember the time when…?” moments with friends? SBMM alone doesn’t deliver them.
Moving beyond just skill: the missing ingredients in matchmaking
For matchmaking that prioritizes the experience, the answer lies in real-time feedback from player behavior—factors that change from session to session and make each match feel fresh. Let’s start by considering the myriad ways you can define your player:
Playstyle preferences - Casual vs. competitive Role-type tendencies - Categorizing your playstyle Input methods - Controllers vs. mouse/keyboard Time of day and session intent - Does the player typically hop in and out, or go for marathon sessions? Social connections - Friendlists, friends of friends, player toxicity And so on. If you’re thinking about all the ways your players can interact, you can start to put the puzzle together.
By shifting from static matchmaking rules to a dynamic, real-time system that considers a more holistic view of the player, developers can create matchmaking that gives players the kind of match they want, when they want it.
Active communicators are matched with others who value teamwork and strategy. Friends who are queued up together face other full squads. Those looking for a relaxing, quick wind-down get exactly that. You get an experience that feels natural, immersive, and rewarding, whoever you are.
Let's build a smarter matchmaking solution powered by EOS and PubNub Illuminate
Epic Online Services (EOS) handles the orchestration of a match—player identity, session management, and lobby formation—while PubNub Illuminate provides the intelligence layer that makes matchmaking responsive to live player behavior, preferences, and context.
With EOS, developers can get players into the game quickly across platforms and storefronts. Using Epic Games accounts, players instantly have access to their existing friends to team up. They also get access to a rich set of features including voice chat, and developers can keep their communities healthy with anti-cheat and player moderation.
Illuminate only ingests live signals from data sources that are selected by the developer. This can be any aspect of your gameplay or player metadata that you wish to use as a means for matching players. Whether it’s friends lists, time/days played, favorite weapons, metadata about styles of play, their love (or dislike) of premium skins, their tendency to instantly mute entire lobbies every game—however you wish to group players together. Whether you want to track in the moment (real-time) data or trends over time, Illuminate can see all of those developer-selected signals and feed it directly into custom matchmaking logic you define.
EOS then takes this real-time matchmaking guidance and efficiently manages the session creation—matching squads that you want to be together, not just those who could be together. It ensures those matches are routed correctly regardless of platform, region, or network edge cases. With Illuminate’s ability to act in real time, you can tweak, transform, or improve your matchmaking rules, and you know your players will see those rules acted on, instantly.
This stack enables developers to move away from static rulesets entirely—no need to bake matchmaking logic into the game binary or push a patch every time priorities shift. Want to run an event where solo queue players get matched with others who use voice comms? Check. Want to deprioritize skill temporarily to emphasize novelty and experimentation during an off-season? Done. Because this logic sits outside the engine, as long as you’re sending player data to PubNub Illuminate, you don’t need to rewrite a single line of game code.
Because EOS handles the infrastructure and Illuminate drives the decisioning, you can evolve your matchmaking strategy as your game—and your playerbase—changes. And because Illuminate’s decisions are based on real usage data and trends, not hypothetical player types, each match feels custom-tailored to users.
The result is a matchmaking experience that’s optimized not just for fairness, but for engagement, memory-making, and retention. The kind of system that doesn’t just match players—but understands players’ gameplay preferences.
How matchmaking adapts to you: a LiveOps architecture for real-time decision-making
In most matchmaking systems, logic is hard-coded, meaning decisions are baked into the game client or server and remain static until the next patch. That rigidity limits experimentation, slows down iteration, and forces developers to prioritize “predictable” matchmaking logic over player-driven nuance. With Epic Online Services and PubNub Illuminate, the architecture flips: matchmaking logic lives outside the game build within a real-time, serverless rules engine that constantly evolves based on player behavior and engagement patterns. Here’s how it works:
Game Client → EOS Sessions and Telemetry The player initiates a matchmaking request via the game client. EOS manages identity and party/lobby formation. Simultaneously, the game begins sending telemetry and contextual data to Illuminate—session history, input method, time of day, voice usage, and recent behavior patterns.
EOS → PubNub Illuminate API Call The game invokes Illuminate via API, which is being sent relevant player and game metadata from the backend or the game engine itself, and selected and configured by the developer. Illuminate stores this data in PubNub “App Context”, ready to be evaluated against real-time metrics and trends. This engine is powered by the same infrastructure that receives trillions of messages each month.
Illuminate → Decision Engine and Ruleset Evaluation Illuminate processes real-time data across thousands or millions of players. Rulesets are created in a no-code / low-code environment that lets companies make any type of matchmaking decisions based on combinations of previously ingested data. For example, a rule might implement a “soft constraint” that deprioritizes strict SBMM if a player is on their third consecutive loss and playing with a new friend.
PubNub Illuminate → EOS Matchmaking Decision Illuminate returns a match decision to the game to guide the session creation logic. The game then uses EOS to create sessions that align with the player’s current behavioral fingerprint and manages the session lifecycle—ensuring matchmaking logic becomes lobby logic, not just theoretical intent.
EOS → Game Client EOS APIs are then used to route players into the appropriate session, which is now populated not just by skill or latency, but by deeper intent-matching logic. The client receives lobby and session data and the game begins.
In-Session → Continuous Feedback Loop During gameplay, Illuminate will continue to ingest the metadata and metrics defined previously on user behavior to feed back into future decisions. Away from matchmaking, developers could further leverage PubNub Illuminate to trigger in-the-moment, LiveOps-based events dynamically during gameplay without needing a new build or deployment.
This architecture gives studios total flexibility. You can perform A/B tests on matchmaking hypotheses, personalize lobbies based on regional preferences, and even adjust matchmaking in real time during a live tournament if player sentiment demands it. EOS ensures infrastructure scalability and reliability. Illuminate ensures matchmaking decisions are meaningful, adaptive, and player-centered. Together, they form a fully decoupled but deeply integrated matchmaking system that works for the modern realities of game operations.
To learn more, watch the video below to learn more about how EOS and PubNub Illuminate integrate for smarter, player-led matchmaking, and then check out the full tutorial video on PubNub’s YouTube channel.
Learn how to put the fun back into matchmaking Ready to explore dynamic, player-led, experience-oriented matchmaking? Check out the sample and documentation below.