• Advertisement

Archived

This topic is now archived and is closed to further replies.

hardware requirements for MMPOG

This topic is 6197 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

We are working on several Multiplayer concepts (MMPOG > 10000 users). To finish our cost planning we need further informations about hardware requirements (servers, network, operators). Is somebody out there who has experiences in that? Does anybody know which and how many servers are used from Ultima Online, Everquest, Asherons Call, Planetarion etc. Especially the type of servers, network-traffic, implemented database-systems, how many operators support the servers .... Are there any professional ''server homing comanies'' that have experience in hosting Online-Games? Many questions. But each bit of info helps us to put our concepts into action. Thanks in advance Webseal

Share this post


Link to post
Share on other sites
Advertisement
Just build the fastest computer you can. I''m going with a 1G Athlon. www.aberdeeninc.com has the best prices I''ve seen. I can build the system I want for $500 maybe a little more. Some of the parts I already have. Like a graphics card and monitor and case.



There''s a store in my area that sells cases for $30 with a 300watt power supply.



The real deciding factor is how much bandwith you''re going to require of the EU and how many characters the server can process without lagging.



Price, I''d figure $600-$1000 a server. The plan for the game I''m working on is to just add a server as needed. 1500 max players per server.



Ben



Share this post


Link to post
Share on other sites

Ultima Onine has two definations of "servers". For example, "Atlantic Server" is a mini server farm which supports one world. They have about 20 of those server farms.
Each Server farm contains 4 "servers" (which is our defination of server), or each world is made up by 4 servers. Therefore, they use 4 machines to support each world, which contains about 2000 players online at the same time. Note these servers are pretty old so that modern systems can do these support with less servers.

Each Everquest world is made up by about 50 servers, I believe, which supports less than 2000 players once.

Asherons call is a different story. It uses a Server Farm that dynamiclly assign server boundries. I haven''t heard how many servers are in that server farm yet. I do notice that Asherons Call has the best connection performance in all three, though the game play is the worst.

None of the above game can support 10000 users in the same world/server farm yet. They all made this number figure during design though they had to drop it after beta test.

For the hardware requirement, it does not only depend on number of players you are going support, also depend on Message Size/Frequence, and DataBase. For the hardware we can access now, i''d recommand using a few servers with the following specs:
1G Hz processor (I''d choose Intel for this one)
384 - 512M memory
40G Hard drive.
Other requirements are easy to deal with since the server does not need to run Super Graphics.
$1500 - 3000 is good enought to cover one server, and one server should handle 1000+ clients without trouble. One system is too light to Cover 10,000+ unless you get a Mini Computer (like AS400) with Oracle and high bandwidth connection to handle the database and sockets.

another thing is the that server does not have to run MSWindow since it only does data processing. (MS Window is not that stable, right?)

Just some thoughts.
Turtlenet


Share this post


Link to post
Share on other sites
Prior to my DSL modem not working I had WinME running my web server for 60+ hours without a problem. It''s still never crashed on me and it runs 24/7.

I''ll have my new modem probably monday so I''ll have a better idea of how stable it is by the end of next week.

If you have an extra HD to install Linux on I''d give it a shot to try it out. You can always swap drives. I still have Win 3.11 on a 120mb drive that I can use in my AMD 700.

I use DPlay so that''s why I use Windows. I have no complaints about either OS.

The main reason Windows crashes is because of the crappy computer it''s on. Or all the crappy software that''s installed.

The motherboard and your power supply are pretty much the key to your system working properly. And not overworking any additional hardware especially your video card.

Ben



Share this post


Link to post
Share on other sites
I don''t believe it''s necessary. The server handling the MMORPG I''m working on is a simple windowed app with just DirectDraw and DirectPlay. I could remove DirectDraw and use Win32 or MFC to display any information I want available. In the end I plan to write a special client to remove that burdon from the server.

It runs at well over 100fps on a AMD K6-3 333 w 128megs of ram and an ATI All-In-Wonder card. My AMD 700 with a Viper II and 160megs of ram crashes when I try to run it. It doesn''t quite finish the draw and then stops. It may just be going too fast.

As long as it stays above 60 (the fastest the client can run) there''s no problems. It''s set up so that none of the clients or the server have to be exactly in sync. There may be 1500 people connected but not every person is being updated every frame.

Unless your server is a system hog you don''t need more than one processor and not even a real fast one at that. People have 486s running Linux and a web-server. That''s basically all your server is. It''s just keeping track of and forwarding information to those connected to it.

Do a dial-up test play around for 10 minutes and then check how much data was transfered on the modem with just you using the server. Figure out the per second average then multiply by how many people you want connected at once. There''s your kbytes per second. Multiply by 8 and you have the DSL speed you need.

For needed processor speed see how long it takes to process the average player command using GetTickCount within the loop. Multiply by how many players you want to allow. Divide a thousand by that number and that''s your FPS with that many people connected.

desiredFPS*CurrentProcessorSpeed/currentFPS=estimatedProcessorSpeedNeeded

If it''s rediculously high for either one of the above like it doesn''t exist yet, optimize your server or get more realistic on how many can connect at once.

Ben

Share this post


Link to post
Share on other sites
I believe the primary cost in running a 10,000 player system would be bandwidth not the server hardware. ie The cost of all the systems posted here added togather will be the monthly ISP bill.
I think I read somewhere that EQ has an OC12. (AT&Ts backbone is an OC48)

Servers that run these sort of things run $10,000+. RAID5 hotswap drives, dual Xeons (thats an ECC intel chip), & 512 to 1GB ECC ram...
And the big MMOGs use several systems per world, as mentioned above.

Magmai Kai Holmlor
- The disgruntled & disillusioned

Share this post


Link to post
Share on other sites
A lot of this really has a lot to do with back-end design, and I would think the engineers would be able to project how many servers they'll need to support 10,000 users. The previous poster was right in saying that it's all about bandwidth, but that's not only to the internet (which will likely be an OC3) but internally between the servers as well. There are some other people you might want to ask... like Anarchy Online and WW2 Online... both are implemented as a single huge world rather than a collection of clones.

Oh, as for database systems... Asheron's Call uses a proprietary system but some of the information is stored in MS SQL Server (it's hosted by Microsoft so no surprise there). I'm not sure about the others. In my experience, Oracle will perform the fastest (if the database design was done carefully enough) and be the most reliable, but it really needs an admin to handle daily maintenance. MS SQL Server will be a tad slower (though SQL 7 has really gotten pretty good -- don't upgrade to a more recent version until sp3... they typically have memory leaks and stability problems before then) and potentially less stable (because it runs on NT as opposed to UNIX) but will run pretty much unattended. For business applications, I've set up SQL Servers with a bunch of scheduled tasks and alerts (for regular maintenance, backup, and to handle any typical problems) and they just ran unattended for months without a single problem... I think our warehouse is going on a year without being touched. Asheron's Call went down a few times as a result of SQL Server problems, but from the descriptions I attribute them to admin incompetence more than problems with the actual software.

Edited by - kensai on January 21, 2001 12:06:55 PM

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Anyone know how much bandwidth a single user takes up in a MMORPG? If a server farm serves 10,000 players, assumming its a t3 connection, 3.75 KB/sec for a player is this in the ballpark?

Also, as someone else mentioned, the cost of the bandwidth would be the majority of the cost for a MMORPG network. So to maximize profit, bandwidth reduction would be one of the major goals for any potential MMORPG. If you could get ussage down to 1 KB/sec that would triple your possible number of players for the same given bandwidth, assuming you use 3 KB/sec originally.

-ddn

Share this post


Link to post
Share on other sites
The amount of data going from the player to the server in my game is usually less than 10bytes per action. Depending on framrate that''s about 20bytes per second usually less. And you''re not always sending something and it doesn''t always require a packet back from the server.

If 10,000 people were connected and everybody got everybodies actions and everybody were doing a steady 20bytes per second, it would require the EU have a 1562.5kbps line.

My server could easily handle everything that was thrown at it with a Cable Modem on a good day. The average EU doesn''t have a prayer. The EU with a 56k modem could handle 358 players if the connection stayed high.

Meaning the EU can only recieve the information for 358 players per second. 358 players couldn''t populate the screen at one time anyway since the frame rate would be 0.

Theoretically I''m set with a 256kbps line to handle 1600+ players at once on one server. I set the server program for 1500. If I wanted to up my server''s bandwidth and allow 10,000 I would need 29.29MB of ram dedicated to player information.

Depending on how big your numbers are your results may vary.

Ben


Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Im surprised your bandwidth usage is so low. Im working on a multiplayer action game and were averaging 1.5 KB/sec per client connected. It seems there are orders of magnitude differences in bandwidth consumption between the 2 games. Im thinking about making a simple SMORPG someday. Thanks for the info.

-ddn

Share this post


Link to post
Share on other sites
I''m using quite a few tricks to pull it off. Compression and scripting are basically the keys.

Ben



Share this post


Link to post
Share on other sites
To solve our bandwidth issues, we''ve been working on just sending the deltas (changes to the status quo) and the information in the local area that affects the client. If you have a large number of other characters in an area not doing anything, why update the client? If another entity is running in a straight line, only tell the client when that behavior changes.

If you have a good method for handling lag (dead reckoning, etc...), you can use this to your advantage. Since the dreaded lag beast is the biggest danger to us all, use your lag handling code to your advantage. Anything you can do to reduce the ammount of info going to and from the client will help in other areas.

On a side note, you can set additional machines on your network to simulate lag. One method is to have two "chatty cathy" machines that send huge ammounts of data back and forth. The other way is to have a "slow proxy" server that you send all communication through. Just write some code that will forward all code to the server/client but with a delay. That way you can simulate any sort of lag you want. You can also use this to simulate different connection speeds as well. Saves a lot of time setting up modems and such.

Share this post


Link to post
Share on other sites
I think I should make this post as it brushes into the OS realm. It is important to note that your programmers must make the decision on the operating system, as it''s really their call. Sockets are VERY different in each operating system. In my opinion Berkeley Sockets (most *nux systems, including Linux) offer the easiast learning curve. Honestly the WSock32 API is very wierd too me, but again thats my opinion. *nux systems also offer support beowulf, which allows splitting the workload among more then one computer. It might be a good idea to split everything among cheap servers. Like a database server, running PostgreSQL or MySQL could easily and quickly be accessed via a 100 mbps switch by a world server. The database backend should also be connected to the web server. It is my belief to split each function into a server, thats what im doing for my MMORPG, but then again its more of a mud with simple graphics and doesn''t require that much processing power. You could split the world up into servers, each area living on a different server. Whatever you decide make it flexible, so you don''t get trapped into one method. Experiment. Get a few programmers trying different things on simple 486''s with stupid chat programs, something to buy time while the story writers are churning out ideas. Not every method will work for one project, its important that you understand your goals and the server load. Don''t grow an ego eaither. If your MMORPG grows so popular that it needs to support 10,000 people ill be shocked. Think simple then grow bigger. Set a smaller goal like maybe 100-200 clients at once. That on its own is pretty lofty. You might also decide to break the world down into smaller areas, split among servers. I know EQ does this, and AC does this but in a different and less obtrussive way. Again it all depends on your project. I know that didn''t answer any of your questions directly, but I hope that from this you will be able to draw your own conclussion.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
New article on gamasutra talks about serverless massive peer 2 peer multiplayer games. Its intresting, a different design approach to the issues of MMORPGs. Personally i think it will go more toward the micro servers concept. Micro-Servers which dynamiclly load balance and migrate between machine, to take advantage of the changing network archictecture as players come and go, each sharaing the client load.

http://www.gamasutra.com/features/20001229/fitch_01.htm

Good Luck

-ddn

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
If you have 10,000 players online at once, 24/7, expect a $50,000 bill purely from your bandwidth useage.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
If you have 10,000 players online at once, 24/7, expect a $50,000 MONTHLY bill purely from your bandwidth useage.

Share this post


Link to post
Share on other sites
Asheron''s call used clusters of 7 servers. 4 of the servers would distribute map files to people that needed them (you download the map as you walk into it, since it is 490+ square miles ). The other 3 were for AI and collision checked, et cetera. Each one of these clusters costed about $700,000. One of the developers said something about it online one day .

A T1 costs about $1000 a month, but you may not need only 1 T1 =P.



http://www.gdarchive.net/druidgames/

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
10,000 players on 24/7 of a player base 4x larger say, 40,000 paying 10 us dollars a month = 400,000 us dollars. Hmmm 50,000 dollars is only 12.5% of that. Even with maintence cost thrown in, it''s still a heft profit, but it has to last long enough to make back the cost of developement, which at a budget of 2 million, say within a year it should do. That''s if you can get a player base of 40k sustained for a year. Ultimate Online last i heard had a player base of 80k, and Everquest within 100k.

Its not surprising so many game companies are throwing their hand into MMORPGs, its one of the most profitable entertainment bussiness out there, and the most addictive game genre.

-ddn

Share this post


Link to post
Share on other sites
You better count on spending $10K+ per "world" server. Even then EQ can barely handle 2000 players, much less 10000.

Share this post


Link to post
Share on other sites
I have a question for those who''ve played it. Play the game and then report how much data was transmitted over your modem while you were playing and for how long. I''m just curious.

Ben

Share this post


Link to post
Share on other sites
The reason why EQ only supports 2000 active players per world is due to the finite amount of in game places to go. If there''s 100+ people in one zone, there''s not enough stuff to fight.

I too would like to know about the modem bytes rx & tx...

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Im getting the impression that everyone in this forum makes multiplayer games but no one plays them! 8^)

-ddn

Share this post


Link to post
Share on other sites
10,000 simultaneous users is likely to be quite a challenging project, to put it gently! As several readers have pointed out, none of the current MMRPGs can manage anywhere close to that number of simultaneous users.

BTW, some OSs have troubles scaling to 20k simultaneous socket connections (see recent Slashdot discussion of Linux 2.4s scalability; Win2k and BSD do better here), so careful design is called for to keep TCP connections to a minimum (UDP is the norm for actual gameplay, but TCP can be really handy for world updates and similar - predictable - data). Hopefully not an issue for you, but it came close to biting my *ss in a non-gaming project recently!

Anyway, for this sort of project you are looking at some serious costs. If you want to self-host, in addition to server costs you need to consider:
* Find a location as close as possible to an Internet backbone; zero hops is ideal, but typically REALLY expensive to arrange.
* Arrange for redundant connections from more than one provider - otherwise, anything from a DNS glitch to an upstream (and therefore utterly beyond your control) router glitch can dump all 20k users out of your game.
* Keep several more servers than you need "warm swappable" - ready to take over when things go wrong.
* Arrange backup power for all routers, switches and servers required for this project.

A better option may be co-location, because you''ll have a dedicated staff (who generally know a lot about keeping their data center running), good physical security and someone to shout at when it breaks. On the other hand, you start having to consider:
* Rack mountable servers - the fewer units used the better, since rack-space in colocation arrangements isn''t cheap.
* Heat efficiency. Don''t get Athlons! In my experience, they are really prone to heat problems in a rack environment.
* Remote management, including full remote boot capability.
* Local staff training. Many colocation services will "let you" (ie. you pay for it!) train some of their staff in administering to your project''s needs.

For colocation, you really do get what you pay for. The better sites cost more, and every additional service (backups, reboots, etc.) adds to your cost. Not fun.

In either case, your bandwidth costs are going to be pretty high - high enough that they dwarf server cost! That said, you will want some pretty impressive servers for that type of load. If you can manage it, go for a "horizontally scalable" system - ie. one that lets you throw more servers at the problem if and when load increases. You''ll probably want a good back-end database server (or two - failover clustering can''t hurt), a SOLID firewall (ideally featuring traffic shaping - Free/OpenBSD is great for this), and however many servers you need for the actual game. Multiple CPUs can help a LOT with load, but only if you have a good threading model with a minimum of locks. You do hit diminishing returns pretty quickly, though, especially in setups in which more than one thread can be looking at similar data at a time. Your servers will probably also need GOOD network cards (the Intel DualPort server adapters are excellent performers under extreme loads). Also, don''t skimp on the internal network; you''ll probably be looking at gigabit ethernet if you want to support a world with 10k players - and that may be overtaxed if you have a lot of database updates! Lastly, make sure that your website doesn''t share a server with your games. In fact, if you can manage it, you might want to put it on a different connection. From experience, it sucks when a game goes downhill because of web traffic!

Lastly, on bandwidth.... whatever you do, don''t sign up for a "virtual (insert connection name here)". The big selling point of virtual T1/T3/OC3/DS3 (etc.) is that you never lose a customer because the connection grows as needed. That''s also where it can hurt you badly; suppose you have a massive spike in demand, for example because you get the equivalent of being "slashdotted", or because some k1dd13 decides to Ddos you. Sure, the connection keeps going - and you bill goes through the roof.

If you need more detailed answers on any of this, feel free to email me. I''m a networking/complex issues consultant by day, and this is definitely be more interesting than most of the questions I get asked!

Question for you - how much serverside (back-end) world logic do you hope to have with 10k players?

Share this post


Link to post
Share on other sites

  • Advertisement