1
\$\begingroup\$

Most games that I know use a master server to connect players in multiplayer. If it ever gets shut down, without third-party software or master server, the game is effectively unplayable in multiplayer, sometimes not even in LAN. Temporary shutdowns can arguably be worse than permanent, because in the latter case you will likely have a community solution soon, in the former you have to wait for an unknown amount of time.

Assuming good intentions of the game developer, how can such a game be constructed so it remains playable? Can matchmaking be made fully decentralized? Do such solutions already exist?

\$\endgroup\$
  • \$\begingroup\$ Good intentions aren't enough: for commercial games you also need time and money to fund the development of an extra matchmaking feature that only benefits players long after the game has sold all or nearly all it will in its lifetime. That's a tough business proposition to sell to a struggling indie studio and giant publisher alike. \$\endgroup\$ – DMGregory Mar 29 '17 at 10:08
  • \$\begingroup\$ @DMGregory Fair enough. Might be worth implementing when a developer with good intentions has to stop supporting the game, or for a hobby project. \$\endgroup\$ – Baskakov_Dmitriy Mar 29 '17 at 10:15
  • \$\begingroup\$ Have a look into ICE. \$\endgroup\$ – Theraot Mar 29 '17 at 10:27
  • \$\begingroup\$ If you give enough time for the users, someone will eventually reverse engineer the server. \$\endgroup\$ – Bálint Mar 29 '17 at 11:03
  • \$\begingroup\$ @Bálint Indeed, they will. And either someone who did it will try to make money using the server -- like by showing ads, or the server gets leaked and there is no single master server, which splits players into different communities. If your playerbase is small enough, it can be finished by being split. \$\endgroup\$ – Baskakov_Dmitriy Mar 29 '17 at 11:13
1
\$\begingroup\$

The google keyword you're looking for is peer-to-peer. The problem is that most decent solutions still require a minimal server (to maintain a list of at least one initial peer), and when that server goes down you're back at square one. For this part of the answer I'll refer to stackoverflow: https://stackoverflow.com/questions/310607/peer-to-peer-methods-of-finding-peers

The problem with implementing a peer to peer solution is that the upsides only show at the end of life, when sales are low or nonexistent, yet the downsides show at launch, when the impact on sales is high.

Downsides:

  • Without company controlled server, cheating is easier.
  • Without company controlled server illegitimate clients can play online
  • A complex new framework can crash under heavy load, so there's a risk nobody can play at launch.

Upsides:

  • Players can continue to play the game long after they paid for it.
\$\endgroup\$
  • \$\begingroup\$ Something for both up and down, piracy of the game is easier. Downside at launch, upside after you have stopped shipping. \$\endgroup\$ – ratchet freak Mar 29 '17 at 11:02
  • \$\begingroup\$ @ratchetfreak How is piracy after you stopped shipping an upside? If "people playing the game for free" is seen as an upside at that point, the game will just be put in the public domain. \$\endgroup\$ – Peter Mar 29 '17 at 11:07
  • \$\begingroup\$ Could be mitigated by only implementing that when you cease supporting the game and don't really care about sales. \$\endgroup\$ – Baskakov_Dmitriy Mar 29 '17 at 11:14
  • \$\begingroup\$ @Baskakov_Dmitriy Why would a business fund development on a game the moment it stops supporting it? At best they will open source it, and let "the community" try to fix it. But that only works if they still hold the rights to the source. \$\endgroup\$ – Peter Mar 29 '17 at 11:49
1
\$\begingroup\$

There is really no way to properly do matchmaking without a central server where players looking for a match can report to. The internet is just too large to find someone without knowing their IP address.

But what you can do is to create some workarounds to join a multiplayer game without matchmaking:

  • Allow an optional way to connect to other players directly by entering the IP/hostname of the player they want to join.
  • Also add a command line parameter to directly connect to a multiplayer game. This allows the community to create an alternative matchmaking application which launches your game application after the player picked a match to join.
  • Allow to set the matchmaking server hostname in the game config. At the end-of-life you can then publish the matchmaking server binary so the community can set up their own matchmaking servers. (keep in mind that crafty players might try to reverse-engineer your matchmaking protocol and set up their own matchmaking servers before you want them to do that)
\$\endgroup\$
  • \$\begingroup\$ Could I circumvent this by allowing peers to share knowledge of other peers, either automatically once you are connected to at least one, or manually, by sharing the importable/exportable database? So as soon as you have a living community, multiplayer works. \$\endgroup\$ – Baskakov_Dmitriy Mar 29 '17 at 17:54
  • \$\begingroup\$ @Baskakov_Dmitriy first, connecting to "at least one" is already more problematic than it sounds. How is a new player supposed find that one online player? Second, you need to keep that distributed database up-to-date in real-time while peers go on- and offline constantly. I seriously doubt this is going to work. \$\endgroup\$ – Philipp Mar 29 '17 at 18:17
  • \$\begingroup\$ You could find that first player in an online community. \$\endgroup\$ – Baskakov_Dmitriy Mar 29 '17 at 19:36
  • \$\begingroup\$ @Baskakov_Dmitriy ...and pray that that when you start the game that the player is also playing at that moment? And that their IP address didn't change in the meantime? \$\endgroup\$ – Philipp Mar 29 '17 at 20:09
  • \$\begingroup\$ Well, in my country most people have static addresses, but fair enough. Even if one of them doesn't work, you could try another one. Also could it be a good point to allow players set their computer to always exchange peers even if they are not playing at the moment? That technical traffic doesn't tend to be huge. \$\endgroup\$ – Baskakov_Dmitriy Mar 29 '17 at 20:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.