Sign in to follow this  

How do you make a home-made MMORPG?

This topic is 3663 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

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!!

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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 =]

[I cleaned up your strange double-post thing -- jpetrie]

[Edited by - jpetrie on December 4, 2007 2:09:37 PM]

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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...


AFAIK, Eve Online uses MS SQL not MySQL.

Regards
elFarto

Share this post


Link to post
Share on other sites
Really? I could have sworn I read a tech debrief that said it was all Python and MySQL. However, since I can't find it now, I can't be sure. Do you have any pointers?

Anyway, there are lots of games that serve on MySQL. And everyone I know uses the InnoDB back-end.

Share this post


Link to post
Share on other sites
Quote:
Original post by hplus0603
Really? I could have sworn I read a tech debrief that said it was all Python and MySQL. However, since I can't find it now, I can't be sure. Do you have any pointers?

Anyway, there are lots of games that serve on MySQL. And everyone I know uses the InnoDB back-end.


Google to the rescue :)

Quote:
GamersInfo
GamersInfo.net: What did you guys do at GDC this year?

Magnus Bergsson: We had 16 people at GDC from every department, we basically did everything, and I won a flat TV from Microsoft. :) We actually have had a really good partnership with Microsoft, all of our servers run on Windows and we use MS SQL.


They may use MySQL internally, but the game (and funnily enough, the forums) is all run on MS SQL.

Regards
elFarto

Share this post


Link to post
Share on other sites
MySQL works just fine for MMORPGs. It really depends on what exactly needs to be written / read from the database. People get so caught up in micro-optimizations and benchmarks on which database can perform a function faster even if it is only taking 0.001 seconds that they forget the performance of a tool often isn't the problem, but how you use it. If every time a user is updated you update them on the database, then sure, your game is going to explode in pain and failure. No database is going to save you no matter how great its performance is.

Share this post


Link to post
Share on other sites

This topic is 3663 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.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this