Quote:You know, it`s funny, how everyone`s telling you - "Don`t reinvent the wheel", "Just save the time using engines that are out there - just reach out for them". But here, with such a massive issue, as MMO is, now all I hear is "Dude, just write it yourself".
It`s gonna take me 1-2 years until my game is MMO, if I`ll be coding the MMO myself and from the scratch !
Most probably, I`ll end up with completely revamped engine, with several completely overhauled components and many of them completely rewritten.
Which is like coding MMORPG from scratch, only I have a relevant experience - i.e, few finished games on my belt, plus 6 years of DirectX/C++ coding. That`s just plain absurd, IMHO. But if that`s the way to go, well, what can I do ?
There are two types of multi-player games. One is the regular online multiplayer, the other is persistent MMO.
It may seem like a minor difference, but it's like talking about mowing a garden, or building city-wide road infrastructure.
When you go persistent world MMO, a whole new world of problems arises you've never even thought of before. In an MO, if client crashes, forgets to save, hacks the client, nothing happens. In MMO setting, if you misplace one single item, or forget a single gold-piece, hell will break loose.
Look at it this way: Your regular single-player game has 1 in 1000 chance of something going wrong during single gameplay session. In MMO, this means, that every game, one player will lose some progress or experience some other problem.
The problems involved have been solved in world of business applications. Unfortunately, their solutions are incredibly complex, and prohibitively expensive, on top of it, they don't scale to real-time use without some incredibly bulky hardware.
If you go through suggestions listed above, you will find a small number of third-party solutions which take care of everything. Unfortunately, they come as all-or-nothing deal. That means, look at them, decide on the one you like, then subject your engine to that.
When it comes to MMO, the entire process is led by technical limitations of server-side. (D2 is only AAA MMO-ish game with client-side logic, and it has been hacked since day one).
As mentioned before, you have approximately 3 options:
Turbine,
Multiverse or
NEL. Look through them, see which is applicable.
An MMO application server is (ideally) a real-time, unreliable massively distributed, ACID-compliant database server. This alone is a hugely complex set of requirements which are only achievable through incredible amount of compromises - and in order to make it work in the first place, corners need to be cut. And the whole implementation is there to make sure everything works.
There is another option. Don't worry about server software. Change existing code to run server-side, then provide a database to take care of everything else. Unfortunately, you'll then need to scale in hardware. You bring in several machines with fail-over hardware, put on distributed database, provide virtualization for your logic (one game per thread). This is perfectly viable - but can you afford the cost of hardware then (at least 4 machines for database cluster, plus 1 machine for every 4-64 players, depends on how much logic you have)?
Multi-player games are challenging. MMO - very difficult.
The reason why companies provide the whole deal is for this very reason - they understand all the real problems you'll face, and give you tools to solve them.
At very least go through the free engines available to see how programming of such server looks and what all is involved. That should give you an estimate on how much work it would take to convert things.
Quote:I admit that I hoped that situation has changed in this regard during last few years and that the initial troubles were overcome (by others). I haven`t watched MMO area for last few years and hoped for similar advances that are in SP area, technology-wise.
Things have changed. But just like you don't download Oracle's database source, and pull out 3 files to include them in your application, you need the whole shebang for it to work. A lot of experience has been gathered, and it's provided as a package deal.