How do you make a home-made MMORPG?

Started by
12 comments, last by Spodi 16 years, 4 months ago
I read a book called "Developing Online Games: An Insiders Guide", and if I would be able to recall how to do it, I would have made a great online game by now. I honestly wish to make an online game (Role-Playing-Game-style) that is able to bend the expectations of an online game (2D, anyone?), but the only software that I found wouldn't work for more than a couple days (used a TCP/IP connection to get to the server on my computer), and if I had access to others, I can't figure out for the life of me how to set up either MS SQL, Oracle, MySQL or any of the other modern ones. I have a version of MySQL that is less than the latest version by this time, so that I could try writing websites in PHP, but I don't know what to do for the engines that require the latest stuff. Is anyone willing to give me a thorough run-down of what I need to know? I have nowhere else to turn to (at the moment) for how to do this. Oh, by the way, the reason why the latest versions of SQL won't work is due to my stupid firewall. How do I fix up the firewall? Thank you very much!!
Most likely the n00biest programmer out there. I need a website soon so that I can share my projects with you (when done with my projects).
Advertisement
Do yourself a favor and skip the MMORPG, at least for now. Keep working on your web development skills and try a few less ambitious projects before diving into a major commitment.

About the "modern engines": if you're on Windows, try these. On linux, try these. On Mac, try these.

Once you've got it all running, get started with some tutorials, like these.

Quote:Original post by thechocobohunter Oh, by the way, the reason why the latest versions of SQL won't work is due to my stupid firewall. How do I fix up the firewall?

If you're running MySQL on your local machine (it sounds like you are), you shouldn't have to deal with your firewall. We need more information about the problem before we can help you.
I think that you should start out with some smalltime multi user dungeons before the mmo stage lol. but thats juz my opinion, im still a noob programmer myself =]

<br><br><!–EDIT–><span class=editedby><!–/EDIT–>[Edited by - jpetrie on December 4, 2007 2:09:37 PM]<!–EDIT–></span><!–/EDIT–>

Check out my BASIC site and all of its games. www.geekbasic.com

MySQL is do not suitable MMORPG,try SQL Server,more easily learn,more user-friendly.If you are on Linux,forget what I said.
For back-end databases, I recommend postgreSQL. It's very easy to use. I recommend not hosting the SQL stuff. The server is fine, but it's advantageous to have someone else host your db and web stuff. Not sure why but I tend to access PHP files and use those to access server data quickly (for TCP). For instance, you can easily set up the whole client login/news/events stuff via PHP files.

You can also host the server list on them. I have PHP files I made up quickly (and I figure you yourself could write them). One registers a server, one pings/updates a server, and the other is the server list. Servers register and are added to the db with their IP. They are given a timeout of x seconds and they just ping every x*3/4 seconds. The server list just returns all the servers currenty running. One can easily set up a list of dedicated servers to show the user which ones or alive or down at the moment.

All character login/character register can be handled via PHP on the separate server. If they login after creating a character then the php file returns true or false. True meaning login succeeded and false if it failed. An explanation is normally accompanied. If it all works out and they get "true" then they proceed to connect to an IP from the server list/or whatever server they created the character on. The server sees the connection and queries the database to see if they indeed logged in then loads their data from the database into RAM. Simple and effective. It takes trivial tasks off of the server and lets a 3rd party DB handle them.

Just one way to do it though, having the server manage it all is another choice. I myself like to keep login and DB on another server apart from the zone servers. If a zone server or the server goes down most 3rd party host have 99% or higher uptime so your players will just see that their favorite server is down instead of "could not connect to server". This also allows you to post messages in the DB that the client reads at start up. All of this is to make it more convenient for the player. Plus PHP is pretty much the easiest programming language and is very flexible and well suited for this kind of stuff.
Quote:MySQL is do not suitable MMORPG


You mean, apart from all the MMORPGs that are hosted on MySQL? Like EVE online, There.com, PimpMyRide.com and others?

MySQL is perfectly fine for MMORPG use. I don't understand why you would say anything else.

I also like PostgreSQL; that's what I use for personal stuff, but I've never used it in anger, so I don't know how it performs in production use.
enum Bool { True, False, FileNotFound };
Quote:Original post by hplus0603
Quote:MySQL is do not suitable MMORPG


You mean, apart from all the MMORPGs that are hosted on MySQL? Like EVE online, There.com, PimpMyRide.com and others?

MySQL is perfectly fine for MMORPG use. I don't understand why you would say anything else.

I also like PostgreSQL; that's what I use for personal stuff, but I've never used it in anger, so I don't know how it performs in production use.


I think he might have meant that MyISAM (the default storage engine used by MySQL is unsuitable for quite alot of things required by an mmorpg (since it doesn't support transactions) (MyISAM has other advantages though and is a perfect fit for most websites).

The standard solution to this problem when using MySQL is to simply select another DB engine for the tables that require it.

Here is some nice documentation for the different engines currently supported by MySQL (v 5.1).
http://dev.mysql.com/doc/refman/5.1/en/storage-engines.html
[size="1"]I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!
Besides, there are many things that it's nice to be able to persist efficiently where you don't really need transactions, and MyISAM is good for that.
Quote:(since it doesn't support transactions)


But it does.

Although they might not be as robust as some other databases.
Quote:Original post by Antheus
Quote:(since it doesn't support transactions)


But it does.

Although they might not be as robust as some other databases.


read my post again, that quote (Which you so nicely removed from its context) was refering to MyISAM(the default engine) which doesn't support transactions. (MySQL has 2 storage engines that support transactions, InnoDB and BDB (+ Falcon in the 6.0 alpha)) (InnoDB is ACID compliant AFAIK).

The advantages and disadvantages of each engine can be found in the MySQL documentation, the ability to select storage engine on a per-table basis is one of the best things about MySQL.
[size="1"]I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!

This topic is closed to new replies.

Advertisement