What is the most common server OS for MMOs?
I'm just curious what the big companies these days are using for the server sides on their on-line games (WoW, GW, EQ2, etc.). Is it UNIX or some UNIX variant or something else entirely?
We were using Linux for Warhammer Online. I believe *nix OS's are pretty common given their stability and flexibility.
Winterdyne Solutions Ltd is recruiting - this thread for details!
How would a Linux system hold up for a game with as high a user base as World of Warcraft, for example?
Large systems are clustered; it's not just a single box that sits and does anything.
I would guess that Windows and Linux are about as common, as I've heard of large games that use both.
My personal experience is that Linux is harder to get into, but stays up better once going, as compared to NT-based server OS-es (Win2k, or Server 2003)
I would guess that Windows and Linux are about as common, as I've heard of large games that use both.
My personal experience is that Linux is harder to get into, but stays up better once going, as compared to NT-based server OS-es (Win2k, or Server 2003)
enum Bool { True, False, FileNotFound };
If you wrote your server application for a portable environment such as Python or Java (and someday .NET will be considered portable), it wouldn't matter what OS you used. You could simply use whatever is the most cost effective and/or best performing system available. I've heard that Star Wars Galaxies uses Java for it's server application, but I've never verified it.
Quote:
When I was working on UO, I remember actually cracking open a live game server with gdb to examine something; don't remember what. Doing that on a win32 platform would most likely require using remote desktop or some similar thing and using Visual Studio's debugger
I do that sort of thing all the time in Windows. What may have been an issue in the past is that prior to Windows XP you couldn't detach a debugger from a process, you could only attach. This limitation was removed for XP. I have no clue about any limitations VC might have since I mostly use the platform SDK debuggers (e.g. ntsd) in this sort of scenario.
-Mike
Mind you, linux also has the advantage of a (potentially) much smaller footprint - you can configure it so it doesn't load anything you don't need, saving a few per-box resources. That said, we move on to:
As hplus mentioned, large systems are clusters, not single boxes. Whilst you might test areas on a single box, in order to support a large player base, you'll need a cluster architecture, or one that can easily scale up to a clustered environment.
Big companies often have pots of cash (which producers invariably sweat over) and aim for large clustered systems from the outset. Sometimes, (like in the case of a firm for which I worked once) they run over budget and perhaps should have aimed smaller. A large company that can afford the investment for suitably sized clusters (plus support) for multinational simultaneous release can pretty much afford to ignore the per-box saving in ram/cpu that Linux / *nix systems can offer and simply spread the workload over a few more machines. Separation of the two competing OS's is down to development efficiency only. This could either be in terms of development time, or finance, or a balance of both.
Windows Server is now as A-P notes, commonly regarded as being as stable as *nix (or near enough to it). It's got solid platform documentation, an excellent support infrastructure behind it and is a familiar enough environment to work in for most people who've got PC development experience. It's OS-level networking is reliable enough, and fast enough for most applications. There are a couple of rumours about the socket set size being small, but I personally can't confirm or refute them. The indisputable stumbling block is the license. It is not cheap. It's cheaper in bulk, and cheaper still if MS are providing them as part of a development support deal, but one of those requires reasonable project finances, and the other a deal with MS, either as publisher, or perhaps platform (xbox) exclusivity.
Linux, on the other hand has no such constraints. It's bitchy, has no real central support, can be horrible to configure but is cheap. A suitable network to use as a cluster can be built with a few PCs (best spec you can get) and a $35 Linux + bible distro from your local bookstore. Shove this behind a router and a fat internet pipe and you're almost set. Just the man-years of development and testing of server code to go. ;-) This said, once a certain level of familiarity with how Linux operates is obtained, a suitable installation profile can save you those per-box resources, and each box in your cluster will operate slightly more efficiently than the same box with the heavyweight Windows Server installation. Plus there's also the advantage that if you don't like the way the OS works you can recode the kernel and change it. Or just download a different kernel that supports what you want. Some of the heavyweight distro's (RedHat etc.) offer a certain level of support, but be warned, MSDN it ain't.
I settle with Linux as an independent developer 90% on licensing and 10% on technicalities. I like the *nix style threads and sockets on Linux. I like its flexibility in terms of kernel swap-outs, and updates. I REALLY LIKE that I don't pay an extortionate license fee for it. I LIKE EVEN MORE that I can get root access hosting with decent bandwidth for reasonable money (a direct result of the low or non-existant distro licenses), meaning once my code's done I stand a chance of being able to afford to launch a game with it.
To develop my software on Windows Server would have taken a big chunk of my finance just in licenses, not to mention that the hosting is a lot harder to find.
All in all, you pays your money (or not), you takes your choice. Or you just takes your choice, it's up to you.
As hplus mentioned, large systems are clusters, not single boxes. Whilst you might test areas on a single box, in order to support a large player base, you'll need a cluster architecture, or one that can easily scale up to a clustered environment.
Big companies often have pots of cash (which producers invariably sweat over) and aim for large clustered systems from the outset. Sometimes, (like in the case of a firm for which I worked once) they run over budget and perhaps should have aimed smaller. A large company that can afford the investment for suitably sized clusters (plus support) for multinational simultaneous release can pretty much afford to ignore the per-box saving in ram/cpu that Linux / *nix systems can offer and simply spread the workload over a few more machines. Separation of the two competing OS's is down to development efficiency only. This could either be in terms of development time, or finance, or a balance of both.
Windows Server is now as A-P notes, commonly regarded as being as stable as *nix (or near enough to it). It's got solid platform documentation, an excellent support infrastructure behind it and is a familiar enough environment to work in for most people who've got PC development experience. It's OS-level networking is reliable enough, and fast enough for most applications. There are a couple of rumours about the socket set size being small, but I personally can't confirm or refute them. The indisputable stumbling block is the license. It is not cheap. It's cheaper in bulk, and cheaper still if MS are providing them as part of a development support deal, but one of those requires reasonable project finances, and the other a deal with MS, either as publisher, or perhaps platform (xbox) exclusivity.
Linux, on the other hand has no such constraints. It's bitchy, has no real central support, can be horrible to configure but is cheap. A suitable network to use as a cluster can be built with a few PCs (best spec you can get) and a $35 Linux + bible distro from your local bookstore. Shove this behind a router and a fat internet pipe and you're almost set. Just the man-years of development and testing of server code to go. ;-) This said, once a certain level of familiarity with how Linux operates is obtained, a suitable installation profile can save you those per-box resources, and each box in your cluster will operate slightly more efficiently than the same box with the heavyweight Windows Server installation. Plus there's also the advantage that if you don't like the way the OS works you can recode the kernel and change it. Or just download a different kernel that supports what you want. Some of the heavyweight distro's (RedHat etc.) offer a certain level of support, but be warned, MSDN it ain't.
I settle with Linux as an independent developer 90% on licensing and 10% on technicalities. I like the *nix style threads and sockets on Linux. I like its flexibility in terms of kernel swap-outs, and updates. I REALLY LIKE that I don't pay an extortionate license fee for it. I LIKE EVEN MORE that I can get root access hosting with decent bandwidth for reasonable money (a direct result of the low or non-existant distro licenses), meaning once my code's done I stand a chance of being able to afford to launch a game with it.
To develop my software on Windows Server would have taken a big chunk of my finance just in licenses, not to mention that the hosting is a lot harder to find.
All in all, you pays your money (or not), you takes your choice. Or you just takes your choice, it's up to you.
Winterdyne Solutions Ltd is recruiting - this thread for details!
Quote:
Windows Server is now as A-P notes, commonly regarded as being as stable as *nix (or near enough to it).
I've run into unsolvable core OS bugs that made us switch from Windows to Linux -- although that was two years ago. The thing is, when we ran into a similar bug on Linux, we just cracked open the source and fixed it. Microsoft wouldn't let us do that (although they acknowledged the problem).
Using Windows Xp and newer, you can get core dumps from crashed Windows processes with only a smidgen of your old code; you can also attach to running processes using a real GUI (terminal server). The Windows debugger is far superior to GDB in most usability cases. However, that all still didn't outweigh the fact that we could make Linux work better than Windows.
Quote:
except for one "really old" extremely popular MMO which runs on Win32
Sony has publicly stated that EQ runs on Win32, so I take it that's what you mean.
enum Bool { True, False, FileNotFound };
Quote:
Original post by Anonymous Poster
UO started running on Solaris on SPARC, and we eventually switched to Linux on x86. All of the MMOs for the company I work for now (which comprises the majority of the non-WoW MMO space) also run Linux, except for one "really old" extremely popular MMO which runs on Win32.
The bullshit about Linux being more stable than Win32 is just that anymore. However, the major advantage that linux/unix has over Win32 is the ease of remote administration which includes cracking open core files and even running game servers with gdb.
When I was working on UO, I remember actually cracking open a live game server with gdb to examine something; don't remember what. Doing that on a win32 platform would most likely require using remote desktop or some similar thing and using Visual Studio's debugger. Those were the days.
I'd be interested in talking to you sometime about a project startup I'm involved in, if you don't mind :)
[ Odyssey Project ]
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement
Recommended Tutorials
Advertisement