Introduction
The Bloodmatch project is a concept project to implement real-time multiplayer matchmaking for the Bloodborne PS4 game.
The project uses a 'reactive' approach at its core, using Meteor and NodeJS, MongoDB and SemanticUI.
The service works on desktop, tablets and mobile.
Why?
The main reason is to build a proof of concept and to demonstrate competencies in a modern 'reactive' technology stack, and to build something that's a bit more interesting than just another TODO or chat application.
The reason it is useful for the game itself is because matchmaking in the game is, whilst subject to certain rules, essentially random. Sometimes finding friends or other players to play with or against in the game is not always easy. Sometimes finding other players to help with a particular part of the game is also quite difficult.
Background
The way multiplayer works in the game is either cooperative or player vs player. A player can summon other players into their game, or adversarial players can invade other games.
Players can cooperate against the environment to defeat enemies and end-of-level bosses in a common purpose. While this is happening other players can invade that game as an adversary to try and defeat those players.
The problem is that sometimes it can be difficult for players to find other players to help with a particular part of the game. So what tends to happen is you get posts on various message boards where people are asking for help or trying to arrange matches, in the hope that someone reads the message at the right time and joins the game. Clearly this can go out-of-date very quickly.
The Solution
With a real-time matchmaking service, players register with the service and indicate which parts of the game they want to play - other players then see those requests happening in real-time and try and join those games.