Skip to main content
GameDev.net gamedev.net
🔒 Locked

Match making question

Started by savail Oct 23, 2012 at 7:40 PM 9 replies 2.7k views
Original Post
savail
savail
Hey,
I'm not quite sure how is match making implemented in some "AAA" games for example. If there's a possibility for player to create his own match (for 2 - 8 players) one of them is supposed to be the host? I wanted to do so at first until I heard an opinion that such solution sucks becouse mostly players have too bad connection to host matches for 8 people for example...
So who should be the host in their own matches? Should I force one of players to host given match or should all matches be hosted by my own dedicated server? Can that be my lobby server as well?
And how many matches(groups of i.e. 8 people) should a casual dedicated server be able to host?

I would be very grateful if you could give me some info on all questions here!
BeerNutts
BeerNutts
In general, I have to imagine, if a player hosts a match, he's probably going to have a decided advantage considering his latency/lag to the server will be 0, that's assuming this is an action game that requires twitch reflexes. If it's a RTS, or some other slow reaction time game, you're probably OK.
My Gamedev Journal: 2D Game Making, the Easy Way

---(Old Blog, still has good info): 2dGameMaking
-----
"No one ever posts on that message board; it's too crowded." - Yoga Berra (sorta)
savail
savail
Sorry I forgot to inform that my game's genre is action fps.
KnolanCross
KnolanCross
This depends on a LOAD of things =p

It is possible to have the a game hosted by a player... loads of games have made it, I believe DotA is a good example. The host connection is very likely to be less of a problem than the distance between the host and the players (for instance, from LA it was impossible to play with people on Europe because of the latency).
A dedicated server will host more games depending on how well implemented it is (language used is a big limitant also), how demanding the game is, what is the server specs are and so on. In other words: it is pretty impossible to estimate with your given data. You may take a look if you can find some numbers from RGC, it is a dedicated host for dota games (10 players per match).

Also, if you intent to check the results of the game, having a client hosting the games you will run into problems of validating the information received.
hplus0603
hplus0603
Most traditional FPS-es uses player-hosted games.
In fact, often, the single-player game is just a game client connected to a local server that runs the single-player level.

You can deal with the unfair advantage by penalizing the hosting player to get, say, the average latency of all connected players; just delay incoming and outgoing data a little bit for that player.
enum Bool { True, False, FileNotFound };
savail
savail
thanks a lot for answers!
So actually all players in given match should have similar RTT and I should adjust the incoming and outcoming velocity for each player all the time during match so that finally all will have same RTT? In player hosted fps game of course
hplus0603
hplus0603

So actually all players in given match should have similar RTT and I should adjust the incoming and outcoming velocity for each player all the time during match so that finally all will have same RTT? In player hosted fps game of course


You "should" do this if you want to provide everybody the worst experience of all connected players.
enum Bool { True, False, FileNotFound };
savail
savail
so really? just delay the RTT for the hoster only? Is that enough to ensure fair conditions between players?
hplus0603
hplus0603
Is that enough to ensure fair conditions between players?
[/quote]

You have to define what "fair" means to you. Different players will have different quality graphics cards, CPUs, internet connections, keyboard and mouse, quiet vs noisy environment, good vs bad coffee, etc. Figure out what YOU think "fair" means for YOUR game, and then make it so.
enum Bool { True, False, FileNotFound };
savail
savail
it's network forum so obviously by "fair conditions" I mean latency... I want each player to stay equally up to date with game data received from server. That's why I'm so stubborn in this thread. That's rather important matter becosue otherwise, one player would get advantage (in time) over another. So if someone could share some more detailed info about player-hosted fps game server model I would be grateful
Memloop
Memloop
The documentation for the Source engine does a pretty good job of explaining the basics: https://developer.valvesoftware.com/wiki/Latency_Compensating_Methods_in_Client/Server_In-game_Protocol_Design_and_Optimization

The only thing that's really different in a player hosted setup is that you will need to introduce an artificial delay for the host in order to make things more fair. I understand what you're asking, but trying to synchronize everyone so that they have an equal amount of latency is just going to make the game unplayable for everyone. All that effort is still not going to solve some of the annoyances of lag compensation such as players getting shot behind corners etc.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.