Game Development Community

Research: (M)MOGs system for Torque...

by Funky Diver · in General Discussion · 09/03/2005 (4:43 pm) · 40 replies

Greetings,


A small group of coders is looking at developing a (M)MOG (like MMORPG or MMOStrategyGame) system to offer it as a library for all the interested indie developers (esp. Torque community). I know it's a big talk inside indie community, esp. Torque, so I will be very careful not to spawn a big flame :) We are not going to talk about full feature set of the system yet, but I would like to tease a little bit :) :
* The system/server will run on *nix/Mac/Windows based system
* The system will support any networked 2D/3D clients
* The system will support UDP/TCP/HTTP/WAP protocols
* The system will be stable with 100,000 concurrent users and more (warning: spoiler :); this hardly depends on provided server software/internet pipe/game type, but we are crunching 10,000 concurrent users (simple arcade T2D game, all players are driven by AI scripts) on Pentium2/64Mb RAM/5 Gb HDD/CentOS 3.4 Server/3Mbit Internet machines, viva optimized kernel, Assembler and C :))
* Minimum server configuration: Pentium 2, 64 Mb RAM, 5Gb HDD, 3 Mbit internet connection; Windows 2000 / Linux 2.4.
* The client part will be released as a Pack to T2D/TGE/TSE (yahooo!.. ;P)
* The server part is not based on the TGE/TSE networking code, but will have wrappers for Torque SDK
* The server part can be licensed (in binary/lib form) or rented on our hosting platform (in far future), but the financial/marketing part is under development and can be changed.


So, what are the reasons of this unofficial post but teasing? :) Well,

1) we would like to create a broad specification of the games that can be created/based with/on this platform. We would like to hear from the fellow indie developers who want create hardcore/casual (M)MOGames with medium/small budget. Please, send us your dream game specifications in a free form (approx. number of players, genre, approx. bandwidth, game client type(2D, 3D ,etc.), game protocol(UDP,TCP,WAP,etc.) and any relevant information about your game idea)
2) we would like to know how many potential clients we can expect by market research.

Please send us your response to the provided email with a subject line containing "[MMOG]" phrase. Beware, we may filter the rest of the email into the spam bin without expected phrase!

Bot protected Email: taualex [at] gmail [dot] com
Replace "[at]" with "@", and "[dot]" with "." without "".
Page«First 1 2 Next»
#21
09/06/2005 (11:03 am)
@Ryan

Oh and I thought we were discussing exactly that, 100k users concurrently online?
If not, we were only talking about 100k subscribers, then it's little more than a matter
of amount of database storage space...

On a side note, EVE-Online as far as I know runs 128 dual cpu server nodes in a cluster handling about 15000 players. That's 256 Processors for you with an estimated subscriber base of 65000-75000 people.
#22
09/06/2005 (1:20 pm)
@Anders:

> 8 AMD Sempron 800 series cpu's (dual core)

This is a waste of money, replace it with 20 Pentium2 single core with 512Mb RAM nodes and you will get far much better results. And it will cost you 20x$300=$6000, save others $194,000 for beer :)
Oh, dont forget to pay about $3000 (~15000Gb) for the bandwidth, monthly. So, only $191,000 left for beer :P

> And you'd need something like a OC-12 pipe (655Mbit)
> and that only gives you 0.81kB/s per user.

Split "entrance" in 2-3 servers with the same pipe each.

> If you make a mmo system it's not going to be worth
> anything if you don't include the support side of
> it. Tools to handle log data, player petitions, GM
> access levels, bug reports etc..

Good advice! Thank you.

> It'd be smart to try connect different zones of a
> world together, running on different processes

Not a good approach, it will create bottlenecks.

> So making sure players have a reason to spread out
> could be something to think about

It's the same as having separated game world servers...

> if I would take your view on these things, then I
> would certainly trash both AMD and Intel and go for
> the real deal

Yes, real-time OS is the best thing I've ever tried in my life, even *nux lagging 5-10ms behind. But do we need such power? ;)

@Sykoii:

> and trust me when I say they do not even come close
> to the power required by an MMO

What about phylosophical point of view and mind flexibility? :) (i'm not trying to offend you, please, excuse my sarcasm :))))

@Ryan:

> With an indie game you can expect populations of
> much much less than 1/20th of that if not a lot less.

Some indie MMORPG have 30,000 players playing at the same time on separated servers (Ruinscape)
#23
09/06/2005 (1:29 pm)
Alexander, you're changing your statements all the time. First you said it was one computer:
Quote:
The system will be stable with 100,000 concurrent users and more (warning: spoiler :); this hardly depends on provided server software/internet pipe/game type, but we are crunching 10,000 concurrent users (simple arcade T2D game, all players are driven by AI scripts) on Pentium2/64Mb RAM/5 Gb HDD/CentOS 3.4 Server/3Mbit Internet machines, viva optimized kernel, Assembler and C :))

And then you're saying it's a system, cluster.. whatever. I mean, if you want to look credible, you should stick to your initial statement and go with it.

I do wish you all the best of luck though. It sure is an interesting project to pursue, and if it ever gets done I would be the first one to buy the SDK. :)
#24
09/06/2005 (1:58 pm)
@Stefan

> Alexander, you're changing your statements all the time

hmmm

> First you said it was one computer

Did i? ;) ("The system will be stable with 100,000 concurrent users and more...", then an example of the dev system we have is following the statement. )
We were discussing the possibility of a single server handling big amount of players, but, I always was pushing the same idea: follow my posts.

> I do wish you all the best of luck though. It sure is an
> interesting project to pursue, and if it ever gets done I would
> be the first one to buy the SDK. :)

Aha!
Thank you!
We have a customer already. ;)))) (that was fast 8-)))
#25
09/06/2005 (3:06 pm)
@Alexander

Now to get a product :)
Oh and single cpu servers are just... crap actually... once you start filling that ethernet pipe with data between servers your cpu is going to be spending an awful lot of time just moving data around and processing crc values on packets and doing tcp/ip stuff. There probably be less than 30% cpu cycles left for actual application execution. And you won't get that much for beer. The networking of the nodes cost 60k Usd alone.. ;)

What I suggest is taking that as a template and removing nodes until you're down to something that can host the amount of players you expect.

Running several processes across several nodes is actually not the same as running different server worlds. You get the possibility of doing load balancing. Static or dynamic depends only on how much time you spend writing that piece of software.
#26
09/06/2005 (5:27 pm)
You know, my big beef with this...

dont "tease" until you have something to tease with.

This nice well thought out "tease" is no better than the 14 year old saying "omfg! i am for REALZ gonna write the biggest best cool MMORPG! 100X better than WoW!!! IT WILL BE RAD!"

if you do have something of substance, and if this turns out "for realz" then i appologize.

But until then i feel this rant is pretty much warrented.

===============
edit: I know it's hard to contain your enthusism when you get hyped up on a project. I know I too was that way with my projects. But I have found that under promising and over delivering is generally the best way to go about things. I still have a bit of a problem with feature creep with my t2d.net project however I actually have something tangable at this point.
#27
09/07/2005 (2:01 am)
@Alexander

Just FYI, I'm older than 25, and I have HUGE pink puffy dreams about creating my own MMO RPG/FPS ;)
I'm hoping a 3mb ATM circuit, 8 rackmount systems ranging from dual P3 to P4, 2 Mikrotik routers, a few SBCs w/ IDE-CF running master servers (linux+perl) will all run my 4 zones, SQL servers and websites.
Maybe a little VMWare in the mix also.
I'm hoping to get 500 players and see what kind of problems arise.
My live beta date is targeted for 1/1/06.

Ari Rule
"I'll sleep when I'm dead."
#28
09/07/2005 (1:19 pm)
@Anders:
A packet of 2Kbytes spends about 5ms between my Gigabit cards. The lowest timer spread on Linux is 10ms. If I receive data in 5ms, CPU will not be "resting" that much...

@Jason:
> dont "tease" until you have something to tease with.

I'm not convinced. ;) But good luck with your project. I'm a MCAD.net, so if you need any help with the framework.net, let me know.

@BrokeAss:
Nice system. Are you sure you want to use perl for a MMORPG master server? ;)
#29
09/07/2005 (1:30 pm)
@Alex

Have you tried filling the pipe and see what happens with system cpu load?
In my design the packet uses about 20 microseconds from point to point, and this is
through a switch as well. That's the specification from an independent test study anyway.
I haven't actually bought any of the equipment yet. I want a working software before I invest
a penny in hardware. Right now we're just leasing dev servers.

@BrokeAss

That sounds achievable, don't think you need to fill 8 racks tho :) 1 should do, and it won't even be full. 1U units... 20 of em, mix of dual P3 & P4 maybe right? You can probably find a lot of those boxes for cheap on Ebay. Working with that kind of 'low-tech' will mean you have to create very good code. And great code will later run great on modern servers :) And cost of failing will be so low you could probably fund it yourself :)
#30
09/07/2005 (1:54 pm)
Umm.. start smaller?

@Alex: re-reading your posts, it looks like your trying to setup a server architecture for mmorgs. this is a cool concept, though i think if you scaled it down a bit it might be better.

work with 1 cpu on 1 box, get it working that way, then figure out how you are going to scale out.

and FYI great long-term advice: the future isnt going to be racks of 300ghz processors. it's going to be racks of 100x3ghz processors. You really should keep that in mind in your architecture. (massivly parrallel processing)

A crude roadmap if you will:
this year: dual core. (2x4ghz)
in 2 years: 4x4ghz
in 4 years: 8x3ghz

this is meant to represent cores per die. (look at the cell processor for instance)

the future is multi-core, multi-processor. If you dont make your server apps take advantage of this natively you are going to have to do a total rewrite sooner or later.

(maybe if you use a JIT language such as .NET, you can get this for free eventually, but dont count on it for now)
#31
09/07/2005 (2:36 pm)
@Alexander

I figured on using PERL because it would run on little SBCs (soekris.com) via Linux.
Also, I am only aware of a PERL master server.
Have others been written/released?

@All
What a great thread!
Anyone have any "hard" numbers of what they are hosting Torque on, how many players, and what features?
I'm a little worried because I have "featuritis" and the load will be heavier than stock TGE.

Ari Rule
#32
09/07/2005 (5:59 pm)
@Anders:
Yes, I've tested the full load of a pipeline: 10ms maximum on Gigabit, Cisco switches. CPU crunches a packet data in 10 ms and ready for another one.

And, yes, you always have to create very good code ;)

@Jason:
> it looks like your trying to setup a server architecture for mmorgs

Oh, yes, finally, you got my idea ;) It can be scaled in both ways. Start small, add nodes later as the player's base is increasing.

> massivly parrallel processing

Oh, yeah, you read my mind. The system will be ready for any amount of CPUs onboard. I'm aware of this concept. No any JIT will be used for core system, maybe only for scripting somehow.

@BrokeAss:
You can write the master server using Torque SDK base code, it has splendid networking functions. It will be faster and less load on a system.

> What a great thread!
Thank you ;)
Indeed, I do like my opponents :P
#33
09/07/2005 (7:39 pm)
I dont think its impossible to achieve those numbers. Some have gotten close.

For example, Runescape used TinyHTTP or something like that, and were able to sustain 30k+ users.

Maplestory routinely hosts 10k+

However, I think "testing in a lab with gigabit cards" is not realistic. You need bandwidth throttling software to simulate users on crappy 56k modems. In previous experience with Unreal, Tribes, Tribes2, Quake, etc, its always the guy with the crappy 56k modem that lags the others with decent connections.

Gonna be a big bandwidth bill :)
#34
09/08/2005 (6:22 am)
@Mark:
You are right about big numbers, properly written login server can be hit by 100,000+ users/sec even on a cheap machine, but what amazes me is people buy expensive hardware and apache licenses and watch their system crunching merely 1000+ users/sec.

> I think "testing in a lab with gigabit cards" is not realistic.

Why? You are mixing server2server and user2server "consepts".
The problem of a guy on a 56k modem is inside server code implementation, not hardware's. Code smart ;)
Bandwidth is real cheap now and will be cheaper: if you consume more then 5000Gb, you can get $0.1/Gb or even just buy a T1 line for about $2000-$3000/month or less. Of cause, you will use such bandwith when you will have a good player base of 5,000-10,000 paying players.
#35
09/08/2005 (7:37 am)
Serving 5,000-10,000 concurrent players on a T1 is naive, you'd need atleast a full DS-3
Which would set you back 4-5k/month depending on provider. The prices for these kind
of pipes vary greatly.
#36
09/08/2005 (11:02 am)
@Anders:
You are correct about T1, my mistyping. T2 will be more-or-less acceptable for a slow/middle-paced game.
And you can find full DS3 45Mb line for $2500/mo

@Jason:

I need to correct myself from the previous post

> re-reading your posts, it looks like your trying to
> setup a server architecture for mmorgs

Not only rpg, but any other genres. Can be arcade, platform, strategy, etc. If a game needs a players limit per room (texas hold'em, strategy for 5-6 players, etc.),
it will be easy to do that, the system will be rebalancing itself for other game rooms which can be more "busy", but players will be able to "see" each other across the rooms, e.g. in chat.
You can say that it was already implemented, and I say "yes, but it has different philosophy". Let say, you are running a service for strategy fans; they're hanging in a chat, create a group of 5 players and start a mission. Then another group of players start another mission and etc. For each group of players you need to start a separate RTS server to handle the game mission. That's the way it can be done with Torque out-of-box.
But how can you load balancing it? To have several physical servers and run about 5 RTS game servers on each physical one?
#37
09/08/2005 (5:41 pm)
Ok, nobody gives me an answer ;)
Our proposing system will use all the nodes in all the defined games, so everything will be balanced between idle CPUs. It meens that you can run an rpg, strategy and an arcade using your N servers "transparently".
#38
09/09/2005 (6:06 pm)
Just incase this isnt common knowlege,

you should come up with a feature list, stack rank them for priority, and determine the minimum feature set needed for version1.

when engineering your architecture, make sure you dont make design decisions that will block v2 features, but dont engineer them in in any other way.
#39
09/09/2005 (9:39 pm)
Good Luck, If you do get the server code working can I have a copy ?? LOL
#40
09/10/2005 (4:09 pm)
@Jason:
Thank you very much for your comments! You are right, it's so easy to jump in and "code", but we do need good "charting" sessions.

@All:
I would like to ask all the interested in MMOGs indies to send us a list of features you would like to see in such product. We appreciate your help!
Page«First 1 2 Next»