Archived

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

Raymondo

Lots of MMOG Questions! Wheeee!

Recommended Posts

Allrighty then...I have a few questions for you network geeks out there! I''m in the process of designing a large MMOG RPG/FPS Project. I''m wondering a few things, mainly because, I''m curious and want to be prepared for when we need to implement this stuff, or because I can''t find any good information anywhere else. If i''m being to un-specific, or you have a question, please feel free to ask me. 1) A)What is an effective hardware configuration for a standard web server (with a secure section to host a restricted site for developers only) Eg. RAID, SCSI. HDDs, Mobo, RAM, etc. B)What is an effective hardware configuration for a high consumption FTP server (with a secure FTP Area for Developers only) Eg. RAID, SCSI. HDDs, Mobo, RAM, etc. C)In regards to the above, how does one implement effective security measures for restricted areas of an FTP/Webserver? SSL? 2. A)From experience (or if you are in a related area of the networking industry, eg. Datacenter server design) what would be the best hardware configuration for a number of game servers (probably between 4 and 6) Eg. RAID, SCSI. HDDs, Mobo, RAM, etc. {^^^^}-> The above system MUST be able to RUN LINUX. B)What Web and FTP server software would you suggest be used? Currently we are using Microsoft IIS on an Microsoft Advanced Server system. We are looking for ease of use, reliability, and security? (lol, thats a little broad isn''t it?) NOTE: The Server software must support Pearl. C)Who the heck should we be hooking our servers up to? Would I just look in the phonebook for a company that sells connections and rents space for servers? Is it possible to ask large companies really nicely to host (piggyback on their connection, without interrupting their connection.) our servers for free, or maybe just pay a few bucks a month for a connection and some space in their server closet? What kind of companies host servers? D)What kind of connection should we be using for each of the different severs? Something along the lines of T1 for the webserver and maybe the FTP? (Speed isn''t too much of a concern, as long as we have a fair ammount of bandwidth, right?) and something a little faster for the game servers...like OC3? Okay so maybe thats a bit of overkill, but I truly have no idea what kind connection will keep 300-400 users (over the span of all 4-6 servers) connected, and lag free (I use the term lag free very loosely) 3. A)What is the most widely accepted from of server enclosures? (Rackmount, or atx server cases?) If we are to piggyback on someones connection (with their permission ) we want our servers to be neat and tidy, and not crowd their stuff and generally cause a whole bunch of frustration... Is it best to have the server 1U, 2U or 4U, full server tower, or just a half tower, or does it depend on what kind of server it is? Wall mounted rackmount shelf, or rackmount self with wheels? Etc. I think that covers everything... Thanks in advance for any information you can provide. Cheers, Raymondo

Share this post


Link to post
Share on other sites
1.

a) + b) Intel Pentium 4, raid 1, 1gig of Memory, 2 40gig HDDs
c) I would use SSL

2.
a) for database server(s): 2 Intel Xeon, raid 5, 4gig of Memory, 3 80 gig HDDs (segate high speed ones prefered)
for game server: depends on your game but nothing below pentium 4 ..
b) Apache under Linux, IIS 6.0 under Windows .Net Servers
c) bandwide costs money so i guess nobody will let you use their bandwide for free. So let someone who rents space and has got a good connection to the net (not only one 100m/bit connection but several) host it. Or host it yourself.
d) T1 = 1.5 mbit/s Not quite much for a FTP but enough for a webserver.
OC3 = 155 mbit/s With 400 players that''s 48kbit/s available for each player should be enought
It mainly depends on your datastream...

3. I would prefer rackmounted cause everything is in one rack and easy to maintain. The height depends on what the role of your server is. Some examples : webserver 1U, database server 2U, gameserver 1U (single processor) 2U (dual processor)

I hope that helps a bit...

Regards
N.O.P.

Share this post


Link to post
Share on other sites
If you are running a webserver on linux you could get away with around 200 - 400 mhz depending on how many server side scripts will be running and a predicted ammount of traffic.

Share this post


Link to post
Share on other sites
quote:
Original post by NextOnePlease
c) bandwide costs money



indeed it does...

Raymondo: for what you''ve asked... the minimum monthly cost would be in the tens of thousands of us dollars.

Do you plan on charging your users over $US25/month ?

Share this post


Link to post
Share on other sites
First thing, forget about doing a MMORPG. It is just not feasible for small teams of developers to do this. The ONLY way you can do this is if you have alot of venture capitalists pumping massive amounts of money into your company.

So what should you do?

Write an online role-playing game that supports 16, 32, or 64 players. Set your sights on 16 players at one time and then test your code to see if you can have support for additional players. Don''t write the game mainly for online, write it with a great story line and great game play. Let the users host your game worlds. This allows you to only implement a service on your network for players looking for active game worlds on the internet.

There are alot more issues to solve than what kind of hardware you will need in making a role-playing game. Start small, but dream big. I know the monthly subscription from players is appealing but it IS out of reach.

So instead of diving in, test the waters with your toe. Who knows, maybe you''ll get enough sales from that single player game to make an MMORPG feasible.

Good luck.

Share this post


Link to post
Share on other sites
quote:
Original post by LordShade
First thing, forget about doing a MMORPG. It is just not feasible for small teams of developers to do this. The ONLY way you can do this is if you have alot of venture capitalists pumping massive amounts of money into your company...
...There are alot more issues to solve than what kind of hardware you will need in making a role-playing game. Start small, but dream big. I know the monthly subscription from players is appealing but it IS out of reach.



Funny you should say that, because our goal is to not charge for Red Planet.

YES, I do realize hardware is one of the least important aspects I (and my team) should concerned with... But technically speaking, hardware, Internet connections and cost is one of the more demanding and time consuming aspects of MMOG development. There is a little bit of a lull while we figure out our financial problems, so I thought I would ask a few questions and maybe get some info about the costs involved.

------------------------------------------------------

We are currently in negotiations with microforte's Bigworldgames, and we are discussing to possibility of purchasing a closed-source license for their client and server side technology ( Networking, visual, and development components ) at a discounted price.

I wont get into HUGE ammounts details about our upcoming license agreement with bigworld because we are going to be bound to an NDA anyways in the next fews weeks...

Basically, we have the Graphics engine (Direct X), MMOG Capable client, and server covered for now. Our biggest tasks are creating the games visual aspects and developing rich, colorful content for players to enjoy.

-------------------------------------------------------

Our original plan for Red Planet (The MMOG) was to make it totally free to play...Of course, if its going to cost us tens of thousands of dollars a month * I had a feeling it was going to cost as much * (About $120,000 CND/YR) then there is no way we can pull it off without a LOT of corporate sponsors, donations and the like.

And when you think about it realistically the chances of getting enough corporate sponsors will basically NEVER EVER happen, unless by some act of god.

Right now our company has 2 avenues of approach to solve this dellema.

1) Change our companies goals to something more financially solvent without disrupting our companies core values (Making a MMMOGs that everyone can enjoy almost entirely regardless of financial standing)

2) Continue along our current path and hope that everything falls into place.

3) Something else?

What now? I have no idea...
-------------------------------------------------------

As for hardware, overwhelming ourselves with the latest do-dads and suppah fast network connections is probably not a great idea. Buying expensive hardware will put us pretty deep in the whole, and expensive network connections will force us to charge lots of money ( I'm not totally against charging a few bucks Canadian a month, something like say, 4.95/mth...But not much more than that :/ )

So what are some good ways to save money hardware and connection wise, without making the connection total ghetto shit and sacrificing too much performance?

One idea I had was if we had hardware that was less fancy, we could just lessen the number of players permitted to play in the game world at once. E.g. rather than 400 players spread across 4 servers, we could have 150-200 players spread across 3 or 4 servers.

Thanks again to everyone who has replied and offered their thoughts and ideas.

Cheers,
Raymondo

[edited by - raymondo on December 29, 2002 3:41:04 AM]

Share this post


Link to post
Share on other sites
Alright, here is a thought that I've been bouncing around a bit. Please note that there are problems with this approach that will become clear.

First off, the company making the game is only responsible for the user login and character information.

'Zone' out the world so a server is only responsible for part of it. Then assign these zones to connected player machines!

Here's how it would work. Initially, the computer(s) that hold the user login and character information are also responsible for running the entire game world. As users connect, analysis is performed on their computer and connection speed. If a certain criteria is met, they are assigned a portion of the world to run. The algorithm for determining optimum "client servers" could also take into consideration amount of time played, number of timeouts by the client, and other "person-oriented" statistics.

The client would have to have EXTREMELY short timeout periods. If you have a client that is running a zone and has 20 clients talking to it and it crashes, those other 20 clients need to know about it and be able to switch their connections to the new computer handling that zone. This new computer would be determined by a quick query to the "master" server that the company runs.

Now when delegating a zone to a player's client, the "master" server should also have at least one backup client machine that also runs the zone. The clients that are responsible for running a particular zone would communicate with each other so that "zone state" would be about the same and fire off periodic zone "snapshots" to the "master." This also allows clients that are moving into zones that are hosted by other clients to check ping time and connect to the most desirable server.

Then you also have to take into consideration what happens when the client's computer has too many connections and need to "split" the zone? So you'd have to write some type of "Load Balancing" protocol for the "master server."

But the absolute biggest problem you are going to have is HACKERS! Yep, that's right. How do you keep some hacker from going in and changing his client/server to his advantage? (Pardon the HIS pronoun). How do you keep a client from updating the character erroneously? Sure you can watch for things like, "Character X is level 2, jumps to level 100" or "Item X is in Character X's pouch" or "Character X has 1 quintillion platinum pieces." But what about those sneaky ones that bump levels twice a day?

This would be so much easier to explain with a whiteboard.

So really the company bandwidth is used for:
User Validation
Client Zone Lookup
Client-to-server delegation
World Snapshot Handling
Chat

And the clients acting as servers are the ones that do the highly repetitious state transactions with other clients and other "client servers" running the same zone. Probably zone local chatting and periodic character updates to the master server also.

So if you think about it, even if your "master" server crashes(power outtages, network problem, bad harddrive, NEVER buggy code hehe), the game world can continue running. No new clients could connect but the existing players would be unaffected unless they moved to a "zone" run by the down "master" server.

Anyway, I really don't think that this is a feasible solution at this time. Maybe sometime in the future but the technical difficulties with such an implementation may be too difficult to hurdle. I'm sure I missed other issues but I actually haven't spec'ed this out so sue me.

G'luck.

Shade

[edited by - LordShade on December 30, 2002 12:34:58 AM]

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
You seem to be forgetting all your help desk staff costs, for both billing and technical support. Not to mention in game support staff, after all if this is MMOG is intended to attract any kind of player base, your dev team will be far too busy adding new ongoing content.

Although I disagree about an MMOG being impossible to develop without massive amount of funding (Seriously, if a team wanted to they could develop it in their garage) I do fully agree however that to run a MMOG, you do indeed need massive amounts of cash to run servers that can handle the amount of traffic of a large player base.

Share this post


Link to post
Share on other sites
I do agree that building an MMORPG is possible with a small team and with a small initial user-base. Once the players have paid you, you can go through an iteration of upgrading the backend(i.e., bandwidth, hardware). Just make sure that the "upgrade" is as painless as possible. You don''t want to lose subscribers by a two day patch process.

Anyway, liscensing technology is all good but I dislike not knowing exactly what is going on. Big World may have the snaziest shiznet at the moment but you still have to define the protocol. So, basically, the Big World engine only provides you with socket management. If you''ve written a good MMORPG then your developers should be able to handle such a simple thing as client/server communication? If not, I doubt you have an MMORPG that is worthy.

Share this post


Link to post
Share on other sites