Thursday, April 21, 2011

What MMOs are made of part 2

       In previous post I covered general architecture  for those completely unfamiliar with the subject, in this post I want to cover  some alternatives to using licensed engines  .

        Then there exist many various emulators, which I think deserve special  mention as today your best bet to running high population private server is to run an emulator of one of the popular games.  UO, Lineage2 and WoW are 3 most popular choices. You get all your assets for free, high quality polished client and name (which can be a curse since original property owners might chase you down and close your server, securing addition financing from investors also looks untenable if emulating   is your approach ) .

       I am largely unfamiliar with UO and Lineage emulations ,but for UO there are large amount of successful shards. 2d nature of a game and open source clients  would allow you considerable extensibility at low  costs.
Lineage2 did not look personally attractive to me

     Those 2 are behind most private servers.C++, decent quality  but  use mostly hardcoded logic tailored specifically for WoW. They do replicate wow to various degree of success and are very stable and well performing if sufficient care taken. There exist private servers with stable population of 500+ concurrent players and  some of those  do make money  (watch out for blizzard!) .
  • WCell- obscure academical emu, but my favourite. Very clean C# architecture. Was not tested on scale but coding with it is a pleasure
Upsides of using wow emu
  • best in the market client, complete with all art assets ,sounds etc
  • Best combat mechanics FOR FREE
  • Large, active and experienced emu community . tons of already built ready to use turnkey stuff
  • Considerable customization options because of very rich feature set of WoW - there is  a lot of things WoW already supports which you dont need to code a new,  and you can build amazing new gameplay with features already there
  • Name recognition
  • Coding completely new features could be hard ,Since ultimately you constrained by WoW architecture (which again is  pure awesome)
  • Name recognition can be a bane as people would expect/perceive you to be first and foremost a "WoW" . If you build innovative game it can be hard to attract right audience
  • Blizzard can shut you down

Overall my approach would be to pick most stable client target (woltk ) .Freeze it as  a target (wow changes network stack, game mechanics, new content from time to time, so writing for current wow emu is always a moving target). Completely rebrand everything wow related, develop and use as many custom assets as you can (models, menus etc).  You would possibly neeed hack the client to provide  client UIs hooks for completely new mechanics (and use moddable wow ui to extend it), but again wow is awesome you could do most everything with what is already there.

           This for long time looked like a  best option to me , but ultimately the biggest problems are the legal threats . There is a way out in  case if you can make server popular enough to be able to gather money to get a custom client written. But art assets are still hard and  before that  you can be shut down at any point ,

       You have to stay below radar cause of legal threat but you wont gain popularity (and without popularity there wont be money). .Vicious circle

Complete open source stacks (end to end -including the client and toolset):
 Technically of  a decent quality (e.g. running stable and not crashing) and probably most mature project out there by virtue of not being open source originally. Double bonus is that all art assets and tools are included (which is huge). Downsides -well its a huge C++ project , written for one specific game. Its not made to be extensible or overly maintenable.Source code is hard to read.
Ancient project, still alive. C++, assets in custom format(with converter).  I played it in. early 2 thousand and gameplay was non existent.Graphics is antiquate by todays standards. New assets and world development I heard is hard.  I didnt check the source code

Personally I am not comfortable with C++ to a degree of pursuing that pathway. Plus I think there is a lot of legacy approaches  and large amount of legacy code. Ryzom is only one truly tested on large scale so I would probably choose it if I had to.

Running out of space , energy and time for this post , but To be Continued in Part 3...

No comments:

Post a Comment