Jump to content
  • Advertisement
Sign in to follow this  
bencelot

bandwidth requirements & hosting

This topic is 3750 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hey all, I'm halfway through making my game multiplayer now, and at the moment I'm wondering how it's going to perform over the net. To get an idea of how many players my game can support, I'd like to know what the current acceptable upload and download rates are for both clients and servers. I imagine that LAN would have a much larger bandwidth.. but by how much? Also, when I eventually do finish my game.. what are some of my options regarding hosting? I'm designing it so it can be played on LAN.. but also hosted over the net, just like Counter Strike. If I wanted to get a company to host my game (such as GameArena over here in Australia), would I have to pay them? Or do they host popular games for free? I know that there are a few Soldat servers over here in Australia.. and I wouldn't have thought that MM (the creator of Soldat) would have had to pay for them himself, since there are Soldat servers all around the world. So yeah, 2 questions. Bandwidth, and hosting options.. Any thoughts? Thanks.

Share this post


Link to post
Share on other sites
Advertisement
Quote:
Original post by bencelot

To get an idea of how many players my game can support, I'd like to know what the current acceptable upload and download rates are for both clients and servers.


How much can you afford?

Quote:
Also, when I eventually do finish my game.. what are some of my options regarding hosting?


Google for: "dedicated server hosting"

Quote:
would I have to pay them?


Of course.

Quote:
Or do they host popular games for free?


There's no such thing as free lunch.

Share this post


Link to post
Share on other sites
Antheus has a point with the no free lunch thing, there are loads of options out there for Dedicated servers or you can look into colocation of your own server.

As far as how many players your game can support, you can really calculate that on your own to find your requirements. How much RAM do you intend to have on the system, how much RAM does your game require per player, per map etc. add that all up. For the bandwidth, how much data is sent every second, every minute, assuming the server is running at capacity. calculate that out for the monthly max, because you don't want to be stuck with excess transfer fees. It's highly unlikely that any dedicated server plan would not support your transfer rate, but make sure your data per second doesn't exceed your max up bandwidth or your burstable limit.

Do the math so you know what you need, then shop around. Don't pay more than you expect it to be worth, some dedicated server plans are $40-$50 a month, some colocation plans are as low also, but they go way up in price really fast. The best thing to do though, is always shop around.

Share this post


Link to post
Share on other sites
You can assume that clients with broadband will reliable get 384 kilobit downstream, and 20 kilobit upstream (based on some crappy cable connections).
If you want to aim for something higher, you can assume 1,024 kilobit down and 128 kilobit up. Xbox Live certification requires that your game work with a 64 kilobit uplink for the "hosting" client (and all others).

A wireless LAN varies between 11 Mbit/s and 240 Mbit/s, although there is usually packet loss and jitter involved. A wired LAN typically is either 100 Mbit/s or 1,000 Mbit/s, although you can now get 10,000 Mbit/s LANs too (at a cost). So, expecting a factor of between 100 and 1,000 difference between LAN and internet bandwidth is reasonable. Same thing for latencies: 1 ms is a reasonable wired LAN latency, whereas 100 ms is a reasonable internet latency.

Networking bandwidth in bulk costs about $10 per megabit per second per month. I e, a gigabit/s of network packet routing for a month will cost you about $10k. That does not include the physical link needed to send/receive the bits -- that varies wildly in cost. In a well connected co-location facility, getting a gigabit ethernet port access may be essentially free (included with the cost of space); if you need to run your own DS-3 or SONET or whatever, it can outstrip the cost of the bandwidth itself, depending on length and already available infrastructure in the streets around your location.

Yes, those guys in yellow helmets with a backhoe still matter to the high-tech world of internetworking :-)

Share this post


Link to post
Share on other sites
So does that mean that Valve is paying for all those counter strike servers around the world? Or do they usually just let the community create the servers for them?

Share this post


Link to post
Share on other sites
Tons of high-action games like Counter-Strike, Team Fortress 2, Soldat, etc distribute their server and let people run it. They maintain non-gaming servers for the lobby (tracks the list of active servers) and, where applicable, updates and such. Once you get a list of servers, your client just asks the server for the ping, player count, current map, etc. Anyone can host a server from anywhere.

Of course, to get people to host servers for you, you'll have to have a good and popular game. If only a few servers are being hosted, most people will probably get poor performance since they're so far away from the server's location.

Share this post


Link to post
Share on other sites
Ahh, I see. That's what I wanted to know.

I can design my game to be hosted by others, and if all goes well, the community will provide servers for me. If not, then at least it'll be a fun LAN game.

I don't mind hosting just 1 master server to keep a track of other servers.

On the topic of a master server though.. Is it possible to combine the hosting for the master server with the hosting for my website? This would save me from having to pay extra - and most website hosting is heaps cheap and has a massive bandwidth. Seeing as I won't actually be running the game on the master server, but just keeping a database, would this be possible?

Also, my master server is going to keep a track of the player's statistics - such as their experience and unlocked skills, etc.. People get experience by playing online and killing other people, and this info gets sent to the master server. My concern is that if people are able to host their own servers, they could cheat by sending false experience values to the master server. Also, they could make their own custom maps, which are really really easy to get XP on, and just play on them to level up really quickly.

Is there some way that I could designate certain servers to be 'rated'? So only rated servers contribute to your global score? How would one go about doing something like that?

Share this post


Link to post
Share on other sites
Yes you can use your web hosting for the master server. Have the server admins register an account with you and store warning level and how much you trust a user in the database. If you get a complaint then you can manage it by banning accounts and such. Would you like some PHP scripts for a lobby list?

Basically when a server turns on it sends the username and password to the PHP page under a registerServer.php. This is verified and if it isn't already on the list it's added.

Then there's an updateServer.php that the server runs when it needs to update the information. Common information is, name, gametype, players, maxplayers, map, and ping.

The server also has a keepAliveServer.php which it runs every X seconds. The db holds a timestamp of when the server was added. This ping script resets it to the current time.

The last script file you'd use is a simple serverList.php which queries for the server list in the database. When it performs the query the script deletes servers from the list with and old timestamp (one that is like 60 seconds old). Thus your clients get a fresh list of servers when they call it and the servers are allowed to crash and reconnect back into the system seamlessly.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!