rolling an MMO network engine from open source components?
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]
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).
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).
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 :)
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.
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.
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.
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.
Surely you meant Multiverse.
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.
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.
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?
Quote:Original post by hplus0603
Again, what's wrong with PlaneShift.it or Nevrax.org?
Nevrax.org is a dead link. (At least at the moment.) Perhaps you mean dev.ryzom.com.
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.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement