• Advertisement
Sign in to follow this  

where to start in a MMORPG

This topic is 4255 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi, I think i posted 5 times talking about this topic before but i'll do it again because nobody gave me simple (or concrete) answers. I have a big amount of experience about role-playing games (Dungeons and dragons, cthulhu, etc.) and a little of Visual Basic .NET. So i want to create a simple MMORPG, a 3d one because its easier to create new animations or change the textures than doing it with 2d graphics. I was thinking about a game similar to Tibia (www.tibia.com) but 3d. Now, i don't know where to start. I think the first think i should do is: To create the rules and the economy Create a renderer Create an engine Create the meshes and texture Test it, and if it works start to build a webpage, the maps and the database. If im wrong, please tell me, Bye, Federico.

Share this post


Link to post
Share on other sites
Advertisement
While not entirely wrong, you're perhaps missing a key tether to reality. Even the simpilest online RPG is a fairly mammoth undertaking for someone with far more experience, skill, and knowledge than 'little of Visual Basic .NET'. There are no simple [rudeless] answers to your question.

And the common advice: "If you don't know where to start, what makes you think you'll know how to get where you're going?" also holds.

Share this post


Link to post
Share on other sites
You can take a look at open source projects like Eternal Lands.
It is written in C though.

Maybe somebody knows of other open source projects worth checking out?

But yes, I suggest start with a multiplayer tetris clone.

Share this post


Link to post
Share on other sites
Think small, brainstorm, prototype and experiment. Break your project down into major component pieces (ie, Renderer, Game Engine, Network Client, Network Server), and then further break down each component piece into smaller pieces - and then prioritize each piece. It is common to write an entire prototype and then start over from scratch using what you learned.

For an MMORPG, here as some starting points (off the top of my head, I am by no means an MMORPG developer):

Renderer
--Scene
----Camera
----Scene Graph
------Models, Geometry, Effects, etc.
--User Interface
----UI Components

Game Engine
--Resources
----Models, Meshes, Textures/Images, Effects, Sounds, Music, etc.
--Scripting
--Gameplay

Networking
--Client
--Server
--Database

Believe it or not, game rules and economy (ie, "gameplay"), are probably the least important things from a development point-of-view (however, it is likely the most important thing from a production point-of-view). It is tempting, but try not to look at your project from a gamer's perspective. Think development, not production (although the two are closely related), and you should be fine.

Share this post


Link to post
Share on other sites
The Ogre3D library has pretty much all the Render and Game Engine stuff from swordfish's list.
If you are more into making the game than learning the nuts and bolts from scratch, which is a daunting task, you should check it out.

Its not like it does the job for you either, its just a good C++ API for the graphics and scenery. You still have to do the game logic, mechanics, networking, sound, input and what not yourself.
The tutorials there will get you started

Share this post


Link to post
Share on other sites
If you don't have much programming experience, the best place to start is a simple single player RPG - perhaps a roguelike. Even a simple project like this can be difficult to make, but would be a great learning experience.

Once you're done with that, try making a graphical (either 2D or 3D) version. Also make some simple multiplayer networked games. Once you've done this, combine all the knowledge you've acquired - then ask yourself if you think making a simple MMORPG is a feasible goal - if so, go for it.

Share this post


Link to post
Share on other sites
"A little knowledge" of Visual Basic .NET very likely isn't really enough to get started on a simple MMO right away. While it may seem to be a bit of a disappointment and not really what you want to do, I'm afraid I agree with the other posters who have suggested trying something simpler first as a learning experience. That being said, you can start out with your MMO project and succeed, it'll just likely be a little harder as you'll have to do all your learning with this project.

An MMO is a particularly complex example of a game, and even a simple game often isn't the easiest thing to program, especially if you're still learning to program.

So, what do I think you should do? I see two potential paths, although as mentioned I'd personally recommend some more learning with additional smaller projects first:

1. Start with a MUD:
Work towards creating a text-based MUD (Google if you don't know the term). The idea is to create both a server and a client and have a working game where players can walk around, chat, fight, and perhaps do other things, but all with a simple text-based interface. You can then design a new graphical client which connects to this server and displays that data to the client graphically rather than through text.

2. Start with a single-player RPG:
Work towards creating a fairly simple single-player RPG. The idea is to create a playable game with all the basic functionality you'll require of your client, but you need not worry too much about world creation and the actual gameplay at this stage. You would then learn about networking, design a server, re-design your game to connect to that server, and then move any functionality that should be server side over and get things working again. At this point you could then flesh out the actual gameplay with your rules and whatnot.


Either of those options is quite difficult and entails quite a lot of work, but are viable paths towards a working MMO. As already mentioned by another poster, rules and economy, etc won't actually be important till quite some way through the process, although you could of course design them earlier on anyway.

You'll need to learn your chosen language quite well, learn about networking, database usage to store information, and learn a graphics API. You could also look into using existing engines and/or libraries to provide some of the functionality for you.

Hope that's of some help.

Share this post


Link to post
Share on other sites
If you decide to make some other game before making an MMO (a wise choice, IMHO), then one of the most valuable lessons that you will learn from that game is how incredibly difficult making (large) games can be, especially for a single-person team.

Share this post


Link to post
Share on other sites
Well, first of all, thanks for the answers. I have to say that i don't know if 'a little' is an exageration, I have 2 years and a half with VB .Net.

I like the idea of swordfish of dividing the development in parts and then start to make each piece separately. I think that Kazgoroth was trying to say the same than swordfish, because the MUD would be the network stuff and the single player RPG would be the graphical stuff. If i mix that i have my MMO completed.

Well, i already bought the 3d studio max 7 and i downloaded the DirectX 9 SDK. I also made my own renderer (which is not difficult to develop), and i can load X files. So im not thaaat noob. But i understand that a MMO is a very complicated game (specially if i want to do it alone).

Thanks again!
Federico

Share this post


Link to post
Share on other sites
Well, whilst VB.Net is much better than previous versions of VB, and you can easily make a good game with it, it does sheild you from some of the deeper concepts of programming. Some may argue that this is what a good language does, however, many aspects of game/graphics (and physics/sound/networking... especially networking) programming are going to require intricate knowledge of those topics. To help, try also studying an arbitrarily chosen "lower level" language alongside. I went from VB to C++, and I found most of the concepts transferrable (especially since you don't need to learn control structures and the basics like that). So peruse a C++ book whilst you're making your game in VB, and hopefully it'll give you some good insights into why the APIs you're using are designed the way they are (although I understand DX is very nicely exposed to VB.Net anyway).

Share this post


Link to post
Share on other sites
Well _goat, i think that C++ is much more complicated than Visual Basic .NET. I already tried to pass from VB to C++ in the past, but is complicated when you get the habit (in VB). I understand that its performance is really better (specially for graphic rendering), but its too difficult.

Well, thanks equally.
Federico.

Share this post


Link to post
Share on other sites
I would recommend getting a pen and paper copy of GURPS, HERO, or D&D and play a few games with friends in order to really get a feel for what a RPG really is. Just an observation (and yeah, opinion), but MMORPGs are not really role playing games.

Share this post


Link to post
Share on other sites
I would start with a more efficient and capable programming language.

Share this post


Link to post
Share on other sites
I agree that while you may get started just fine using VB.net, another language like C,C++, or (I believe)C# will allow you to do some things much easier as well as faster. While you might not think it matters, if the code runs slower with VB.net than it could written in C++, that means you have to have fewer things on screen with lower resolution textures and less other things going on (like physics, AI, and networking). The little speed boosts from C/C++ really add up between a renderer, AI, networking, and physics.

Sure, learning another language can be tricky, but a well rounded programmer should get his/her share of languages. I'm only 19, started out with Chipmunk Basic about 7 years ago. Then I learned C/C++, Objective-C, a bit of Lua, javascript, PHP, a tiny amount of Java, an even smaller amount of Visual Basic (truly disgusting language in my opinion), and am still picking things up here and there. If you work hard, it won't take long before your second language makes as much sense as your first.

Good luck with whichever path you take.

Share this post


Link to post
Share on other sites
I hate to sound cruel but the fact is, if you have to ask where to start when making an MMOG, you're simply not ready to make an MMOG.

As you get more experience in game development you'll begin to know what's involved in making an MMOG and understand the processes required including where to begin!

Share this post


Link to post
Share on other sites
Quote:
Original post by Clueless
You can take a look at open source projects like Eternal Lands.
It is written in C though.


That's actually quite a good example of non-programming topics which you'll also face if you're the only one on a team. As I know, in the current operative client (not the RC released today) there are 94546 lines of XML, in addition to the binary-only maps (which are also a lot of work). If you can manage to get the development off the ground yourself, you'll also have to find a community, or developers to help you out in order to proceed.

Share this post


Link to post
Share on other sites
Quote:
Original post by Federico
Well, first of all, thanks for the answers. I have to say that i don't know if 'a little' is an exageration, I have 2 years and a half with VB .Net.


I have ten years in C++, plus experience in Java, Python, and C#, have made five games from scratch plus a number of prototypes, on both PCs and consoles.

I would never be crazy enough with my "little" experience to do an MMO without a strong team behind me.

Remove one M. Make an MO. Fuck it, make an M rated MO, then you'll at least get the other M somewhere. The suggestion above to make online Tetris is not a bad one, it'll give you a start. Try to write your networking library so that it is reuseable, so that you can then take it and make a MORPG (missing an M, think Diablo). Then you could make a SMMORPG (slightly M) and grow that into an RMMORPG (realistically M). If you go for a straight up MMO without the proper backing, you will die a horrible death with nasty pointy teeth. EYES LIKE FIRE!

Share this post


Link to post
Share on other sites
the only problem i see in a mmo in vb.net is the diffuculty of processing untyped data streams,
aslo id like to note making a 2d game is much easyer than a 3d one even with a 3d api like ogre but if you want to use 3d art prerederd 3d sprites in a 2d game look nice and make having many view angles easy, and IMHO
for a indie devloper trying to make a mmorpg worrying about code speed is pointless

Share this post


Link to post
Share on other sites
Quote:
Original post by TheMeatMan
I would recommend getting a pen and paper copy of GURPS, HERO, or D&D and play a few games with friends in order to really get a feel for what a RPG really is. Just an observation (and yeah, opinion), but MMORPGs are not really role playing games.


Didn't the OP just say that he has a big amount of experience with PNPRPGs?

I'm going to side with the people recommending to make a few simpler games (not trivial, just simpler) than an MMOG. It seems to me that the closer you are to finishing a project, the more rapidly you develop your skills. Then you have something of a post programming phase where you might have to look at stuff like balancing, bundling for release and how to make the game available to people. Those are things that you might not think of while developing but encounter naturally once the programming is done. Setting out on the big project at once will slowly take you through all of the phases and you will eventually be familiar with them all. Making several smaller games will do the same but at a faster pace and will much more let you develop your skill in the very cycle of game development. Once you're familiar with the sequence of phases that make up the development of a game you will find it much much easier to plan and develop the big project and you can divert you attention to actual game features, i.e. the fun stuff. [grin]

Good luck and happy coding.

Share this post


Link to post
Share on other sites
Quote:
Original post by JRavey
I would start with a more efficient and capable programming language.


VB.Net is perfectly capable of creating an mmorpg. I would definitely AVOID using C or C++ unless you plan to use libraries which cannot be used from a .NET language. I prefer the syntax of C# over VB myself. Though there are differences (many of which I'm not aware of) the decision between VB.Net and C# is moot. They both have access to the full framework, both compile down to MSIL, and typically offer all of the same features with a different syntax. In my opinion C# and .Net 2.0 are the way to go.

Oh, and I would definitely recommend writing a simple single-player RPG first, just as Kaz said. You'll be able to borrow a lot from it when you design your multiplayer game, and MAYBE even build directly from it. I doubt you'll want to though, as you'll see many areas for improvement and you probably will have not designed the single player game's code in a very multiplayer-friendly way.

Share this post


Link to post
Share on other sites
I agree, the best advice you could probably get is to start with a smaller project. However, don't be afraid of failure - it is often the best learning experience. If you have your heart set on developing an MMORPG in VB.net, then by all means do it. Just know what you're getting yourself into. [Edit] You can't really expect to make the next AAA MMORPG title, but I don't see why you couldn't at least make a fun little demo title, although I can't say I do/don't recommend VB.Net for the task. To tell you the truth, at your level, VB.Net might be better than C++. Just keep in mind also, that most AAA titles (and even A, and AA ones) are written in C++ (don't quote me on this).

Share this post


Link to post
Share on other sites
Quote:
Original post by swordfish
Just keep in mind also, that most AAA titles (and even A, and AA ones) are written in C++ (don't quote me on this).


Only because .NET is relatively new, Java has the stigma (I don't think it holds true anymore) of being slow, and there are mounds of C++ and C code which has already been written. It takes a lot of time to develop a AAA title. .NET probably wasn't a valid option at the time most currently-being-released AAA titles were beginning to be developed.

Share this post


Link to post
Share on other sites
if you want to do a MMO, look into network programing, and servers.

The client for a MMO is the easy part, getting a useable server that lets more than a handful of players on at a time is hard.

Share this post


Link to post
Share on other sites
Quote:
unless you plan to use libraries which cannot be used from a .NET language


These hardly exist, if you know how you make a .Net wrapper ;) Using Newton Physics in my C# app with a CLI wrapper I made in over the course of a couple of days.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement