Helpful Information
 
 
Category: Game Development
Gaining Game Development Skills

I am going to create an MMORPG. Think Runescape, but creative. However, I'm a programming noob.

I took an introductory java class in high school, and I just finished taking an introductory C++ class during my first year in college. I only know basic stuff: manipulating primitives, using loops, creating classes and functions, using pointers. Very, very general stuff. I have slight experience using a GUI with java, but none at all with C++.

So my question is this: what do I need to learn to make a reasonably well-animated 3d massively multiplayer online rpg, and what's the best way to learn it all?

EDIT: I also want it browser-based, real time, no downloading necessary, btw.

Many thanks. :tntworth:

-Silver Shadow

If you want to develope a browser based game, Java would be the way to go. Your game would be loaded via a Java applet. AFAIK, you cannot elimate downloading: the user will always have to have your game on their computer. When Runescape first loads, or when an update is complete, when you go to load the game, it is downloading the Java class files plus other Java things (I know little about how Java works, other than the fact that it uses a VM plus a few other minor details) to a designated location on your computer. This way, the game can load immediately if you have all of the latest files located in that designated location. Clearing your temporary files may remove these Java files, I'm not absolutely sure here.

So anyways, Java would be a great language for game developement. Right out of the box, it is full of thousands (estimation made by me) of libraries, you can essentially develope any application you desire because of the large variety of libraries available to you at the start.

I'll keep this short. Developing a game even remotely comparable to Runescape is just a dream, but don't let that discourage you, you should never give up if it's really what you want to do. My advice to you is that you start studying the Java language, learn all that you can about it, don't give up. Find articles and discussions related to Java topics, you can never know too much. Do anything you can that will help you with learning and understanding Java.

Good luck.

You're pretty damn ambitious...

Yegg had a lot of good points. There will always be some kind of download. Either some kind of client (Java, Flash, ...) or the different states of the game (PHP, ...) which in the long run is less effective. There's another discussion about programming languages for that kind of thing here (http://forums.devshed.com/game-development-141/language-to-program-multiplayer-game-369821.html).

I seriously recommend you start with something a lot smaller than a full fledged mmorpg! Try to make a graphical single player game first. Then gradually take on more difficult things. I garanty you will be surprised how much work it is. I know. I was. But don't stop trying...

Try making a polished tetris clone first. You'll gain some important game making skills with just that. The most being discipline and a sense of reality. I'm completely serious. Make it a learning project, as you try to understand graphics, networking, and good program design.

good advice from everyone so far!

before you start coding and designing your models and what not. make sure you have a very very good plan. have your classes designed and make sure you know how everything is going to interact. If you jsut start coding your going to run into a lot of problems(trust me, i've done it. it wasn't pretty).

Why does everyone want to make MMORPG?
You said that you're programming n00b. Programming noobs don't make MMORPGs. To make MMORPG, you should have team of experts in various fields: security, gfx, sound, scenario writing...
No one can make good 3D MMORPG alone.

You should try solving some problems before making games. Very good site for sharpening your skills is http://www.usd.edu/csci/acm/contest/archive/ .

Also, try to learn another language to extend your views. Maybe python. Or Assembler.

EDIT: There are 11099 problems waiting to be solved at http://acm.uva.es/problemset/
Try it. You should have good understanding of programming logic before you try to make game.

I don't have much experience in any language. I learned C, C#, PHP, HTML, CSS, MySQL and VB at school and i've never read a tutorial after school. I just learned them pretty superficial, nothing too deep, no core studying. However, i think i have been blessed and/or gifted with a powerful mind and my brains are so analytical that, even though i'm not a good programmer, i've been able to create scripts that are, in my opinion, good enough to say i'm a good programmer. Besides, i'm almost ending my MMOSG (nothing too dramatic!; plain text and some images; browser-based; named Star Wars Legacy). If this guy thinks he can make it, let him be. It's not that difficult to make a text-based MMOG as long as you can think correctly and have considerable mindpower. Again: let him be!

But if you think about making a 3D MMORPG (java or not) you should work with somebody else. It's pretty difficult just to make the graphics not to talk about the heavy, deep programming skills needed. In that case, you're crazier than i thought! :chomp:

To make MMORPG, you should have team of experts in various fields: security, gfx, sound, scenario writing...
No one can make good 3D MMORPG alone.

...

Also, try to learn another language to extend your views. Maybe python. Or Assembler.

I'm sure someone can make a good 3d MMORPG alone with enough time and dedication and skill. Take a look at DeviousMUD that Andrew Gower started developement on in 1998. He was working alone and could have gotten a lot more down that way with years of work. However, a year later he got helped from Paul, his brother. They both worked together, and improved DeviousMUD into what is today known as Runescape Classic, which they released 2 years later (2001). So, two people alone wrote the first release of Runescape Classic. Andrew could have done it alone, although it would have taken much longer without the help from Paul.

Explain to me, as well as him, how learning ASM will help "extend his views".

This is something you should take a look at and read some tutorials! There is everything essential things a beginner needs to know and it's really for everyone, really good place to visit for Game Developers!

http://www.gamedev.net/

Tutorials etc.
http://www.gamedev.net/reference/

It would be hard to make 'good' 3D MMORPG alone. You need to be jack of all trades. You do gfx, audio, programming, and everything else alone. It would took someone years to do it alone. And it would probably be very buggy. He is doing various things, graphics, sound, programming, etc., and he can't make everything perfect.


Explain to me, as well as him, how learning ASM will help "extend his views".
?! You know what assembly is, right?!
He would understand how memory works, how numbers are stored in memory/other_storage_device, how things are displayed on screen, etc.
He will think different, in more complicated way, when he learns assembly. When they are creating a variable, many beginner programmers think about that as 'storing a value somewhere in memory'. But where, and what exactly memory is? How does it work at its lowest level? If you learn assembly, you also learn all this stuff (not always; only if you're reading good text on assembly, and you REALLY want to learn ASM).
How would this help him?
Optimization. You need to optimize game to run fastest it can, so that more people can run the game, and that people can play it over the net.
Assembly is also often used in network programming; especially in MMORPGS.
There are to much pros in assembler.
BTW, I need reinforcements. Where are all those mad assembly maniacs? :D

To make MMORPG, you should have team of experts in various fields: security, gfx, sound, scenario writing...
I was saying this for MMORPGs that are looking for succes in game dev industry. For commercial MMORPGs. When i said that, i had AnarchyOnLine, GuildWars, and WOW in my mind.
And before someone attacks me, games don't need to have hefty budget to succeed. Runescape is not bad game, IMHO.

If you have extremely good idea, you can make average MMORPG alone. It's fun to play, but it lacks of many things. But if you form a game developing team, that could be a hit game. You would just need to find some publisher, and get some money. But it's not that easy; you would need to provide user support, make patches, additions to keep existing players, and get new.

Don't know how many of you agree with me, but that's my view on this.
I just hate to see someone say that they learned basics of some language, and they wanna make game. Well, go ahead if you want. You don't know what are you getting yourself into. It's much better to go slowly. You learned basics; now you understand fundamentals of language. You should now try solving some programming problems, make some applications for practice, learn GUI programming, and graphics programming. Then you're ready to enter game programming world.
You learned a lot, but it's still not over. What do you know about game/gfx/... engine design? 'bout that main parts of the game?

Oblivion King: Ultimately, I agree with you. A few things you said I wasn't too crazy about but they are not important enough to discuss.

One thing though is, the ASM part. I do not think that you really need to *learn* assembly to "extend your views". He can learn most of that to a certain extent, without needing to learn assembly, or he could simply learn the basics of assembly. I have a basic understanding of those areas and know very little assembly (I plan to fully learn assembly in the near future).

I am sure he doesn't really intend on developing a commercial MMORPG, or in any time soon for that matter. So if that is the case, then he really doesn't need to worry about many of the issues you mentioned, such as learning assembly and audio.

I think it would be a nice idea to start out with a basic 2d MMORPG similar to those Playerworlds type games, I don't know much about those games, but they would be a better idea for starting on than something even as "advanced" (compared to a Playerworlds type game) as Gower's DeviousMUD.

I didn't say that he needs learn assembly. It was just an advice; he should learn assembly if he wants understand how his programs work at lowest level, and if he wants to make a (bigger) commercial game.

You said that he doesn't need to bother with learning audio. Wrong. Who wants to play game without sound?
But for non-commercial game, basics of audio are enough. He should know how to initialize audio devices, etc... That's programming part. If he can't find sounds he want on the net, and doesn't wanna pay for them, he should also be able to make his own.



I think it would be a nice idea to start out with a basic 2d MMORPG
Now i agree with you. But before that, it would be good to read some book(s) about technologies he will be using in his game. For example books about DX or OpenGL.

And one advice Silver Shadow: if you get good idea for game, something really original, save it for later when you have more experience in game programming. Or better, form a team with other (experienced) programmers/artists/...

You said that he doesn't need to bother with learning audio. Wrong. Who wants to play game without sound?

Just thought I'd point this out. It is stricly opinion whether or not people would like to play a game without sound. I prefer no sound whatsoever. I remember back in the day when I played Runescape in 2001, I loved that game and I still do (Classic atleast). I played it without sound for years and loved it that way. You can't just say that no one would want to play a game without sound because it isn't true.

Ok, i agree. I'm also playing Dark Throne. It has no sound and graphics, but it's very fun 'n' addictive.
I wanted to say that game gets whole new dimension with sound. Especially if it's 3D game with 3D sound. Sound effects and BG music can create atmosphere and feeling that couldn't be achieved otherwise.
And sound programming is easy, whatever you use; DirectSound, OpenAL or some other lib.










privacy (GDPR)