Server-less Multiplayer?

Started by
3 comments, last by hplus0603 11 years ago

I'm working on a game that has players starting their own individual areas in the game, but I'm not looking to spend money on servers or server support, and I know of a few games that have Server-less Multiplayer, I'm just wondering how that works.

Advertisement
You can connect players to each other (peer to peer?) and have them each do the simulation and move forward when everyobe is done. ("lockstep simulation" i believe)

Another option is to make one of the players the server.

In any case, you will likely still need a server so players can find other players somehow. It is also useful in creating a direct connection between 2 players (NAT punchthrough) because direct connection is usually not possible without messing with router settings (port forwarding)

o3o

When you say "serverless," do you mean that the game is truly peer-to-peer (typically in a fully connected mesh network,) or do you mean that the game developer/publisher doesn't operate servers for the game?

If the former, then there are ways to do peer-to-peer game networking, although typically that only works out on a LAN, because it's hard for peers to find each other on the Internet without a server/service of some sort.

If the latter, then you can let players host servers with a server mode in your game. Let the players set up port forwarding on whatever port your server code listens to, and have the players organize their own server browsing on a web forum or similar. They can post a message like "join my server at 123.45.67.89:12345" and other players can join.
enum Bool { True, False, FileNotFound };

When you say "serverless," do you mean that the game is truly peer-to-peer (typically in a fully connected mesh network,) or do you mean that the game developer/publisher doesn't operate servers for the game?

If the former, then there are ways to do peer-to-peer game networking, although typically that only works out on a LAN, because it's hard for peers to find each other on the Internet without a server/service of some sort.

If the latter, then you can let players host servers with a server mode in your game. Let the players set up port forwarding on whatever port your server code listens to, and have the players organize their own server browsing on a web forum or similar. They can post a message like "join my server at 123.45.67.89:12345" and other players can join.

What I mean is a game that doesn't require me to pay for server hosting, I'm not exactly sure how to do that, or if it's even possible. The game is supposed to be based on Multiplayer only, which makes servers a big problem, I don't have the kind of money to pay to keep servers up. I want players to be able to start their own I'll call them "Areas" (to avoid revealing anything about the game). The first thing that comes to mind in that circumstance is having them start their own servers, but at the same time I don't want them to have to pay to start a server and continue paying to keep it up. Is there a way to have them start their own servers without them having to pay for it?

On the topic of "Peer-to-Peer", it doesn't really seem to be what I'm looking for, it seems like it would be very laggy for a lot of players. I may be wrong on that.

Is there a way to have them start their own servers without them having to pay for it?

Yes -- anyone can run a "server" at home, as long as they keep their computer and internet connection powered on.
The two main problems with this approach are firewalls (users running servers must set up port forwarding) and finding servers (users running servers must somehow post their IP address for other users to find.)
You can set up a web forum where users can post their IP addresses for servers. Other users would copy and paste that into their clients to connect to a particular server.

I suggest you start doing it this way. Once that has some number of active players, and it's actually clear that the game works, then you can start trying to be fancier, such as having each server keep a list of "other servers" that it knows about or other players have told it about, and clients would then use those lists as "seeds" to establish a larger meshed network, for example.
Once you have that working, hopefully you can figure out how to get some money/donations from the game to actually run a real "roster" server on your own, which can solve both the firewall problem (using NAT punch-through) and the finding/listing problem (by having user-run servers list themselves in that service.)
enum Bool { True, False, FileNotFound };

This topic is closed to new replies.

Advertisement