So You Want To Write Your Own MMORPG
Jari Komppa writes "After getting tired of tons of newbies starting MMORPG projects as their first programming project and calling for help on flipcode message boards, I decided to write a little rant in attempt to give these people some idea of the magnitude of the project they're starting. There seems to be hundreds of these projects out there.."
Why complain about these harmless newbies. They'll learn from their mistakes and start more reasonable projects later. One has to make his own experiences. When I was younger, I too started huge projects of this kind. Now I know it's not as easy as it seems.
True warriors use the Klingon Google
At the very least more ppl will get into programming starting projects way over their heads. In 92 I decided i wanted to do a mud... Tackling a major rewrite of a mud was a bit much for my programming skills at the time but after reading through all the code (could tell you what a function did and where it was at the time) I ended up doing many minor improvements. I never did do even a quarter of what I intended but It gave me the push to polish my skills. After the projects die I'm sure the surviving ones will be able to canibalize the remaining ones for usefull code... all that work won't be for absolutely nothing. The best way to learn to program is to work on something your passionate on.
The important thing is to not be overly optimistic. The game I'm working on is a simple single player game where you are building (and at times defending) a space station. Sorta a SimCity meets Babylon 5. I don't even want to think about how long I've been working on this. Of course I am pretty slack about it, sometimes many months will pass with me not even doing anything with it. Too busy with school (a few years ago), work (now), and having a life (sometimes). Someday it will be complete and it WILL be cool.
I am thinking of doing a MMORPG kinda game but I gotta finish the one i'm working on now. And I agree with the guy when he says that you need help for this.
But I'm doing this for fun, and even if no one else likes this game, I will love it because I put so much hard work into it. And besides, I have learned so much about programming while working on this game (OOP, threading, UI design), which is another benefit to it. I have redesigned the programme three times and changed the library i was using twice (allegro to SDL to one I'm making that uses SDL).
So if you are thinking of making a game, I say go for it. Start with a simple idea that's not gonna take too much time for you to actually see something on the screen or you will get programmer's block (like i have many times). Cut down your game to the bare minimum of complexity, you can always expand it later.
You probably won't get rich off your game but you'll have fun making it, and you will improve your skills.
I must say that I agree. I've been working on a text-based MMORPG for the last few years. Yes, that sounds like an paradox but the idea to to make the engine robust/abstract enough so that graphical clients could be added at some point in the future without forcing a rewrite. For the moment the developers like text, prefer text, want text, etc. There's graphical clients for players and world editors with fun widgets, but the world in mostly expressed in text.
This project was my 3rd attempt, so I knew what I was getting into. I tried to use off the shelf technology whenever possible. It was decided up front that speed and performance were not an initial goal- we can worry about optimizations later if moore's law doesn't do a preemptive stike.
So, we've waded pretty deep into the waters of multithread scheduling & concurrency safety, Object modelling, internal scripting languages, Relational databases and persistence layers to abstract their interfaces, XML parsers and generators for client/server protocols, and all the other fun stuff that you would never imagine you need to know to write a decent engine.
Yeah, it's taken longer than we thought it would and we're just recently at the point where we can write "the fun stuff" (ie, non-infrastructure).
For a project that's done in spare time by a running average of 2 active people (and a dozen well-wishers) I think we've done very well. The only reason I think we made it this far is that people were willing to wear multiple hats of sysadmin, developer, webmaster, packager, and documentation maintainer. That, and
they were willing to waste a few years working on infrastructure instead of "the cool magic system".
I still think we'll be surprised if the system is ever playable, but at this point it's a social activity for the people involved and it's helped me land at least one good job. I've learned a lot from working on the project and don't reqret any of the time put in.
I don't like to talk about the project too publicly (I guess this is the exception) because of the high failure rate and generally lack of respect anyone has for these sort of things, as evidenced by the article. Still, if you're realistic about what you can get out of the effort, it might be worth a shot.
Good Luck,
I've been programming since high school and I'm currently a CompSci student. Over the years I've been a part of many scenes, and people like this are everywhere.
I remember QBasic forums I'd read. About once a week someone would come and ask for coders and artists and soundmen for their killer RPG that's ten times better than Final Fantasy 3. Or sometimes, it would be the just slightly less annoying post of "How do I make RPGs?"
Just a few years ago, I'd taken an interest in Half-Life coding. I never go too deeply into it, but I participated on message boards answering questions that I could. Over six month's time I got no less than 25 people contacting me asking me to be the lead programmer on their great new mod that would beat TFC or (later) CounterStrike.
Even playing EverQuest, it got out to my guild that I was a CompSci student. Immediately someone approached me asking me to program for them since they had a great amazing idea for a game better than EQ.
All of these people are simply people with ideas, who haven't yet realized that ideas aren't worth shit. They think that their idea is so wonderfully unique that it will carry them all the way to the top, despite the fact that they have no useful skills. Some of these people will listen, and scrap their big idea and start on something small to learn to program. Most likely though, they will realize that the game making business isn't the thing they thought it to be, and so they will give up and go back to just playing games.
But there's always someone with an idea out there who over estimates its value. And they'll just keep coming.
Reminds me of the old BBS door's, man everyone and their brother was writing those things. From Pimp Wars to Pissing contest, to OO][ who. Got pretty damn crazy back then, with everyone and their brother grabbing a Pascal compiler and popping one out.
I think the rant is unjustified. It is better to see thousands of people wanting/trying to write MMORPG's then not, cause if no one cares then your project/concept/genre is DEAD. So be happy people are into MMORPG's and have a beer or something.
There are plenty of people willing to help.
As someone who knows C++ cold (with OO CASE tools,
libraries, the guts of its object system, modeling
languages and notations, generic programming,
framwork and toolkit design, debugging, etc.)
I am willing to give some guy a hand, and help
him make a difference. But here is a catch!
I want the final version of the design spec before
I even move a finger. There are way too many SF
projects that serve no other purpose but to waste
your time (seriously, I had this "leader" stalk
me, and IM flood me!)
If the guy has a solid idea, I don't mind investing
an hour a day, to co-implement his ideas.
What sucks is, when they ask YOU for ideas. I am
all for democratic production, but for chrissake,
say it upfront that you have no idea.
Some of these guys (kids?) are in it for more than
scratching an itch. Sometimes, they just want to
show off an IRC buddy, other times, they just want
to get as many kudoses as "celebrity" developers.
Whatever their drive is, I would be happy to contribute
to their project if:
1) they KNOW the domain of the application (yes, sometimes they want contributors to their *study* projects.)
2)They have the design spec frozen, and
captured in a document.
3)They have demonstrated their seriousness, by bringing
some code to the table (don't even think of ripping, or "extending" another similar project.)
4) Christ, they have a great attitude. Don't ask too
many questions about my personal life, don't demand
that I stick to my "code submitting" schedule --turth is,
my real life comes before the deadline of their project.
5)they must admit other's contribution (this cheesy, distributed thingie has my name in the "submitted patch"
category, even though I wrote half of the code,
and made the stupid thing "distributed" in the first place -- yes, I broke it down into modules,
and designed/implemented the inter-module messaging system.)
oh well.
--
They're always going to be newbies trying to get in way over their heads. Here's a post from ten years ago from some joker who's trying to program his own operating system. Now instead of operating systems newbies trying to do MMORPGs. Just ignore them and let them give up on their own.
edrugtrader 40,000 users... trade drugs and pimp hos.
MARIJUANA, SHROOMS, X: ONLINE?! - E
I am a very experienced programmer; after retiring I decided to try my hand at a massively multiplayer game system. I got a long way too; my graphics engine smokes any of the the games out there today. My network engine is distributed and robust. Oh, its a glory to see.
All except that its not quite finished yet, and probably never will be.
I knew the magnitude of the problem, or thought I did. And I was right...about the programming end of it. Its a big task, but I'm a big programmer.
But taking an engine and making a game is just plain overwhelming. The content for a decent game is a lot of work, mostly artistic. Polishing all the edges takes time, what I thought would take two years, I now estimate at about ten (1.5 years into it).
My suggestion: don't go there unless you have a big team behind you. Ever notice how big the credits pages are for games? Take heed!
Being a "table fan", I always try to tablize (parameterize) as much of the logic and control information as possible.
If such was done with a role-type game engine, then most of the effort would be filling in the tables just like regular ol' biz data entry. The characters would have parameters like risk-taking level, evilness, loyalty level, and even variational ranges (tolerances) for some randomness. Perhaps GIF filenames to give characters images for different moods (fields like character_ID, mood_ID, fileName, etc.) You get the idea.
This seperates the content creation from the programming. Some people may prefer to work on the programming (framework) part, and others may want to work on the content end by filling in tables/forms.
Too many people like to hard-wire lots of this stuff in code. I don't get that. That is not the way to manage jillions of attributes. Code is for algorithms, not attributes IMO.
Table-ized A.I.
MMORPGDK
Trying to provide the server systems that handle all the objects, the user accounts, the messaging, the scripting system and then provide the client(s) to the game server system and last of all also provide gui tools for just about anybody to create their own game objects, their quests, their own skill/attribute system and install and run the thing must be real mad now that I think of it. The goal is such that anybody should be able to use it, import their content or create their content and get their game running. Your opinions please.I hate to say but that's a typical finnish approach and should be ingored
I'd like to adress this message to all newbies and programmers who embarked on tasks that are laughed at by others:
So what if there would be thousands of projects like that? What harm is there?
Every day people start out to create new projects, not just RPG ones but anything. There's no estimating the number of hobbyist projects, let's just say there is an entire 'ocean' of software out there. Does the author of this article imply it is harmful to have this kind of diversity?
Every programmer starts out as a newbie. It's just that some day you decide to improve your IT skills beyond those of a mere user. This is a change of mindset where you have the desire to CREATE something instead of just USING stuff that other people cooked for you. Being a newbie isn't a bad thing per se, so we should stop looking down upon and discouraging newbies from doing stuff that they like to do.
I've been working as a developer for almost 10 years now and I feel a bit like a newbie every day because every day there is something new to be learned.
Few software projects encourage as much fantasy and creativity as roleplaying games - maybe because your goal is to literally create an entire world of your own, you can have anything you like! I would argue that most people who do this don't want to create the next everquest or anything (well, there's always hope of course) they just want to do something cool that is fun for them. A simple truth in software development is that a majority of all projects (be it commercial or hobbyist) don't ever get finished. That's not a big deal, because maybe by the time the project finally dies the (level 0) newbie who created it turned into a (level 1) Developer.
Experience is what makes us better programmers. Experience can only be acquired by learning. Learning can only be done while being motivated. The kind of motivation you get by creating something of your own is immense. Don't ever let nay-sayers discourage you from creating things!
I actually made a MUD from scratch (It's called Hunt for Osama), and it is not as hard as people make it to be. It just requires devotion. If you let articles like that one get you down, your NEVER going be able to make anything. Just get a idea, print the idea clearly in your mind, and go for it. Build visual aids to explain the structure you want to make for it (I personally use flowcharts). You'll be suprised on what you can accomplish in a few months time.
Getting in over your head that is.. Because you'll eventually have a conversation like this:
Me: You needed to see me?
PHB: Yes, sit down. We need something to compete with Microsoft Windows. Sales has decided that they need this to break into markets that have thus far been out of our reach.
Me: *blank stare*
PHB: We need a demo in time for the Lala Expo and we need to be able to ship 2 weeks later. The Expo is in August so that gives us almost 6 months. One customer is really interested in getting this in late July though, so if we can meet that deadline, there will be a $5,000 bonus.
Me: *blank stare*
PHB: Great! I'll schedule daily progress meetings with myself, you, sales, and marketing.
DISCLAIMER: If my boss reads this I'm just kidding..
Seriously though, I'm starting the framework for what could be a MMORPG, but I've been taking on things like that for almost 18 years now -- never completing a vast, vast majority of them! But you know, I had fun, learned a ton, and I'm very employable now, regardless of never really having a finished product (of course, I don't work in the game industry). Basically, if you will learn something and it's enjoyable to you, go for it, because hands-on experience (good or bad) is the only thing that really makes you a better programmer.
Stupider like a fox! - H.S.