🎉 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!

Why is scaling an mmo so difficult?

Started by
22 comments, last by wodinoneeye 9 years, 3 months ago

And cloud hosting, even Amazon's, isn't always cheaper anyway. Part of what you are paying for is convenience.

It's probably cheaper when you have 1000 players, but might not be cheaper when you have 100,000. You're trading high upfront costs for, possibly, higher costs spread over a longer period of time (like the difference between buying a smartphone at it's actual cost and getting a better contract, or buying a subsidized smartphone bundled with a two year contract. You end up paying more over the long term, but at a less expensive initial cost).

[Edit:] Yeah, what hplus0603 said. smile.png

Advertisement

I don't think this has been done, and there's probably a good reason, but does it seem feasible to use a cloud service to augment your own servers? If your net code was built to mirror a particular cloud service you could build an abstracted "spin up an instance" function to prefer your own servers over the cloud service servers if they aren't busy. This might not work very well if the game in question requires a lot of interaction between your own instances and cloud instances though. I think it could work well as a means of keeping your game available to as many people that want it while having time to expand your own server capabilities.

does it seem feasible to use a cloud service to augment your own servers?


It's called "hybrid cloud architecture."

Personally, I'm not super enamoured with the idea, because you're going to want some central authority, like your paying-customers database, and then you have to build a VLAN between your cloud and your data center, and the connectivity there becomes a real bottleneck (both in throughput and in latency and in reliability.)

I don't know if anyone has done it for an MMO game with more complex user interaction than FarmVille, but it's certainly been done for more "enterprisey" kinds of applications.
enum Bool { True, False, FileNotFound };

Of course, it depends on what you're off loading. If you've got a big infrequently run data crunching job where you don't need constant communication between your servers and the data crunchers, it's fairly common to spin up a hadoop cluster or something similar in the cloud to run just that job even if you don't have a particularly good connection with the cloud service. Amazon has a service just for that: Elastic MapReduce. One example of a company that does that is Netflix when they need to re-encode their movies for whatever reason (I know they use AWS for this, though I'm not 100% sure they specifically use EMR). There's also at least one company specializing in cloud based 3D rendering though that may not be the kind of server you had in mind.

As said above, Cloud hosting is not some magical MMO bullet. The true advantage of being cloud hosted is the ability to be flexible in how much computing resources you employ in order to meet the demand for your service (this is true of any cloud hosted application). You can more easily respond to load conditions by scaling resources up or down and save money that way. However, bandwidth and storage (which are not insignificant costs for MMOs) cannot be scaled down easily or at all. Personally I don't think "scheduling jitter" is an issue... I guess it depends where you cloud host, and how your resources are configured. I run some fairly large scale voip systems - which are incredibly sensitive to things like low resolution kernel timers, etc - and we don't have any issues. In the early days of Amazon EC2 it was harder, but still not impossible to eliminate such issues. Nowadays it's fairly trivial.

Mixing cloud hosting and traditional hosting will not be feasible if your protocol is adversely affected by latency.

Why am I being down voted for above comment, just a bit a of fun?

Perhaps because it's rather rude. Or otherwise "is not useful and does not improve the conversation."

Why am I being down voted for above comment, just a bit a of fun?

Hi! I was one of the people who downvoted you. Upon reflection, I may have misunderstood the intention of your post - it can either be understood as a good-natured and friendly ribbing, or a rude jab at someone for your own personal entertainment.

The latter is how I interpreted it - possibly incorrectly. Anyway, I sent you an absurdly long PM listing my reasons in excruciatingly ridiculous detail (I'm not exactly known for my brevity laugh.png); feel free to respond to the PM if you like. I sent it as PM so as to not derail an otherwise interesting discussion on MMO scaling.

I wrote some things on the subject

Wielder of the Sacred Wands
[Work - ArenaNet] [Epoch Language] [Scribblings]

This topic is closed to new replies.

Advertisement