Thursday, February 11, 2010

Random vs predetermined

An "anonymous" poster left the following thoughts on an earlier blog post of mine, which I thought was interesting:
Earlier this evening, while crafting some provisions, I was musing on the absence of "randomness" in the item portion of EQ2. Recipes produce endless carbon copies of whatever you want to make. Loot seems to be pre-defined as opposed to being randomly generated from pre-established sets/ranges of attributes. I was stuck wondering just what the considerations and trade offs were when the decision was made by the EQ2 creators to go one way or another vis a vis random/deterministic in game item attribute assignment.
Is there some forum or another anyone could point me where that issue is discussed/debated?
 I certainly can't answer anything about the pre-launch EQ2 creators' thoughts or decisions, since I wasn't on the team then, and anyway saying anything on behalf of SOE would violate the company's employee blogging policy.  And I'm not aware of any forums where EQ2's pre-launch decisions would have been discussed, although general game related forums (such as maybe Fires of Heaven or Quarter to Three) might possibly have some general discussions relative to all games, if you dig deep enough or start a new thread.

I can only give my personal opinions in a general sense, not specifically related to EQ2, but general thoughts which would apply to any game.

Benefits of pre-determined outcomes to crafting recipes:

  • You know what you will get every time 
    • This may sound obvious, but MMOs have a pretty steep learning curve with all the different things that you need to learn how to do, and for a new player it can be not only confusing but frustrating not understanding why a recipe's results are different.  People can invent remarkable superstitions around game systems they don't understand.  I remember back in the early days of EQ2, talking to a crafter who insisted on buying the much more expensive "distilled water" to use in making his components instead of the cheap "aerated mineral water", because he was absolutely convinced that it gave a lower chance of failure events during the crafting process, and thus a better chance to make a pristine (best quality) outcome instead of a lesser quality product.  Now I've seen the back end of the recipes I know that this is completely impossible; not only was there no difference which water you used, there could not have been, the mechanics to support that simply don't exist.  But lacking an understanding of the mysterious processes that happened on the back end, players came up with the most remarkable guesses and superstitions.  One recipe --> one product avoids this, at least as far as possible.
  • You are never put in a situation where through no fault of your own you've made an item that your customer doesn't want
    • If you're a crafter in an MMO, chances are you're looking to sell things you've made to customers.  You're in the business of supplying goods, and in order to stay in business you have to make the goods that the customer wants to buy.  Adding a random factor into what you get is all very well in theory, but if the customer wants a breastplate with good cleric stats and you randomly make a breastplate with good berserker stats, that is not going to be a happy customer.  Especially if you were using the customer's rare dropped component to make the breastplate.  This puts the crafter in the unfortunate position of either having to absorb the cost of a second (or third, or fourth, or ...) try to get the item that the customer wants, or have an unhappy customer.  I remember crafting in the original EQ, where you had to obtain all the rare and pricy components, give them to a crafter, and just wait to see if a mouse-click resulted in the item you wanted or a complete loss of every single item.  What crafter wants to tell a customer "sorry, I just wasted all your materials and I didn't make what you wanted"?
  • You don't end up with bags full of useless items while trying to make the one extra-nice item, which is of course the only one that customers want
    • The problem with making one or some results nicer than others is that they immediately become the de facto standard of what people want.  The implementation of crafting at EQ2's launch was that there were 4 quality levels of each crafted item, pristine being the best quality, and that the third quality level would be the expected standard; according to the devs' statements at the time, the pristine quality was expected to be exceptional and not normally achieved.  Of course, before the game had been launched long at all, the only thing that customers wanted was the pristine products.  And as the crafters could reliably make the pristine product on demand, all three lower quality levels were viewed as just mistakes to be sold back to vendors.  Aion does this a slightly different way; while crafting any item you have the chance of a rare event happening during the process, and if this event occurs, you get an extra-nice version of the item.  There's nothing you can do to increase your chance of getting this rare result, it's just random luck.  As a result, while learning handicrafting, I ended up with dozens of regular quality jewelry items filling my bags, and only two or three of the "noble" quality items.  Not only is this annoying in terms of bag space, but it's also frustrating to me as a crafter that my knowledge and skill do absolutely nothing to influence the result.  It would be like sending an adventurer to kill a monster but telling him that his equipment, strategy, and skills have absolutely no influence whatsoever on the result,  it's just a random chance whether or not he wins.
  • (If completely variable) It is far less load on the database storing a much more limited number of predetermined recipe products, than to allow each to be unique
    • I certainly can't speak to the technicalities of data storage in an MMO, but I do know that the more unique items that have to be stored and loaded, the more chance there is of slowing the game down.  I have heard, though I don't know the details so this may be apocryphal, that Star Wars Galaxies suffered from very serious database issues back when it allowed every crafted item to be different.  Whether or not that's true, common sense says it's likely; 10 predefined items will obviously require less storage space than 10 general item types each of which comes in 10 different variations, = 100 items being stored instead of 10, a whole order of magnitude more items to store, manage, and load.
  • (If only somewhat variable within predefined results) It is far less work for the developer to make and maintain just one product from one recipe than to make multiple possible outcomes, most likely only a few or one of which will be desirable
    • In the original implementation of tradeskills in EQ2 it wasn't totally free-form as SWG was, but as mentioned above every recipe could make 4 diffferent quality levels.  Of which only one was desirable.  To maintain this system, the tradeskill developer was therefore spending three times as much time itemizing completely useless items that nobody wanted than they were on making the actually desirable items that would end up being used. It would also be four times as much effort to revisit the stats on items or implement any changes to already created items.  If this isn't a huge waste of developer time then I don't know what is.  With the Kunark expansion EQ2 did away with this system, and now you just make only the product that was previously called pristine; instead of getting the lesser products as lower quality results you just get your fuel costs back instead.
Benefits of pre-determined loot that always drops (or has a chance to drop) from the name dungeon or named monster:
  • Allows players to plan accordingly
    • If a player is looking to upgrade their equipment, they want to be able to actively do something that will affect their chances of upgrading.  For example, I used to be guilded with a berserker around the time of EQ2's second expansion (Kingdom of Sky) who really, really wanted a pair of spaulders that had a fairly rare chance to drop from a named monster in the Halls of Fate zone.  The knowledge of what he wanted and what he had to do to get it allowed him to plan accordingly, and after enough runs through Halls of Fate, he did eventually get the spaulders he wanted.  If however the items that dropped in Halls of Fate were randomly generated, he would have had no reason to go to Halls of Fate instead of any other zone, and he would have felt as if there was nothing he could do to work towards getting his spaulders.  It would have been entirely down to random chance regardless of anything that he did, and I don't think that's a generally satisfying feeling for most people.
  • Allows the loot to be custom named and/or themed to the dungeon and/or monster
    • Isn't it cooler to kill Lord Evilpants and get The Pants of Evil from him, with special effect "Evilpants' Revenge" on them?  Killing Lord Evilpants and getting the generic "Superlative Leather Elbowguards" just isn't as immersive, or as much fun.  And people who look at you wearing the "Superlative Leather Elbowguards" will have no idea where they came from, whereas people who see you walking around town looking bad-ass in The Pants of Evil will know that you are the one, the mighty warrior, who took down the vile Lord Evilpants.
  • Same issue as above with database management
    • infinite numbers of item variations mean an increased problem managing the data.  Certainly not impossible, but definitely requiring careful planning and management.
  • Customer service confusions are less likely
    • So you killed the dread Lord Evilpants, but you couldn't loot his treasure because it got stuck in the wall or didn't spawn at all due to some bug or something.  The customer service rep who is trying to help you presumably (hopefully!) has tools to determine exactly what WOULD have been in the treasure chest if you'd been able to reach it, but convincing an angry group of players that the randomly assigned loot stats that they're getting reimbursed now are the exact same ones they would have got from the original treasure chest could be difficult.  Also, if you've tried to maintain a bit of themed flavour to items by naming multiple stat variations of an item with the same name, so that Lord Evilpants still drops The Pants of Evil but the actual stats on them vary, then it means the customer service team has to take extra care (and therefore time).  They can't just spawn The Pants of Evil to reimburse a player, now they have to check logs and find out whether the player needs The Pants of Evil with +3 wisdom, or was it The Pants of Evil with +5 strength and +20 cold resist, or was it The Pants of Evil with +10 stamina?
  • Maintenance is less of a nightmare
    • What if, after your game has been out for a few years, you decide it's time to revisit the stats on your items?  Let's say you've decided to add a new stat, or perhaps you're just finding that the low level items created when you launched are really pretty undesirable nowdays, and need a bit of a facelift.  This isn't an unusual situation for a long-running MMO.  If you have pre-determined items then you have a much smaller number of items that need to be examined and potentially upgraded than if every item can be different.  Let's look at some imaginary numbers.  Let's say you have 10,000 players (a small number for most MMOs, but easy to work with).  Over the 4 years those 10,000 players have played, let's say they've all looted 1 item from Lord Evilpants.  If every single item they looted was unique and individual, that's 40,000 items that you now have to at least check, if not actually revise the stats on.  And that's just one loot item in 4 years.  Multiply that by how many other things they killed and you're looking at millions, if not hundreds of millions of items.  If on the other hand Lord Evilpants drops the exact same identical Pants of Evil for everybody who kills him, now you have 10,000 players all with The Pants of Evil, which is exactly 1 item to upgrade as opposed to 40,000.  I know which the QA department I work with would rather spend the time checking, post-upgrade.
OK, so those are just my initial thoughts about why there are definite advantages to having pre-determined loot and item stats instead of trying to randomly generate items, whether completely free-form or from a pre-defined range.  There are most certainly other reasons still that haven't occurred to me off the top of my head.

On the other hand there are also arguments to be made in the other direction; it can add variety to the loot in the game, and (relating to crafting products) can put more control in the hands of the players if they're able to influence the stats on their results.  Complete automation of loot generation can save time if nobody at all has to manually create it, and there's no risk of one developer making an item ridiculously and game-breakingly overpowered, as can accidentally (or intentionally) happen when things are made by hand.  If such a system were designed from the very start to manage database storage and future upgrade requirements as efficiently as possible, it's theoretically possible that it could work well, though I can't think of any game that's actually doing this at the moment.  

The entire loot system, and therefore really the entire game, would have to be designed around this mechanism from the very start, however.  It's not something you could just decide to put in one day, not if it is to fit in smoothly and work efficiently.  And although I haven't worked on a pre-launch game myself, I tend to suspect that there are more central and pressing concerns that most teams would focus on than the loot generation system to be used - such as the story of the game, the character creation choices, the art, the world, the combat system, the design tools, etc.  The story and the combat system will make or break your game; whether the loot is manually or automatically generated is unlikely to do either.  I rather suspect that by the time most game teams get around to thinking through the details of the loot, it's already too late to build a game and database structure that would be designed to properly support randomly generated items.

I don't know if any of that has answered my anonymous commenter's initial thoughts and questions, but those are the first things that spring into my mind in response.  Hopefully they've raised at least a few more thoughts and demonstrated why it's not necessarily a simple or easy decision!


  1. LOTRO launched with "critical success" items that had all of the flaws described above - someone (crafter or customer) does all the work and had maybe a 1/3 chance of getting the item they wanted. Ironically, A) the average customer would be better off buying the finished critical product from the AH than risking the financial loss of even one round of materials attempting to craft it themselves and B) if you were prepared to settle for the non-critical version, you could get gear very very cheaply on the AH due to all the "failed" attempts people were trying to unload. Turbine has since shifted towards the use of cooldowns to wipe this problem out, and it's a pretty major improvement.

    A more interesting question is why developers went this route in the first place. My guess is that it was seen as a way to deal with the relative gear quality question between (often solo) crafted gear and group dungeon gear by raising the cost in time of crafted gear. Perhaps they overestimated the willingness of players to fail repeatedly (or pay a crafter to fail repeatedly) for an in-game edge?