Advertisement

What is a lobby server?

Started by October 30, 2014 02:24 PM
12 comments, last by wodinoneeye 10 years ago
I searched the internet but couldn't find a perfect answer. What are lobby servers? How are they different from general servers?

I want to start working on a small multiplayer fps game from scratch using C++ and DirectX 11. So, I want to start learning about networking (using winsock) for it. I cannot find any good resource for it. Isn't there a book or something similar which teaches networking (using winsock) to absolute network beginners?

Game servers actually run the game (assuming it isn't strictly peer to peer), lobby servers are just for showing what games are available to join, and letting people join them, from which the games begin when certain requirements have been met (like a certain number of people join). They may or may not allow more people to join in during the games.

Is your game going to be peer to peer, or will you have a game server running the game logic to prevent cheating and reduce latency between the peers?

Advertisement

The FAQ is a good place to start. I'd recommend getting comfortable with socket programming outside a game, for example, creating a simple chat server and client.

Then, I'd go back and start reading how other people have approached games like yours, for example the answer to Q12 in the forum FAQ.

You might want to build a proof of concept using the models you've chosen in a simple game first. Networking needs to be designed into the game from the start, so it really pays to get comfortable with the tools you'll need and familiar with the issues that choosing a particular networking model will cause. All networking models have trade-offs, from accuracy to time sensitivity, so you'll want to be aware of that as you design the rest of your game.

Don't forget about RakNet either! It was just open sourced with a BSD license after Oculus bought it. It takes care of a lot of networking stuff including packet priority/reliability, data-replication across client/server, events, and it all uses a nice "TCP-over-UDP" algorithm that keeps things fast. It can also communicate between 32/64 bit clients/servers with no issue. It's a pretty mature library.

It is only free on computers, however. It will cost you money if you want to branch into consoles.

You can think of them as simply being the server where matches are made. In console games, its pretty popular to automate the process of matchmaking so you don's see lobby servers too much. On the PC side of things, traditional lobbies are more popular. Typically you might have a chat-stream like IRC and a list of available servers that shows the game type, number of players, max players and score or remaining game time. You just pick the one you want to join.

throw table_exception("(? ???)? ? ???");

Additionally, a lobby server will typically act as a NAT punch-through introducer.
enum Bool { True, False, FileNotFound };
Advertisement

Thank you for all the replies. I appreciate that.

Now, my question is what is NAT and NAT punch-through? (I know it's Network Address Translation, but I don't really understand anything.)

What is difference between NAT and NAT punch-through? People often talk about port forwarding/NAT punch-through. From what I know, you need to port forward in order to play in peer-to-peer or if you're hosting a server. Can somebody please explain me what is NAT and how it is used?

Have you tried reading the FAQ or Googling?

Have you tried reading the FAQ or Googling?


Yes, but I don't understand it perfectly.

Which part is confusing you? I'm not sure any of us will be able to do better than the Internet at explaining the overall picture unless we have some specific context to aim at.

This topic is closed to new replies.

Advertisement