🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

A new idea for multiplayer games?

Started by
10 comments, last by Moe 23 years ago
Recently I have been playing a resonable amount of Counterstrike, that add-on for half-life. I get sick and tired of being kicked from servers because of my poor ping, having a poor ping, and not being able to find a half-decent server. It usually takes me 3 tries to get on a good server that is willing to let me play. I get sick of trying to find a decent server. Thats when the idea came. Why not have the server pick the player? Why couldn''t a server request a player to play on it? That way the servers would always have several people in them, and there wouldn''t be the hassle of finding a server that would allow your ping. Imagine this: You start up CS. You refresh the list of servers to look for a good one, but at that moment, a message pops up asking if you want to join this certain server. Of course you could decline if you wanted to find your favorite server, or if you didn''t want to join for one reason or another. Here''s how it could work behind the scenes: The server has a maximum number of players, and an optimim number of players. If there are fewer players on the server than the optimum, it asks the players if they want more players to join, say, every 30 minutes. When the server gets a request to get more players, it connects to a master server where there is a list of player servers. It would randomly select one of the player servers from the list, and connect to it. Once it connects, it could randomly select and ask a certain number of players on that player server if they wanted to join the server that is running the game. The player servers would be places where 32 or so people connect to get requests to join game servers. There would basically be 3 types of servers. The game servers would actually run the game, the master server would keep a list of all the player servers, and the player servers would keep lists of the players who want to join a game. The users would still be able to pick a server out of a list like they currently do (a la CS), but they could also get requests from servers who want people to join. This could also fix the ping problem (of not being allowed to play because of too high of a ping). When the game server finds players to play on it, it could have certain flags, in case the game server only wants players with high speed connections, or something of the like. So when the game server searches for a player, it would only ask a player with a high speed connection (or a ping of such and such). That way servers that only want people with low pings get people with low pings. The people with high pings would only get requests from servers that don''t care if they have a high ping. What do you people think of this idea?
Advertisement
The server doesn''t need to do anything. It can have a "min ping" value that''s sent to the main lobby when it''s started up. The client can check your actual ping vs it''s min and let you know if you can connect before you try. It wouldn''t be an invite. It would just automatically list only the servers which you meet the ping requirement for.

If you modify the client to ignore the min ping limit, the server kicks you off as it normally would.

Ben
http://therabbithole.redback.inficad.com

I think the concept of having the server ask the player is neat. That way the player doesn''t have to find a server. I suppose that way of checking pings would work, but I think it could be a bit more interesting if you didn''t have to search for a server. Anyone else?
Anyone else? I thought it was a neat idea.

To err is human. To really foul things up requires a computer.
But the point KalvinB was making is that the servers don''t need to do anything to give you the same effect. If the server sends a "min_ping" variable with the ping requests, then when you do a refresh of the server list, the client can say "these servers would let you join", and list all the servers where you meet the ping requirement.

Another point to make is that your ping is not always a good indication of how well the game will run. You can have a fantastic ping, but if only 25% of the packets actually arrive, then you''ll have a pretty bad time. The only way of determining packet loss, though, is to actual join the game and see what it''s like.

War Worlds - A 3D Real-Time Strategy game in development.
It could easily get annoying if there are many servers. Imagine starting up the game and instantly be invited to a hundred different servers, having to click away 100 dialog boxes.

If something like it is implemented I believe it should be presented as a separate list where every server that has invited you is listed and the player can choose whether to show this list or the main list of all servers. But then again, your point is kind of lost with this setup. Personally I think the better way is to do it like KalvinB suggested.
It''s a good idea, but alot of services already do this. The zone has a ping sorting mechanism which sorts game servers by their ping to you, so you only see the ones you have lower ping too. However this doesnt mean the pings are acceptable to the game though, so a specific mechaism which the server can communciation this might be a good idea. But there are so many multiplayer matchmaking services out there, making a common protocol may be difficult.

-ddn
It could be an option you could turn on or off, or set a maximum numer of servers that ask you. That way if you don''t want to get asked, you aren''t. I think KalvinB''s idea would work too, but it would have to entail more than just ping. For example, in CS you can try to connect to a server that has a fine ping and a few empty slots, but they won''t let you play because of your ping. When you try to connect it gives no indication that that server has a ping restriction. Its almost the same when you try to connect to a server that only has so many public slots, and they are all taken. It looks like it would be a fine server to play on but all the public slots are taken. It would really be nice to know all this info before you try to connect to the server.
There is already a solution to this in Tribes and Tribes 2. It''s called a "Filter". YOU define a set of criteria for which kind of game, how many players, max ping value, if there are buddies in the game, etc. Then when you have the filter applied, only the games matching the criteria are listed, and you choose like normal.

Todd M. Gillissie
Todd M. GillissieGilligames
quote: Original post by Moe
I think KalvinB''s idea would work too, but it would have to entail more than just ping. For example, in CS you can try to connect to a server that has a fine ping and a few empty slots, but they won''t let you play because of your ping. When you try to connect it gives no indication that that server has a ping restriction.


But''s still only taking the ping into account. If you just have the server send a "minimum ping" variable with the original ping request, the client can filter all the servers that have too high a ping out. The server doesn''t need to do anything, we don''t need more dedicated "player servers" or anything new.

And like I said before, a server''s ping is not enough of an indication of how playable a server will be. Not only the packet loss I already mentioned, but also because when you ping a server from gamespy or whatever, you''re only sending out about 4 packets (that is, 1 packet to four servers at once) which is much less traffic than you''re sending in the middle of the game. The ping that gamespy gives you is only ever an indication of how good the server will be. The same will be the case if you have dedicated "player servers" or anything like that.

War Worlds - A 3D Real-Time Strategy game in development.

This topic is closed to new replies.

Advertisement