What is the cost of commercial MMO libraries ?

Started by
46 comments, last by CMelissinos 16 years, 7 months ago
Quote:Original post by joe1024
Considering the low number of players in question (~700 at any time, up to 2000 max), would it be extremely risky to let clients handle game logic ? I mean, how many hackers is my game going to attract ? Those few could be handled manually (by IP/user name), probably.


All it takes is one. If the players ever get an idea that something has been hacked, they will blame every problem on that!

Check out Super Play, the SNES inspired Game Engine: http://www.superplay.info

Advertisement
Quote:Original post by joe1024How many surprises like the one that you just mentioned are there waiting in the dark ?

Do you think that if I put here the feature-list of complete gameplay, I would receive a feedback regarding all features and their associated side effects ?


There is only one thing waiting to be discovered:

- You cannot account for everything. Design a system that was made from scratch to fail.

You need to prepare to:
- remove duped items from the database
- ban accounts, trace exploiters
- log every single action that happens in the world for 1 week period (could be 10,000 actions per second)
- refund money to players that got scammed
- get back money from players that scammed you by claiming they were scammed
- handle upset players (for either valid or invalid reason)
- handle negative press once flaws are turned against you
- discover any problems early enough (when they appear on forums, they have already been used and discarded by people who found them)
- handle your own team exploiting the game systems for themselves or friends (it happens. A lot. In every single game).

And so on...

These are the only lessons that everyone needs to learn. This is also the reason why $1 billion per year games like WoW support only 100 players per zone, 3000 per cluster. They aren't incompetent. But once you factor in entire support and administrative back-end, that super-tweaked MMO engine becomes a bulky, log and confirm everything database system.

Guild Wars is a nice example of designing a game around those issues. World is designed to compensate for local exploits and problems through severe instancing, economy is made on everything-equal principle, so even a huge money/item exploit doesn't ruin the economy, pvp is completely monitored and logged, and so on...

Despite that, they still suffer occasional problems with either game systems or logic that need to be addressed immediately. GW is considered one of the most hack-proof games (bots are still rampant, but at least they aren't running economy into ground).

This is why MMOs become hard. Once you launch, you're not done. You've just began. And unless you don't account for all the problems from the start, you'll never catch up. And that's only when something bad doesn't happen (D2 is hacker's paradise, most MMOs suffered at least one money dupe exploit, Vanguard did in first two weeks after launch, SWG's was well documented, WoW has had plenty of issues, but they were handled through in-world intervention or bans via live GMs on the spot, AO allowed incredible leveling and money exploits for a month or even more, ....).

Obviously, this takes more resources that any company can invest. As such, many of the aspects are based on prayer and luck. It's simply not financially viable to develop a fully reliable system. Then again, even many banking systems don't have them.
Quote:This is why MMOs become hard. Once you launch, you're not done. You've just began. And unless you don't account for all the problems from the start, you'll never catch up. And that's only when something bad doesn't happen
So, we`ve come to even more important issue: Is it possible that the first few months could actually ruin the game so much that it would become impossible to get new crop of players ? Especially if we`re talking about ~2000 players ?
Because any of those exploits could ruin the game for normal players and if those would leave, troublemakers would follow them. And noone would pay for a game without players. So it`s a vicious circle.

BTW, what do you mean by "severe instancing" in Guild Wars ?
To the Original Poster
-----

Sorry for the crop of posters who are doing more to diminish your idea then give you any form of real solid help. Its common because a great number of people come into the forums with nothing under their belt and big dreams of an MMORPG, with no cashflow at all to even run the servers. Since this is apparently not the case, and you already have a game your working with, then its fully possiable.

On the other hand I do have to point out that their is _NO_ middleware as you sudgest (at the moment anyways). The reason for this is that networking is inherently complex and must be optimized quite well. Because of this every game pretty much rolls their own. But that doesent mean you cannot get a very nice start on this. Look into Raknet, its well worth the price, and you could implement MMO alot quicker once you understand its distributed objects model. So that would be a good starting point for you.

Best of luck!
Paul: Only first few posts were like that, then it took correct course and I learnt lots of information that I didn`t know or already forgot.

My biggest mistake probably is that I haven`t actually played any MMO so far, I`m just assessing risks of future projects after this one ends and MMORPG should be easier to make now that I have full single-player RPG (OK, we all know it`s not actually RPG, but it`s masses-approved genre name, so we`ll stick with RPG too) system working.

And as I stated, I hoped that the situation has changed in last few years, because about 2-3 yrs ago I was also playing with the idea of MMO game, but at that time it was totally out of my reach. Now, as it seemed to me, this should be more possible, since I wrongly assumed that most of MMO code should be somewhat easily refactorable and there should be plenty of MMO libraries all over the net, since there are lots of engines. Obviously, I was wrong, as I just learnt.

Don`t get me wrong, I wrote the engine plus those games myself from the scratch, so I don`t have a fear that I wouldn`t be able to make. But I don`t want to spend next 2 yrs coding something (in this case, MMO "component") from scratch, when such a risk is associated - especially the first few post-launch months.
So, I may well just forget the MMO for my next project (and go for something considerably less risky and expensive), and in the meantime just research all the currently-available libraries (that were listed here) and slowly prepare for transition to MMO in the project that shall follow after this one (if I still will be in the business at that time).
Probably, I should spend some time playing them, though I`d rather spend the time more productively, but there`s probably not a better way to get acquainted with the MMORPG genre.


Still, I want to thank hplus0603, Antheus, Palidine and wodinoneye for bearing with me and explaining the current market situation. I`ll bookmark this thread and shall return to it later, especially the libraries mentioned.
Well, here's something to ponder over when discussing safety and trust.

The exploit in question has in mean-time been confirmed and acknowledged, speculation says it's possible it has been going on for over 6 months or more.

The exploit was performed solely through in-game actions, without any third-party tools, or any illegal behavior. It merely relied on some obscure state desynchronization when players recovered from lost connection (obviously, details are sketchy).

GW is notorious for high degree of hack safety due to completely server-side logic, with incredible degree of client-side data hiding (every single piece of data available to clients is dynamic, and client has no way of determining what it does, until server tells them how to use it).

Even with that, an obscure sequence of events allowed duping, and would have gone un-noticed, if it weren't for player's observation of certain items being too readily available.

The only rule of online gaming - you can't trust anything or anyone. And even when dealing with legit clients, an obscure race condition or cached state is enough to break the game.
Quote:Original post by wodinoneeye
Quote:Original post by KulSeran
Quote:
"Someone mentioned Python scripts to be use for servers (logic..). I couldnt think of anything slower to use when server performance/resources are most needed/at a premium. More intricate game mnechanics and more interactivity (multitudes of simple reactive objects -- not just better AI) continues to expand the need for server processing power so that you cannot just assume that Moore's Law will compensate. I would think that the testing process done on a MMO's scripts would need to be quite rigorous/controlled and thus invalidate most of the reasons for using a 'scripting' language like Python."


EVE online uses exclusively "stackless python" for game logic, and they manage 30K+ people on their single shard at one time.
I think that easily constitutes "fast enough". And I know there are differences between "regular" and "stackless" python, but they are still enough the same
to be called "python".



How complex is their 'game logic' and how high level are the primitives that are invoked ??? I wouldnt doubt that most of the 'logic' is imbedded in the engine (prob C++) and only superficial 'scripting' is made use of. (30000 users on a single shard on how large a cluster???)

More reactive/interactive Worlds with a much larger load of script execution (real logic - not just script sequencers) would drown X times sooner than a server written in native code. With Python I think its the reliance on the constant namespace lookups for variables (every variable and method call).
I seem to recall that LUA gets a 2 fold increase in speed (or something significant like that) because they can use arrays (fixed mem offsets) to similate STRUCTs.

Too much Ad Hoc scripting can be the death of a server (and they often have to impose severe restrictions on such projects), and the advantages
that people in simpler projects look to 'scripting languages' for could be had with better tools (and proper primitive construction) that would turn out fast native compiled code.


For those of you who aren't familiar with the power of tasklets and concurrency in Stackless Python, give these a read:

Stackless Python in Eve, by Kristjan Valur Jonsson, CCP Games Inc.

For the above, extract the file and open fullscreen.htm for the slideshow.

An Introduction to Stackless Python
GameDeveloperTools.comA comprehensive library of game development resources.
We just announced that we have open sourced the Project Darkstar online game server platform. Check it out at http://www.projectdarkstar.com. It addresses many of the issues that companies face when trying to architect a scalable, fault tolerant server platform for online games. We have resolved some of the "old nasty" issues (like dupe bugs) for example.

We have a booth at AGC this week (right between Multiverse and BigWorld), so if any readers are attending, drop by and check out the demos or listen to one of the many presentations that will be delivered in our mini-theater.

Would love feedback as well :)

-Chris

This topic is closed to new replies.

Advertisement