Sign in to follow this  
spleef

rolling an MMO network engine from open source components?

Recommended Posts

I have been browsing this forum without joining for a while, and I have read the FAQ, and am not here to dumbly ask how to build an MMO game, so please read on :) The forum FAQ mentions several very good general network libraries, and some MMO frameworks, but after reading through several topics, including the use of tcp/ip with async io and iocp, i have come to the conclusion that a good open source mmo framework does not yet exist. There is clearly a lot of good talent here so i feel the question im about to ask might not be out of place. It is clear there is no single open source MMO server solution that allows a budding solo developer to start writing a game, but there *are* lots of quality components out there. My question is this, would it be possible to try and compile a hierarchy of open source components, that might serve as the basis for a quality server architecture, able to support thousands of concurrent connections, with a solid persistence/replication system? It may even be worth having a sticky for the best ideas, and as more and more quality technologies appear, perhaps it could be frequently updated too. I notice that there are many posts from people who have never written a networked program before, asking how to build an mmo game, often without reading the FAQ. This would be another reason to have a sticky for such a list, to cut down on the newbies asking the same questions. I dont think such a list would belong in the general FAQ, as this serves networking questions and answers in a more general manner (and very well too). Lets face it, MMO design and programming is only going to get more popular. My own interest has been re-awakened since i gave up on the idea of writing games many years ago due to fears of piracy etc (years of development, 6 weeks life in the shops before piracy kills all sales, how high risk?). I believe (perhaps naively) that there are enough quality components out there which if combined in the right way with the right glue, could make a high quality server architecture for supporting thousands of connections. Its surely just a case of the right components being combined in the right way :) Finally, wouldnt this also be embracing the object re-use paradigm in the ultimate manner? [Edited by - spleef on June 19, 2009 10:22:23 AM]

Share this post


Link to post
Share on other sites
Well we often suggest beginners start smaller. They should make a few small games then move to a multiplayer game. Once they understand that then move onto other ideas.

MMO games normally have to be designed from the very beginning to be multiplayer. Using an engine and using a separate networking library takes time to integrate together. Often those who have the experience to write an MMO stop asking questions here. I can see where you're coming from though. I've walked a few people through IOCP programming, and it can seem a little daunting the first time around.

Not to mention you'd have to deal with databases and integrating that with the tools you choose. It's not trivial and most people coming here to make their dream MMO game are normally completely underestimating the scale of such a task. This isn't just about programming, it's about content creation also.

I'm sure someone here will offer some ideas though. (For networking I've heard good things about raknet).

Share this post


Link to post
Share on other sites
Quote:
Original post by Sirisian
Not to mention you'd have to deal with databases and integrating that with the tools you choose. It's not trivial and most people coming here to make their dream MMO game are normally completely underestimating the scale of such a task.


Indeed, there is much more to an MMO server than simply a network library and a fast connection. That was the point of the topic really, to identify the many components required with ideas about how to connect them together to make a functional system.

This is the process im currently undertaking, researching the various components that have already been written well, with a view to assembling them into something greater, therefore minimizing reinventing the wheel.

Given that an MMO client/server framework is so complex, it must be the object oriented way to break a complex system into a series of co-ordinating simpler systems, many of which probably exist as quality open source libraries already.

The task then becomes, to identify which they are, and then how best to glue them together :)

Share this post


Link to post
Share on other sites
It's not a known science yet however. People disagree on how best to handle server topology, data storage, load balancing, zone and instance handling, and so on. Some of this depends on your game design, other parts depend on research or opinion.

So in answer to whether it's possible to "compile a hierarchy of open source components, that might serve as the basis for a quality server architecture, able to support thousands of concurrent connections, with a solid persistence/replication system?", the answer is yes. Would it be suitable for all or even most MMOs? No.

Share this post


Link to post
Share on other sites
Quote:
It is clear there is no single open source MMO server solution that allows a budding solo developer to start writing a game


PlaneShift.it and Nevrax.org are two open source MMO server solutions that allow a budding solo developer to start writing a game.
RealmCrafter.com is a cheap MMO server/client solution that allows the same thing -- more like a "MMO RPG Maker" than a server solution, really.
Finally, Metaverse.net claims that you can start developing on their platform right away, too -- servers in Java, clients in C#.
The Forum FAQ lists all of these, and more besides.

Share this post


Link to post
Share on other sites
I believe many of us would really like to see an open source MMORPG framework. And yes, I do believe that it would be possible to construct such a framework using open source software. However, one must also consider the potential licensing issues that may arise. It is not uncommon for open source components to be licensed under the GNU/GPL, a license that is pretty much out of the question for any commercial MMORPG. This license conflict could obviously be resolved by distributing the framework itself under the GPL, but as noted above it would scare off commercial developers, leaving your framework for use in open source, community driven and typically non-profit projects. How many such projects exist? I know of one: Planeshift.

EDIT: Licensing conflicts aside, I doubt that there are many developers -- even here -- who are skilled enough (and have enough spare time) to take on such a gargantuan challenge and produce an end product that is on par with commercial offerings (BigWorld Tech, Hero Engine, etc).

It's not that I dislike your idea (indeed, I would've been very tempted to join such a project myself), but I believe licensing issues could destroy it.

Quote:
Original post by hplus0603
Finally, Metaverse.net claims that you can start developing on their platform right away, too -- servers in Java, clients in C#.

Surely you meant Multiverse.

Share this post


Link to post
Share on other sites
Quote:
I believe many of us would really like to see an open source MMORPG framework.


There are plenty.

But pray tell, what will a software developer do with it after they checkout and build it? Such a framework will need to target content producers. That is the, still, unsolved problem, at least cost-wise.

Develop a content creation tool that non-artists can use, and the world will beat a path to your door.

This would probably lead to sitcom model, where bunches of small, loosely connected content can be churned out at breakneck pace for next to no cost. While most of it would be crud, some of them would stick out.

They would be no blockbusters, but they would represent fairly agile content, which could adapt to market in a matter of weeks, perhaps even days, literally copying sitcom model where characters get killed off/introduced based on ratings, popularity, etc...

But right now, there is no other way around it. Either go for blockbuster, with $100million budget, or go for something that can be churned out quickly. The later part seems to still exist primarily as AS/Flash. I would compare this to soap opera equivalent. Fun for the masses, but really light on substance and content, rehashing the same old trivial concepts over and over (how many Tower Defense/Tetris versions can the internet sustain?).

But if proposed 3D browser extensions come to fruition, if someone works out integration of all these newfangled social aspects (there are several decent attempts out there already), and who knows what more, gets an angle on mobile devices - I mean, they are getting dual core chips already, .....

IMHO, there is a lot of room for experimentation here.

Share this post


Link to post
Share on other sites
Quote:
I believe many of us would really like to see an open source MMORPG framework.


Again, what's wrong with PlaneShift.it or Nevrax.org? They have both already implemented such a thing, independently of each other. Why does the world need a third? And what would you do with it once you had it?

Share this post


Link to post
Share on other sites
Quote:
Original post by hplus0603
Again, what's wrong with PlaneShift.it or Nevrax.org? They have both already implemented such a thing, independently of each other. Why does the world need a third? And what would you do with it once you had it?


As far as I know NeL (Nevrax Library) has a steep licensing cost if you decide to make a commercial game using their library. As for Planeshift, it is not so much an MMORPG framework as an engine. It lacks the abstractions that would make it easy to build your own game on top of it, as that was never the purpose of the Planeshift engine. It is designed solely to support their game. Furthermore, last time I looked, the Planeshift server architecture is still based on a single game server application, and an external AI super client. Given the relatively small number of simultaneous players in Planeshift (about 200), this is fine, but for a truly scalable MMORPG, I believe a different approach is necessary.

EDIT: Oh, and Planeshift is licensed under GNU/GPL, and to my knowledge they don't offer commercial licenses.

Share this post


Link to post
Share on other sites
Quote:
As far as I know NeL (Nevrax Library) has a steep licensing cost if you decide to make a commercial game using their library.


GPL is not a problem for a server framework. And, in fact, GPL is not *really* a problem for a MMO client, either, because almost all of the value lives in the content, rather than the client.

However, if there was a kick-ass, robust, light-weight, right-engineered MMO networking framework out there under MIT, BSD or similar license, I certainly wouldn't mind. I'm just wondering whether there's really sufficient demand and interest in such a thing to sustain such an effort. And, more importantly, are there any users out there? A framework without users will die a quick death, and/or become a poor match for actual needs.

Share this post


Link to post
Share on other sites
Quote:
Original post by hplus0603
I'm just wondering whether there's really sufficient demand and interest in such a thing to sustain such an effort. And, more importantly, are there any users out there? A framework without users will die a quick death, and/or become a poor match for actual needs.


Indeed, whether there is demand or not is a very good question. While platforms like RealmCrafter, which provide technology of questionable quality but extremely easy content production flourish, the interest in more "serious" alternatives such as Multiverse appears to be in decline. Now, I haven't really been involved in the Multiverse community, but I believe the problems they are experiencing may very well stem from lack of updates and a substandard tool set/art pipeline.

One thing is clear: there are many, many people out there who want to make MMORPGs. Most of them, I believe, lack the technical expertise to create the actual engine (hell, who has that expertise anyway?) and therefore turn to solutions like RealmCrafter, which require no programming at all to get a really simple game up and running. Those people would probably not be attracted to a framework such as the one discussed in this thread, unless said framework could provide a level of simplicity equal to what they are using today, or have used in the past.

With that said, if the framework were well engineered and scaled well, I see no reason why professional MMO developers wouldn't adopt it in favor of commercial alternatives such as BigWorld or HeroEngine (given how expensive they tend to be). But like hplus I doubt this framework idea would appeal to the masses.

Share this post


Link to post
Share on other sites
Quote:
there are many, many people out there who want to make MMORPGs


Here's an example:

There are many, many people out there who want to drive a Ferrari. And, given Ferrari sales numbers versus MMO designer counts, it's about 1,000 times more likely you'll drive a Ferrari than you'll design and ship a MMO. There are other things that people may want, but can't actually do, like going to the moon, traveling around the world or writing the Great American Novel.

Now, the reason most of those people who want something don't get it, is that it's too expensive (in some sense) for them. That's not only true for the sticker price at the local Ferrari dealership, but also for the cost of actually producing and shipping a MMO. It may also be that, when they find out how much work it is to maintain a Ferrari, or write a novel, or ship a MMO, they no longer want to do it -- all they wanted was getting a few ideas into some game, without getting all the hassle involved of the full monty.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this