• Welcome to New Hampshire Underground.
 

News:

Please log in on the special "login" page, not on any of these normal pages. Thank you, The Procrastinating Management

"Let them march all they want, as long as they pay their taxes."  --Alexander Haig

Main Menu

Open-source MMORPG

Started by dalebert, September 11, 2007, 11:01 AM NHFT

Previous topic - Next topic

dalebert

I've never programmed for a video game before so I'm hoping to pick some brains of other programmers here. As I understand it, there are commercial engines for online games that are at the root of games like World of Warcraft and so on. Is my notion of building open-source code for 3D online games just not feasible? Is it trying to take on too much without a paid staff of people? In my fantasy, a core group of programmers would organize the open-source project and maintain an online database of code and data including the graphics crunching stuph, the database querying stuph, the client-server architecture, etc. People could submit 3D models and other game concepts they've designed that others could use if they like.

People could run the server portion on their machines and allow others to join their "worlds" that they designed. Many of them would be free servers, perhaps shared amongst a tight-knit groups of friends or open to the public, but some might get popular enough that people would be willing to pay some monthly fee for access to the server to play with others. The fees would help them pay for new servers to accommodate more players and so on. The code itself is free which I like because I don't believe in copyrights, but the service (running a world on a server and connecting clients and allowing them to interact) could be charged for.

I love the idea of a virtually endless array of virtual worlds made by creative people to choose from. A pipe dream? Play devil's advocate, please.

lildog

There's a book called the black art of game design (or something similar) that's really good.  It even comes with a CD with sample source code for 3D game design.  There are also a number of open source code sites for games.

If you are simply looking for a "world" that everyone can contribute to and play in, there are already so many great tools available.  Take a look at NeverWinter Nights 2, it comes with the design tool which allows you to create worlds as complex as you are willing to take the time to design.  Once created, anyone can set up as the server which everyone else can log into.  It allows both public and private servers as well.

dalebert

Quote from: lildog on September 11, 2007, 11:28 AM NHFT
If you are simply looking

Simple? Mwa-hahahaha! Where did you get such a notion from my post?  ;)

Quote from: lildog on September 11, 2007, 11:28 AM NHFT
There's a book called the black art of game design (or something similar) that's really good.  It even comes with a CD with sample source code for 3D game design.  There are also a number of open source code sites for games.

That does sound like a good start. I've heard of it. Will it translate well into linux?

Quote from: lildog on September 11, 2007, 11:28 AM NHFT
Take a look at NeverWinter Nights 2...

That sounds kinda cool. I've never tried it. Still, I'm pretty sure it's a commercial Windows product, yes? Also, I don't think it's actually designed for MMORPG, i.e. potentially thousands of players wandering around a virtual world and interacting with each other when they're in the same virtual proximity, etc. I'm curious about the possibility of a linux open-source project that could be used for anything from single-player first person shooter to something like NWN2, or all the way to a MMORPG like WoW.

Good answer, Lildog. Now we're drilling down into what I'm trying to talk about.

Ron Helwig


Dan


dalebert

OK, whoever smited me, I deserved that for not doing a search before posting.  :blush:

lildog

Quote from: dalebert on September 11, 2007, 11:47 AM NHFT
Quote from: lildog on September 11, 2007, 11:28 AM NHFT
There's a book called the black art of game design (or something similar) that's really good.  It even comes with a CD with sample source code for 3D game design.  There are also a number of open source code sites for games.

That does sound like a good start. I've heard of it. Will it translate well into linux?

That book in particular is written for Windows.  Not sure about translating.

Quote from: dalebert on September 11, 2007, 11:47 AM NHFT
Quote from: lildog on September 11, 2007, 11:28 AM NHFT
Take a look at NeverWinter Nights 2...

That sounds kinda cool. I've never tried it. Still, I'm pretty sure it's a commercial Windows product, yes?

Yes, it is for windows.  It sounds like the first game has been set up to run on Linux though...

http://nwn.bioware.com/downloads/linuxclient.html

NWN2 is VERY hardware intense (NWN1 not so much).  I had to upgrade my PC to play it.

ArcRiley

Quote from: dalebert on September 11, 2007, 11:01 AM NHFT
Is my notion of building open-source code for 3D online games just not feasible?

Um, no, not at all.  That's what I do for a living right now.  We're primarily funded by grants from Google and are part non-profit (the game engine itself) and part profit (the games themselves).  Everything including the artwork is under a free license, the profit model is in providing a dynamic gaming experience through custom storyline, artwork, and mechanics.  That is, you're paying for human services to be rendered.

If you're interested contact me privately.


PS - no free stater should ever call it open source.  That term was invented to ignore the ethical value of freedom from software freedom to "make it more palatable for business users".  Use free software or software freedom.

Thanks

Dan

ArcRiley:
  What's your opinion of the worldforge effort?

ArcRiley

Quote from: Dan on September 11, 2007, 03:32 PM NHFT
ArcRiley:
  What's your opinion of the worldforge effort?

Unskilled and disorganized, it'll never produce a full game.  Look at the age of the project.  It's not stagnant, it's just spinning it's wheels.  People get burned our or tired of the inside bickering, leave, new people come in and tear up what came before to implement their own ideas, it's an endless cycle.

The spinoff stuff they actually managed to get into use (ie, Cal3D) is already obsolete by modern standards.  I've worked with some of these spinoff components before and was discouraged to see them by contrast to what we were able to do ourselves in a matter of days.

This is why we're using Python for games themselves with the engine being a Python module.  The low level stuff can be dealt with fairly easily without worrying about the games themselves and then games can be built by people w/ very little programming experience and without touching the OpenGL stuff very quickly.

Dan


ladyattis

In designing in any game, understand that you have many choices in middleware, GPL'd and non, which are very valuable to you. The reason why I bring that up is that all too often, MMO developers will reinvent the wheel for everything, even memory management. This should not be your goal. If your goal is to make an MMO, consider a list of features you want that a middleware package (GPL or non) cannot cover.

Do you want persistent choice/action throughout the game landscape?

Do you want non-linear/interconnected quest/mission lines throughout the game?

Do you want non-linear/non-dps combat systems? (Similar to Tabula Rasa and  Planetside)

Do you want a complex AI engine to allow for scripted and dynamic behavior in NPCs (friendly and hostile)?

That's just a short list there. But then comes the more interesting and harder to pin down part: what is the world you're making? By that I mean, what sort of genre in a general sense would your game cover? What topics could be brought up throughout the storylines that evolve from your world and what sort of iconic/heroic/villain characters would you like your players to interact with? And so on. I hope these questions help you, but if you have questions for me, since I'm a CS Major (finally nearly the finish line, whee!), please ask. :)

-- Brede

ArcRiley

Don't fall into the "middleware" trap.

Using libraries that do low level functionality, such as physics, text rendering, etc should be encouraged.  If there isn't something which does what you need make it as a library so others can easily take advantage of your work.  It helps the free software community to do this.

The things listed in the last post are far from low level, though.  To take pieces of different software and patch them together is going to not only take you much longer than doing it yourself but, because you didn't write that code yourself, you're going to be dealing with additional limitations, more difficult upkeep, more bugs, slower, and generally not as good of a game.

I'll take the numerous Quake variants as an example; these engines modify quake for new things, such as making it into an RPG vs FPS.  If you look at their development cycle you'll find constant notes about how they can't do X because it'd be too difficult to integrate with the Quake engine code, how Y cannot be made faster because the Quake engine has B feature integrated as core even if it's not useful to you, how Z bug has taken months to track down because they're not as familiar with the code as the authors of the Quake engine..

Whereas, using low level libraries (aka toolkits) you can build your own engine easily.  If all you're doing is a variant off another games rules, ie Planescape, go for it.  Most of us have our own ideas which the Planescape (etc) engine would get in the way more than it'd save time.

ladyattis

Arc, I agree, but there are some kinds of middleware which are completely indispensible. For example, the OGRE 3D libraries do one good thing: rendering 3D scenes. They don't do sound. They don't do sockets. They do rendering. That's why I love OGRE. Also, the Havok physics engine does physics well, far better than the PhysX engine by their competitors in my opinion. And the same for sound systems. Basically, what I support is using standard LGPL or GPL libraries for the essentials and not reinventing the wheel every time for every possible case of rendering, physics, or sound. I think those things are already well understood enough to produce a fairly stable crossplatform game. One great example of this is the Neverwinter Nights client as referenced earlier. The NWN client utilizes SDL to handle 3d rendering calls and what not without having to bog down the programmers in figuring out how to do rendering in the first place. That's also why the NWN client can run on both linux and windows systems without a hitch. That's just my two cents on it.

-- Brede

dalebert

Damn it, Lady! You have skillz. Get your ass out here to NH and help us get this thing going! Arc, send her a PM.
;D