Don't think MySQL! Relational databases are not always the proper tool to store data.asparagusx wrote:This is very interesting reading.
What would the proposal be for the server side implementation - use C++ for speed and reliability or use some other development language such as Java?
What about the client? Should this also be a C++ custom app, or should it be browser based e.g. using Java?
If you placed your world inside a MySQL database, you would obviously include ALL the properties of characters etc in e.g. modelling data (SMeshBuffer?) would be stored as a BLOB of some kind?
How do you prevent cheating - every packet that is sent needs to be encrypted to ensure that it sent/received by an actual client and not some kind of hacker device?
What about terrain? Is that also stored in a MySQL table?
Reading all this, does show you what is really involved in developing any kind of successfull system - there is a huge amount to think about. I think people nowadays simply do not appreciate the amount of work/dedication that is really needed to develop anything worthwhile.
Asp
What tools you use is up to you. I personally am leaning towards the following setup:
* Client
C++ / IrrLicht. This allows for speed and portability between os x and windows (which is what I need). If you want to run the game in your browsers, I'm afraid you're bound to Java and the IrrLicht java bindings.
* Server
Java / Project Dark Star. PDS has some very good techniques and is very scalable. Don't think Java is slow. With Java 6 it's approaching C++-like performance. PDS has a C-client SDK which works nice with the C++ client and Irrlicht.
You cannot trust what your client sends to you. There may be hacks, cheats and what not. This means your server should validate everything that comes in. If a player reports he moves ahead 20 units, your server should check if that is valid.
This is a big problem with MMO's. Your server needs to validate *everything*.
About storing your terrain and NPCs etc. I would recommend files. Whether it's XML, plain text or some binary format is not really important. But using MySQL for your terrain makes no sense at all. I know it's a reflex. "I need to store data" - "MySQL!". I've been there