Internet RPG's
Generally they have each part of the map on a differnt server. Which is a reason like in some of them if you go so far you get a loading screen(they have to switch you to a differnt server). Speed?? I think most of them are pretty laggy no? But the thing they do is send as little data as possible.(like only data on players,creatures ect if you can see one or they are withen blank so many tiles range.)
The good thing though, is since you don't really worry so much at the server level about drawing and rendering and all that GUI stuff that the player wants you can make the server fairly cross platform as well. If you have GUI configuration managers for you're server you could also make those specialized clients, basically stripping you're server of all need to worry about rendering. That way, if at first you, could not afford a UNIX environment you could temporarily run it under NT.
Last, like the fellow said above, lots of memory, and multiple processors. Use threads as well if you can since these kind of apps are tracking so many objects and sessions at once.
Good Luck ;-)
Real briefly you need more memory than 256Mb - 1Gb. The reason is that you will track everything in the game in lists and these lists can become quite large. Just think how many objects the world of UO has in it or how many monsters EQ has.
The number of processors is always better with more though under NT you really can't take advantage of SMP like you can under Unix because of the HAL layer in NT.
You should always send the smallest amount of data possible. If your starting the project now you do have the ability to plan for only cable/ADSL or better connections. In 2 years when your done this will be the standard. To accomodate this you will need fractional T3 links into your site at 6Mb minimum.
When thinking about the code. Use threads at a minimum. Since threads have overhead they can be slower if you mistakenly use them in a serialized process. Only use threads where nothing depends on the thread finishing. We have a single process handling connections and the main game loop. I will have a world manager process(not thread) managing the online world. this process will spawn threads to handle the resetting of zones. Having too many threads can overwhelm the system and you will get system lag.
The architecture you will use is fundamentally dependant upon your network bandwith, network design, server tasking, and design requirements. If you have a scripting language for NPCs then you will need something to process that component. As you add features they may or may not be suited for their own box. Make sure the backbone to the server cluster is at least Fast Ethernet. Anything less and you will have system lag with 1500 users.
My last piece of information is to have a very defined scope, and detailed documentation done before you start coding. If you don't hold scope in check, no matter how cool the enhancement is, you are bound to overload your hardware real quickly considering the scale of users.
Hope this helps.
Kressilac
------------------
Derek Licciardi
[This message has been edited by kressilac (edited December 22, 1999).]

My email is jonathan_morris@hotmail.com.
Anyone who can help us out would be greatly appreciated. The world of large-scale multi-player gaming seems to be a black art right now, so this appears to be a great way to start.
- First of all, what type of hardware do you think they're using and what would some indie-programmers like all of us here need to get something like that going (smaller-scale, of course)
- And second, what type of gaming architecture do you think they're using for such a large-scale game. How do you think they program games like that to run with minimal slow-down?
Since gaming seems to be jumping full-stream into the online world, I thought this would be a great subject to talk about.
- Fuge
The info is out there. Al you have to do is look. http://www.mudconnector.com will open your eyes to just how many people have already developed text based and graphical online RPGs already.
Sincerely
Kressilac
------------------
Derek Licciardi