How to create a MMORPG?

Question is : how to make a MMO? or how to make a successful MMO?

Because as I can see, all the kids coming here launching themselves in a MMO project aim at a World of Warcraft scale…

Everybody can make a MMO, like a simple Massively Multiplayer Online chatroom (lol). But kids always want to replicate something as big as the biggest thing on earth.
Unfortunately, MMO is a long term gaming model, so you need tons of regular content to make it roll.
Cherry on the cake : the MMO players want dedication to the game, long term investment and neverending endgame. Which means they will mostly play one MMO.

So in short, be the best, or die like the rest.

Imho the problem you’re talking about is not knowing how to make a MMO, but how big.
And as the “MASSIVELY” in the name massively points at how big massively is, it is fair to say : the best thing we could say to kids is to stop using the term MMO until they got a 30 men team, 5 million of budget and a 3 years dev plan.

:wink:

All fair points. I suppose if you drop the first M from the acronym then it falls into what can be done by indies. In fact it sounds sooo much more doable. “Multiplayer Online RPG”. Create a full blown RPG but on a small scale…

Hell that is something I would be interested in doing. So let us focus on that then. Creating a non-first-M MORPG. What is required to set up that first MMO Chatroom? Surely that can then be expanded into a MORPG?

Making my first RPG a FinalFantasy killer or my first online game a WoW killer or a simple platformer that will make Mario old news… I think it is safe to say that noobs dream of it and some actually believe it is possible but for the most part I think noobs have a certain (unbeatable) confidence, coupled with delusions of grandeur, mixed together with some feelings of doubt and lingering thoughts of “accepting the inevitable”.

So they want to want to kick Mario out of the brains of everyone who has ever seen him and come on here asking “How do I take the platformer example and make it do this?” and they get help. Then they come and ask “I want to create a MMORPG that will kill FF off for good” and everyone here seems to go: “To hell with your aspirations”

I say, show them the way, let them try, let them see how far they get. Hell, even if they get 3% done before they quit, they have learnt about programming during that time and are now more skilled doing whatever they decide to do next… Instead of helping them learn Unity when they want to do one genre and simply shoot them down as soon as they mention another genre, just show them the way once and for all…

I asked that this thread become a list of requirements, not a discussion but this has clearly become a thread for people’s experience and thoughts. Can you imagine if this thread started out with me replacing my introduction with a 5 page long list of “this is what you will need”? Now Unity makes it a sticky and everyone who comes onto the forum sees this thread and quits before they even start or ask a single person… They didn’t waste their time and none of us got upset about yet another thread about a noob asking for help to do the impossible.

Let us get together an extensive list of requirements, put it up for the world to see and let the chips fall where they may… that was the purpose of this thread…

If I were to ask you how to create a successful platformer that will kick Mario into kingdom come, could you give me an answer? The question is “How to create a MMO”. Even Mario started as a cube running on a rectangle… Let them start off with a chatroom and build the Final Fantasy killer… or give up… their choice, their problem… but HOW to do so… that is the burning question… What is required to begin ? THAT is the main question…

N0mad:

Not to burst your bubble on “massive” games:
As of 2006, Dragon Realms was 10 years old

Thats right, 1996 the game was released and is still going strong. Creator started out, if I recall, as a single person on a mission to make a cool game.

There is more history about the creators of that company, and s child prodigy but based on your post, you have no faith or belief that some kid can come along and make the next best thing unless they have tons of money and tons of people.

I do not recall the full history that was told to me about the owners, or the first game that went live, but the fact is, that company is now making money hand over fist, has a strong list of products and games, and it all started out because 1 person had the idea, made a game, and went massive, everyone else came later.

@n0mad

I think the best is break these question into smaller ones, and assign some priorities to all formulated questions. The first question we need to break into smaller question is “how to make a MMO”, so, we can break into something like:

How to create an UDP chat server/client?
How to create a login system to that UDP chat client?
How to create commands based in chat text?
How to create commands based in a byte array?
How to convert a byte array into variables?
How to create a character in the server and control him in the client using UDP?
How to create a MUD?

And so on… After all question about creating just a simple MMO was answered, we can start the list about “How to create a successful MMO”.

Btw, Could somebody check what I’m doing, here’s the svn: http://unitymud.googlecode.com/svn/trunk/ , here’s a youtube video: http://www.youtube.com/watch?v=_Zz4Tq443tU

My post was not meaning that I have no faith until reaching a 30 devs studios, but that doing something “massive” requires massive resources :smile:
And that it’s selfish for one kid to consider himself being massive, indeed.

@Zumwalt : your example wasn’t massive at first, but became :wink:
productions resources scaled gradually, which is not the same as the "I want to make a MMO now ! " we’re talking about.

Well sorry I don’t want to hijack the thread as MrDude said, so I won’t go further :slight_smile:

Anyway only one stuff can be massive.

The Junglist !

Ohhhhh… seems my words don’t convey my intentions clear enough and I am beginning to upset some people… Not intended. Nomad: Anyone who posts images of da G has GOTs to be wicked, ahhhhaijt? :stuck_out_tongue:

But to get back on topic again:
TimViana has started pointing this thread in the direction I intended it to go with his last post. (Although I wish he would stop with the MUD already cause every time I see that word I think of the old text based adventures where they explain the scene to you in words and wait for you to type in a command before explaining to you where you are… uggggh! Can you just imagine using Unity to write a text based adventure with 0 graphics in 2D or 3D? So yeah, i really wish he would write MUD in a way that I can’t see it any more :stuck_out_tongue: )

(p.s. Yes, I have read and understand that his is a 2D game, it’s just a personal connectation with the word MUD… It’s just me :stuck_out_tongue: )

If those kinds of answers could be posted here and more be added on to then I think this thread is going to become a major resource.

Okay, so I think you guys understand what this thread is about. I am not going to jump in after every post and correct you for not staying on topic. I started this thread so people who know can help those who want to learn. Since I only know what I have already said in my first post, I am going to end my contributions here also as anything else I add will be nothing more than chatter distracting from the purpose of this thread.

Ta :slight_smile:

All MMO’s are nothing more than a MUD with a graphic interface. They even include a text parser!

If you want to learn how to implement networking for your MMO, how to develop data structures for a spell system, equipment handling, etc…then there exists no better resource or reference than a MUD.

p.s. They’re especially handy when learning as they compile clean in osX when using the bsd makefile.

I’m just waiting for ‘File/New Project/MMO…’. It should be in the free version though, then it would be a great advertisement for Pro.

This is the point, the best way to start learning how to create a MORPG, Multyplayer Online RPG, is learn a little about MUDs, you will not loose anything if you try understand how MUDs works before trying to create your MORPG, let’s assume we are trying make some tinny MMORPG, so we can call this MORPG. We will not create a text MUD with Unity, of course not, we will create a kind of graphical MUD, so we can see the software architecture of a MUD to help us solve the question, “How to create a MMO?”.

This is a feature request for Unity 4.0, let’s wait David Helgason do some magic about this.

http://www.escapistmagazine.com/videos/view/extra-credits/1906-The-Future-of-MMOs

This video is about the future of MMO’s and about how they are designed and made today. Interesting stuff and very important information to any MMORPG or MMO game designer.

Hi

I watched this video, it basically says that the future of MMOs is the exploration of other genres, like a MMO FPS, MMO puzzle, and so on, also it talks about small MMORPGs as a possible solution to compete with bigger ones, and how is difficult to compete with the big developers in the MMORPG biz.

Good synopses however it also covers about why WoW is popular and how difficult it is to grab part of its user base. Also, it explains why it is so difficult to get into the MMO biz as an indie.

Indeed, there’s also good comments in that video about MMOs.

Question is, are any of those wanting to make the next WoW going to take any of the points made in that video seriously? Or just dismiss it as “well that doesn’t include us cause we’re srs bsns”?

I just want to comment that I think this thread is not for whose that wants to create the next WoW, is just for the people that wants to learn the basics about online multiplayer game development.

The starting point for any mmorpg is to start.
Doesnt madder what or where.
It is true most people come on the forums and say where do I start to make an mmorpg or try to build a team.
We tell them either give up or “Start Small”
Really what we mean by start small I think is to just start, start with something very simple like getting your camera to work. Then move on from there.
Most people wont even start if you tell them start with something as simple as that. They may say well lets start with the multiplayer part of mmorpg, the “hardest part”. Well when they have no experience they may as well give up. They dont want to take the time to build something small and learn slowly.
Really you can start anywhere, the hardest part is getting out the door and just starting.
What I think is most parts of the mmorpg are easy but when it comes to online/multiplayer/database it becomes hard. There is no full how to start the multiplayer part of mmorpgs and thats what most people need, the people who are going to stick with the project already have a clear vision and something to show and have made a few games or something before but get stuck on mmo.
All the brains on the forum need to not just say ok start with a database and your networking in a generalized way, what you need to do for pretty much everyone is say start anywhere but when it comes to networking do this and exactly this.
Now I realize that most mmorpg games are different and require many different things however if you “the brains of the forum” make a starting list and starting tutorial that is extremely well documented for the mmo part this would be the ultimate.
I guess what I am trying to say through all this rambling is this: Doesnt madder where you start, just start, however if you start with networking your shit out of luck. That is until one of the “brains of the forums” makes a complete how to do networking for mmorpg and either sells or gives for free. The rest of mmorpg is easy. You dont need to know much to pickup blender and start modelling, you dont need much to start with unity and drag and drop a camera.
You do need a crap load of knowledge to start with networking.

Dang I am really terrible at trying to convey what I want to say.

Anyway I would pay for a how to network/database/all that stuff for mmorpg and im pretty sure a ton more of people would because that is the only true hard part or the part that takes the most knowledge to start.

The rest you can start without needing a great deal of knowledge.

Gosh I really hope you guys read and understand what I am trying to say.

Having a full list of where to start to make an mmorpg is pointless. If you cant make a simple single player game then its pointless to try an mmorpg.
I think most people if they have not already done so is to start by making a single player game. Then once you have something that is really decent and you want to further you game into an mmorpg. You then must seek advise on how to make an mmorpg and thus how to start in the networking side of making an mmorpg.

I was talking about the video, as I kinda hinted at when I said video, not thread. :stuck_out_tongue:

But the same applies to this and other threads. Go up to any random person and ask them what an MMORPG is, and the majority will say World of Warcraft. Because, as the video points out, it’s become so darn successful that others don’t get a look in, and as far as most people are concerned, MMORPG = WoW. Even the mighty Everquest or Ultima rarely get mentions anymore, and the previously mentioned MUD’s are scoffed at and ignored due to them being text based.

I would say the first step to making an MMO would be to snap the person out of the mentality that ALL MMO’s have to be like WoW.

It all comes down to three things

  1. They think it’s easy money

  2. Playing God

  3. Think they can do better

  4. They think making an MMO will make them megarich.

  5. People seem to have the need to “be the leader”, look at how many extra pointless IRC channels crop up because everyone wants to run it their way. Or forums. You’ll always find lots of little forums about the same subject, they rarely last long, or contain much of anything. You’ll see tons with lots of admins and moderators, but no content. Same goes for many online game servers, lots of private servers for WoW too, lots and lots of them, so many of them empty except for the leader.

The one thing most of them have in common, is none of them know what to do once they are the leader.

  1. So many clones, copies, remakes and attempts. Where individuals think they can do better than the pros at their own game. Case in point, tell someone wanting to make an MMO to do one like Runescape and they’ll laugh at you, call it childish and crappy looking, because they think they can do better. Five minutes later they’ll be asking how to do the most basic things.

Notice the MMO’s that have survived in some way, were never intended to be what they became. They either began life back when nobody really knew what an MMO was, or just got lucky by being there at the right time. Or they started small and just “happened” over time.

Notice those that didn’t survive, were the ones going outright from the start to be “an awesome MMO that would take the world by storm”. These days everyone is making an MMO, the market is already oversaturated and there’s always more on the way. Will any of those last? Probably not.

The video made a good point about how people will often just play one MMO and invest their time in that. To drag someone away from something they practically live and breath, and have paid a lot of money on, is difficult at best. These things are addictive enough to destroy relationships, even provoke people into killing others. So realistically, what are the chances of an amateur MMO getting noticed in a sea of far higher quality MMO’s, when even those will last a couple of years tops before being shut down.

Some code snippets about networking that I think would be useful for some client/server testing.

How I would connect to a server using UDP protocol (C#):

...
public string IP = "127.0.0.1";
public int port = 4445;
Socket mListener;
...
// Our socket will use UDP protocol
mListener = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);

// Server IPEndPoint
IPEndPoint end = new IPEndPoint(IPAddress.Parse(IP), port);

// we need to set a timeout when using function receive
mListener.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, 2000);

// connects to the server
mListener.Connect (end);

How we send/receive messages to/from server:

...
// an array of char that will be our received bytes
byte[] receiveBytes;
...

// I use memory stream to create an array of byte that will be sent to the server
// This class has Write method that is useful when dealing with byte arrays
// All this code can be put inside a loop that will keep sending/receiving data to/from the server.

MemoryStream stream = new MemoryStream ();
using (BinaryWriter writer = new BinaryWriter (stream)) {
            writer.Write ((byte)0);
            // nameB is an array of bytes 
            writer.Write ((byte)nameB.Length);
            writer.Write (nameB);
            // use writer.Write to put more bytes in our byte array that we will send to the server
            ...

}

// the byte array we will be sent, we convert our MemoryStream to byte aray
byte[] bytesB = stream.ToArray ();

// sends the byte array
mListener.Send (bytesB);

So we receive the server response, it timeouts in 2 seconds
receiveBytes = new byte[1024];
int flags=mListener.Receive(receiveBytes);
// Here you will start parsing receiveBytes and updated our world with this data

Here is some code snippets to use in a Java server:

// We will use UDP in our server, so we use DatagramSocket
protected DatagramSocket socket = null;
// The max size of a received package
private static final int RECEIVE_SIZE = 517;

...
//Creates the socket
socket = new DatagramSocket(4445);
socket.setReceiveBufferSize(RECEIVE_SIZE);

...
// This can be put inside a loop
byte[] buf = new byte[256];
// receive request
DatagramPacket packet = new DatagramPacket(buf, buf.length);
socket.receive(packet);
// variable packet has packet data, packet.getData(), and some more others information like packet.getAddress()
...
// Do something with the received packet
...
// sends a response to the client
// response is a byte array
InetAddress address = packet.getAddress();
int port = packet.getPort();
packet = new DatagramPacket(response.array(), response.array().length, address, port);

socket.send(packet);

Great post, Oblivionfeet.

But what if…
Back to the OP point, and combining all the other points, how about a MUD converted MMORPG that enables players to either be a player or a GM, ok, how cool is that? A channeled hierarchy design that takes the concepts of a MUD architecture for ease of build and maintainability, merged into a game where it uses a master server for people to join existing games in progress, OR create their own world!

Where on earth would a crazy idea like this come from anyway? Back in the day I was a Half-Life Counterstrike geek, until people started allowing BOT on their game servers, then later patches were put into place to kill those code segments, BUT there was always “official” game servers going along with player made game servers… where the rules of reality mix with the rules of some psycho kid and a computer in a closet.

So wait a second, isn’t or wasn’t counter strike an FPS MMO?? your sure shooting it was, it was massive, it had thousands of players playing it daily, just not all on the same box’s, and you know what, it was successful do to the fact that anyone could run a server and run their own maps / worlds.

HOHO says the neighbor, idea has a light bulb on it! Unity, native networking, max 50 players per game, servers have their own player stores and wala, instant success. I bet after this post in the next 365 days, a game like this will exist.