A custom-tailored matchmaking solution that allows you to customize matchmaking, monitor match metrics, and integrate seamlessly into any environment.
---
What Is It?
Have you ever wondered how Minecraft networks like Hypixel have implemented complex matchmaking algorithms to place hundreds of players into minigame matches all at the same time? Well don't worry, we've figured it out for you.
MatchedUp is an API that allows developers to integrate matchmaking functionality into their plugins with ease. Whether you're a small server that hosts a few minigames, or a large network that sees hundreds of players a day, MatchedUp is ready for you.
How does it work?
Matchmaking is usually a tedious process with complex algorithms and lots of configurations that constantly need to be changed then redeployed out to your public server. MatchedUp gets rid of that with all the matchmaking taken care of for you. Configure your matches all through the website with user-friendly web interfaces.
A match is composed of match attributes, player attributes, teams, and rules. You can define player attributes and then use those attributes to define rules. Rules are the instructions that the matchmaker will follow. They can be simple: "
Only let people join this match if their level is greater than 5", o
r they can be complex: "
Make sure the players on teamOne have an average total playtime of 5 hours, make sure all players have at least 10,000 gold, make sure teamTwo has at least 50% of the players in a specific faction"
.
The possibilities are endless.
API Integration
Once you have some matches created you can integrate MatchedUp's SDK into a new or existing plugin, and let players make match requests. The integration is extremely simple. All you need to do is:
1. Add MatchedUp to your project with
Maven or
Gradle
2.
Instantiate an instance of the client
Code (Java):
MatchedUpClient client
=
new MatchedUpClient
(
"ACCESS_KEY",
"SECRET_KEY"
)
;
client.
connect
(
)
;
3. Submit a request to join a match
Code (Java):
String playerUuid
= getPlayerUuid
(
)
;
// get this off the player
String matchName
=
"my-awesome-match"
;
// Name of a match you've configured on https://matchedup.io
Map
<
String, PlayerAttributeType
> playerAttributes
=
new HashMap
<>
(
)
;
// any player attributes
playerAttributes.
put
(
"level",
10
)
;
// Submit the request to join a match
client.
submitAction
(
new RequestMatch
(
playerUuid,
matchName,
playerAttributes
)
)
;
4. Wait for a match to be made!
Code (Java):
public
void registerListeners
(MatchedUpClient client
)
{
client.
getEventBus
(
).
registerListenerInternal
(MatchCreatedEvent.
class,
this
::onMatchCreated
)
;
}
public Unit onMatchCreated
(MatchCreatedEvent event
)
{
System.
out.
println
(
String.
format
(
"Match (ID '%s') was created", event.
getMatchId
(
)
)
)
;
for
(MatchTicket ticket
: event.
tickets
)
{
for
(MatchPlayer player
: ticket.
getPlayers
(
)
)
{
System.
out.
println
(
String.
format
(
"Player '%s' is in the match on team '%s'", player.
getUuid
(
), player.
getTeam
(
)
)
)
;
}
}
return
null
;
}
Features
- Complete Customization. Create complex matchmaking algorithms through user-friendly controls with minimal configuration. Configure rules, teams, and player attributes all through a simple web interface.
- Live Game Metrics. Monitor matches, provide custom metrics, and get all of the data through a dashboard in real time. Use this information to help identify top matching trends for your games and keep players playing!
- Easy Integration. MatchedUp communicates explicitly through WebSockets for seamless integration into any application. Check out our documentation to learn how you can easily integrate it into your own.
- No Config Files. Manage all match configurations through our easy-to-use web interfaces and make adjustments on the fly.
- Instantaneous Updates. Any changes you make to your match configurations will automatically update without requiring code changes.
- Effortless Workflow. Configure your matches and integrate our API into your game. Request matches and listen for match updates all through functionality within our SDK.
Sooo how do I start?
MatchedUp is currently in a beta phase and taking on users by request. This is to ensure that every user has direct communication with the developers to help make it a smooth experience. Any questions, integration help, or bug fixes can all be directed to us to help you.
Get started by visiting our website and requesting early access, and also by joining our Discord and requesting it there!