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.
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.
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.
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!
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.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.