Slashdot Mirror


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

14 of 35 comments (clear)

  1. What's the point? by codexus · · Score: 4, Insightful

    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
    1. Re:What's the point? by Rentar · · Score: 3, Interesting

      Wow, a non-trolling first post ... I thought of doing such a thing myself ;-)

      I basically agree, but:

      • There might be newbies who actually had those thoughts in the back of their head, but need to see it black on white to really realize this. For them this is a good rant. They will probably join another MMORPG.
      • Those newbies who are quite serious about starting such a huge project will do it, wether they read this rant or not. They will learn it the hard way (which I don't think is all to bad, as long as the hard way doesn't include any lethal or damaging situations.)
      • Most rants primarily help the ranter. I'm sure the author feels better now, that he brought his thoughs to paper (well ...).
    2. Re:What's the point? by Lord+Omlette · · Score: 2

      Or they'll bite off more than they can chew, get really depressed, and never get around to contributing anything to anyone. They've got to get it in their heads to start simple, otherwise they'll never achieve great things.

      --
      [o]_O
    3. Re:What's the point? by mmaddox · · Score: 2

      Why rant?

      For some bizarre reason, there is a wide-ranging belief: anyone can purchase a compiler and some tech books, thus, anyone can write good software. You see evidence everyday - at least I do - in offices where the operations staff (tape monkeys) have been transferred into programming with the help of VB and a Dummies book, in state government where the only qualification for programmers is a college degree (no matter the major), in clients who INSIST that their Excel spreadsheet is the perfect medium for their corporation-wide finance package. Even worse, you see it in the software that you suffer from daily.

      To the point: Programming is easy. Designing and building useful software is HARD....DAMN HARD. Just because no governmental body is demanding that you become licensed and certified before foisting your code upon the world, doesn't mean that software development is any less an engineering feat than building a suspension bridge. Sure, anyone can drop a log over a creek and call it a bridge, just as you can pound together some QBasic routines and call it software, but don't fool yourself concerning your true level of skill.

      Software development is in its infancy, and most likely will require many lifetimes to truly reach some state of maturity. Development processes are poorly understood, architecture is almost non-existant, and we practitioners are often left groping about in the dark. For now, good software comes from people who are willing to: work hard, think hard, and fail often. Paying the piper, in this day and age, is the ONLY way good developers come into existence, and the ONLY way good software ever comes into being. Inspire the dreamer to move, not merely sit and dream.

      THAT'S why I rant.

      --

      What'dya mean there's no BLINK tag!?

    4. Re:What's the point? by Guru1 · · Score: 2, Informative

      Or they'll bite off more than they can chew, get really depressed, and never get around to contributing anything to anyone. They've got to get it in their heads to start simple, otherwise they'll never achieve great things.

      Like many coders, I enjoy the process of designing and writing my own code simply for the sake of making something work. I started my own MMORPG a couple years ago and it's working out well so far. No, I'm not ready to go public, and yes, there's a good chance it will never go anywhere, but that's not necessarily the point is it?

      Since starting I have learned piles of things about Java, threads, networking, different ways to cache things, etc etc.. it's a great learning experience. Just as many people first learned to program from writing basic games on their old apple IIe's, I think it's a great learning experience.

      Actually I would say that it's a better thing to practice programming than any other type of "game" that you could play around with. Online games of this sort tend to involve incredible flexability in the types of things they cover. Security for hackers trying to break your game, connection speed and threads for the hundreds of people you're planning on having connecting, memory usage for the hundreds of objects and rooms you'll have, speed since you'll want your game to not crawl, data storage since you'll have all sorts of data to store about people, areas, etc etc etc.

      I'd view this almost the same way parents view their children reading. Every coder should try to write a MMORPG at some point in time.. you could learn a lot while having fun.

    5. Re:What's the point? by mmaddox · · Score: 2

      I should quote the prior post:

      For now, good software comes from people who are willing to: work hard, think hard, and fail often. Paying the piper, in this day and age, is the ONLY way good developers come into existence, and the ONLY way good software ever comes into being.

      To expound, teaching yourself to code isn't a bad thing. In fact, I think it's a GREAT thing, as I did it myself from the age of 10 (I'm 32 now). My intention was to make the new programmers semi-aware of how MUCH there is to learn; to wit, the old saw about true wisdom lying in the recognition of how much there is still to learn. The real issue, for me, is to recognize how much there is to software architecture and design - the patterns that, although expressed in code, lie somehow above it, shaping the code and expressing a higher abstraction. Recognizing this is the first step toward creating great, stable software, and far too many beginners are too entranced by the hypnotic syntax of their chosen programming language to be aware of the real beauty in programming. It's the difference in creating software that fulfills a purpose and slapping together something that "will do...sometimes".

      By all means, teach yourself to code, but GET A MENTOR to help you see the rest. Join mailing lists, newsgroups, and the like. Talk to the larger community, and don't hold yourself above ALL the academics. There is some real gold out there that is NOT written in a "how to" reference. Don't try to be a REAL programmer, try to write good software.

      --

      What'dya mean there's no BLINK tag!?

  2. Newbies. by n-tropy · · Score: 2, Interesting

    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.

    1. Re:Newbies. by Kingfox · · Score: 2

      I agree, bashing your head against such code improves your coding theory and skills.

      I'd recommend a MOO for someone looking to code. Created by a coder as a coder's playground, everything is 'hackable' in a MOO. You can re-do the verb editor, how it parses input, even alter the server. You can run the same MOO core on a variety of *nix boxes, Windows, etc. It's an easy way to play around and code a bit. For more information about MOO coding, check out the Sourceforge project for it. Most MOOs are social MOOs, and wouldn't hold much of an appeal to the same crowd that would code MMORPGs. However, quite a few MOO's are set up as full-fledged RPG's.

      If you're interested in making your own online RPG and want to learn how to code instead of facing the daunting task of a MMORPG, try starting with Ghostcore. It's an extremely well put together piece of code, and while I may not like the way the combat system's done, on your place you'll be able to pick it apart and play with it as you wish. For an example of it in use, check out GhostWheel. As far as other well done RPG MOO's, check out Sindome (a younger MOO, still in development) or Cybersphere, one of the older MOO's (where I code).

      I know that text-based online gaming is a bit old fashioned and retro to the kind of people the article is talking about, but I think it's an excellent place to hone and refine your coding skills to become part of a real project later on in life. You're not responsible for artwork, animation, or other things. You're working on artificial intelligence, combat systems, translating your concepts into code, and even dealing with customer support and fixing players' problems. It's full of valuable lessons for a real career in such a thing. And no form of M* is better, from a coding point of view, than a MOO. During periods of my time where I couldn't have a programming job, due to also being a full time student or such, I've found that coding up new projects on the MOO kept my skills fresh and kept that mindset easily reachable.

      Also, if you're looking to refine your object oriented theory skills, nothing will cram it down your throat without lube like a MOO. Just as that horrible language Scheme forces you to learn how recursion works, working on a MOO will force you to think in good OOP terms.

  3. Been there, doing that by Outland+Traveller · · Score: 2

    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,

  4. They're everywhere by RQuinn · · Score: 2, Interesting

    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.

  5. Stupid Newbies by alphaseven · · Score: 3, Funny

    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.

  6. Guilty! by rufusdufus · · Score: 3, Interesting

    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!

  7. MMORPG Development Kit by Don't+Exist · · Score: 2, Informative
    I must mad as anything then to start this project.

    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.
  8. Actually, it prepares you for the real world.. by dohnut · · Score: 2

    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.