MMO Framework Specification Brainstorming

Started by
12 comments, last by hplus0603 15 years, 2 months ago
Hi, I am currently think about to create a framework for MMOs The idea is that for creating a MMO many different talents are needed and that many developpers work on different scopes. For example: A engine specialist works on the fastest connections with the least lag. Works on efficient data structures and data base connections etc. A game specific engineer works on the game mechanics A wold designer work on the world, the NPCs, weapons etc. A quest designer uses the world and popluate it ... Most of the time this work is redone again and again. For a MMORPG designer for example it would be nice to have a base framework where he does not need to know to much about the network and database technologie for example but could build on an existing framework. One problem is that out there are nor real open source frameworks that could be easily used by a MMO-Game designer. Either the framework is to copmplex to be used or the license is not usable (for example GPL could not be used by a comercial product). So I would like to set up a specification would a generic framework could look like. For example it could look like: On an basic layer is a netwoking protocol that offers UDP/TCP service with differnt types of service for example fast delivery without checks, delivery on a specific time out, ordered delivery, save tcp delivery. A database service that handles the peristence of static and dynamic data. A task managing service that handles user request and triggers. A changemenagement that delivers changes between c/s uses appropiate qos etc. A scripting language that is used by the game-enigine designer, that transparently handles the basic layers (net, data, events etc.) - the designer gives hints to the engine that cross compiles classes that handles the technologie a bit like EJBs in Java. Additional libraries are offered for typical work like collition control, etc. The server framework is able to handles diffent shards, instances etc. An Update mechanism handles udates of new world map stuff to the client... There may base framework for frp games or fps etc. To my person I am not a total newbie, I have a lot of coding experience (>15 years) - my favourite topic is client/server programming with many clients; database programing and language design. I have programmed some 3D games in the past but that is long ago. So I lack experience in MMO-programming I hope you could provide me with: information where to find more information your experience ideas about features and requirements and maybe some help in the future realsing the framework Thanks, Venraij
Advertisement
Quote:Original post by venraij

(for example GPL could not be used by a comercial product).


Why not? Several companies exist which make solid business off open source in general (including GPL).

Online-anything is a service. Code is not what makes the money. How many businesses use Apache. How many regular companies exist that work exclusively on Linux distributions.

The distinction here is that while Lua is used for scripting, and Blender for art - license applies to software only, not the work produced using it (still, read the license to be certain). An artists that produces a model using FOSS software owns the copyright model, and the model may be resold or modified in any way.

But as always, double-check the license. There was recently some issues with some Google's online apps, where the license was copy-pasted, and as such Google claimed copyright over context produced using it.

But GPL does not in any way imply that, nor does it prevent one from using software commercially, it merely places some restrictions on what must be provided without extra charge of any kind.

If use a GPL (not a lesser GPL) licensed lib your source code has to be published too - that is a serious problem for many companies

But taht is not my only reason why I am interested in more general framework...
Quote:Original post by venraij
If use a GPL (not a lesser GPL) licensed lib your source code has to be published too - that is a serious problem for many companies



No you don't. TIVO, Google, Github have all built businesses on GPL code without distributing source for anything.

As far as your idea goes what are you planing on doing differently that I can't get from using racknet and a ORM?

Quote:...Either the framework is to copmplex...


You are doing something complex there is no way to hide the complexity and do a good job at the same time.
Quote:Original post by stonemetal
No you don't. TIVO, Google, Github have all built businesses on GPL code without distributing source for anything.


Wait, what? That's a direct violation of the GPL, which states that modified source code or any GPL library integrated into an application must be released under the GPL aswell, with full source available.

I don't know where you got these ideas, but they're incorrect.

Toolmaker

Quote:Original post by Toolmaker
Quote:Original post by stonemetal
No you don't. TIVO, Google, Github have all built businesses on GPL code without distributing source for anything.


Wait, what? That's a direct violation of the GPL, which states that modified source code or any GPL library integrated into an application must be released under the GPL aswell, with full source available.

No, it's perfectly fine to "build businesses on GPL code without distributing source", which is what was said. What you can't do is distribute the stuff you build without distributing the source too. If you're not distributing anything, there's no requirement to distribute source either, GPL or not. This is an important distinction when writing server-side stuff.

Note that the business of a GPL MMO engine for a commercial game was already tried: Nevrax.org (Saga of Ryzom -- didn't do all that well)

The truth is that 90% of the problems of creating an MMO come in the project management and production side -- there's a LOT of art and other content that needs to be produced. Compared to that cost, the cost of engineering isn't that high. If the reason you're doing an MMO is that you think you can provide something unique (peer-based instancing, hierarchical command-and-control, or whatever), then building your own tech isn't that bad an idea.

[Edited by - hplus0603 on January 27, 2009 3:00:40 PM]
enum Bool { True, False, FileNotFound };
Quote:Original post by Toolmaker
Quote:Original post by stonemetal
No you don't. TIVO, Google, Github have all built businesses on GPL code without distributing source for anything.


Wait, what? That's a direct violation of the GPL, which states that modified source code or any GPL library integrated into an application must be released under the GPL aswell, with full source available.

I don't know where you got these ideas, but they're incorrect.

Toolmaker

No offense but I doubt they are incorrect.


straight from the horse's mouth
Yeah GPL applies to the source code and distribution of the executable from that source. If they don't distribute the executable or any other compiled form of the source, then they don't have to release their modifications. Providing a service based upon the source isn't consider distribution of an executable, and its clearly stated within the GPL that that's allowed.

Though you'll have to work to prevent contamination with the client executable you do want to distribute, but that's just source accounting, making it all legit.

-ddn
Have you thought about a modular architecture? I mean, that you have separate servers for handling different tasks like NPC AI and actual game mangement? So, it would be a very scalable framework.
Also, I would recommend Lua for scripting. It is light and fast. Postgresql seems to be a quite stable and solid database server, Worldforge project is using it. Both solutions are GPL, but I think that issue have been cleared in previous posts.
About the client, I think that it is pretty hard to provide a generic client (but with some effort it can be done). Perhaps a quick solution is to provide libraries to ease client/server communication so the developer can create its own client.

This topic is closed to new replies.

Advertisement