I'm a huge fan of giving mobs some history and uniqueness, and that's an easy way to do it. A nice side effect is that you don't have to think about loot separately when designing the content, because it comes naturally from the design of the mob. This also means that, by definition, a mob can never drop an inappropriate item.
Recently, I re-discovered the ancient Baldur's Gate games (enhanced edition), and they do something similar. Mobs drop the actual equipment they have.
Some loot traditionally comes from the body of the monster itself, like a rat's tail or a wolf's fur which you can bring to the next merchant or quest-giver for reward. A more natural method of doing it would be solely through the skill/crafting system, instead of dropping pre-defined animal parts just because they happen to be important to some quest.
> You can combine this with a trinket generator to give each one a little more flavor.
I do have that. They are "powers" and work similar to items in Diablo where they can be a prefix or suffix on the name of the item and modify its stats. So you can get a "Glimmering Stick of Wounding".
> This also means that, by definition, a mob can never drop an inappropriate item.
I did try this, but my experience was that it made killing mobs predictable and boring. "Oh, look, the wizard dropped yet another robe." I deliberately sacrificed realism (which is of limited value in my book anyway) to get a more exciting, surprising game.
> Some loot traditionally comes from the body of the monster itself, like a rat's tail or a wolf's fur which you can bring to the next merchant or quest-giver for reward. A more natural method of doing it would be solely through the skill/crafting system, instead of dropping pre-defined animal parts just because they happen to be important to some quest.
I do have that too. There is a "crucible" in the "town" where you can combine items to make new ones (again similar to Diablo). It's a fun mechanic, but I don't want to lean to heavily on it. I find games where you go into the dungeon, amass a pile of rat's tails, sell them, repeat, to be super boring.
I guess at a fundamental level it depends on what kind of game you want to make/play. To me the allure of RPG-style games is that they can be story vehicles. Run-of-the-mill animals dropping weapons and gems has the opposite effect on me: I think it disrupts the world's integrity and as a player I always think it's a design weakness.
In any case, they do drop something - their bodies.
> You'd end up basically just trying to kill "monsters" that are humans.
Nope, at least not if we're talking standard fantasy RPGs. You could argue that all the tool-using monsters are human-like, but to me that's not very accurate. If there's a moral in-game argument in there, well, you generally don't kill Goblins because they're not human, you kill them because they're evil or they attack you first. There are generally tons of tool-using monsters in fantasy settings that aren't even humanoid. But yeah, I think it's OK to have human bad guys as well. To me, basing the distinction whether to kill some creature on whether they're human or not feels weird and questionable.
> I think that's a cool idea, but in practice it doesn't seem to lead to very fun gameplay.
Obviously, I disagree. Not every mob needs to drop riches, especially if the loot doesn't make sense within the story. Providing predictable and nonsensical short-term rewards is not a player retention strategy I'm overly fond of, I might as well just install ProgressQuest and watch that for half an hour. On the other hand, there are many games that do just that, so your view is clearly commercially viable.
> "Oh, look, the wizard dropped yet another robe."
That's only a problem if the expectation is that every lootable item is indeed loot-worthy.
> I deliberately sacrificed realism (which is of limited value in my book anyway) to get a more exciting, surprising game.
I see you're not kidding about not caring for realism. That's of course totally fine, do your thing. I'm not trying to convince you of anything. My point is that I personally think the choice between fun and realism implies a false dichotomy. Yes, dropping "realistic" loot is a bit predictable - but it's a good kind of predictability that makes the in-game world more convincing. And with just a little bit of good will and creativity you can still make them drop unique and surprising things without breaking their character.
Maybe I'm mistaken but you sound a bit defensive, which was not my intention. Once again, this is not a critique of your game. It's a very personal opinion about loot and the style of games I like to play. At the end of the day, you're the guy building something amazing and I'm just a random dude on the internet who except for the occasional abysmal LD entry never even made a real game. So: rock on :)
My opinion is somewhere between the two. While yes, repetitive loot is boring, seeing an enemy shoot fireballs at me and knowing its because of an item he has (an item i can loot), has its own thrill. "ooo! i want that!". It makes battles more fun, knowing that you are gonna get something cool.
Sure they would - a jelly drops a potion made from its body, the other animals have stingers, teeth and claws that are excellent weapons, and skin or plates that make armor.
A petrified dead snake makes a great wand.
A web from a spider can be used as a trap item (throw it at someone and "stun" them for a time). Make it reusable by pulling back the cord attached to it.
A bear arm makes a sword-like slashing weapon.
First, most loot had a reason to be there and some logic to it. You need bone chips? You'd go whack a skeleton. You needed some beetle eyes? Go whack a beetle. Bear meat or skin? Go hunt for bears. It gave the world a cohesiveness and logic that you didn't even have to think about.
Also in the early days you could give mobs items and they would equip them. If you traded a sword and shield with a skeleton and it would drop those back to you when you killed it. This was also pretty cool, because you could tell what damage to expect from the mobs based on what the mob looked like. If it was a skeleton wielding a staff you knew you'd found a catch because those would sell for a pretty penny.
Later on, in subsequent zones that all started to break down a bit more. But overall, I think it kinda retained this in essence. Had the game had a stronger crafting mechanic behind it (instead of being broken from the get go), it would have been quite interesting.
I agree whole heartedly on the just blindly gathering 100's of rat tails or wolf pelts being boring beyond redemption. But there's some charm to being able to hunt for what you need.
Loved that mechanics in Fallout; the mobs (being 99% human anyway) had equipment, which included weapon(s), armours and some random stuff like money, drugs you'd expect a particular character to have. They could use all of their equipment in combat, and that's what you were taking after defeating them.
still it does make sense to more closely align items with the mobs that your fighting. This could be weapons, armors, trinkets, and such or craft supplies where you have to skin/harvest the kill.
(From the now-defunct webcomic "rpgworld")
Monster hunter follows this idea as well. Almost all the loot comes from killing and carving monster. When you are on a quest you can do some stuff on the side like fishing/mining etc and you will get rewards which can be used in crafting weapons and armour.
I've always wanted to write a roguelike. I wrote a woefully incomplete MUD a long time ago. It had the interesting (to me) property of representing items and features as .NET assemblies. Servers could link so that a doorway could move players, with their items and effects, seamlessly onto another. If I recall correctly .NET even had the security model to (nominally) support it safely, where all items may invoke only approved engine APIs, and where trusted assemblies might be loaded while untrusted items and their consumers pass through to be loaded again later on another server. The idea was to enable a sort of open web of interconnected MUD worlds. Only ever made it to the tech demo stage; I recall spending a long time on that system, event handling, and other engine features (classic game dev mistake) and never got around to game content! I don't regret the time: it was primarily a project of exploration and the act if building just the engine was its own reward. (Tomorrow I might try to dig up my old source for the MUD but I suspect it will be like http://www.xkcd.com/1360/ )
Anyway, could anyone recommend a good OSS roguelike that's accessible and easy to hack on? Looks like Angband is OSS, and of course there's NetHack, which if I remember correctly is written in C. Stone Soup's site appears to be down.
As soon as I get around to open-sourcing mine, I'd recommend it. :)
It's a pretty clean, small codebase. I've spent a ton of time designing it to have a clean extensible architecture. It's written in Dart and runs on the web, which is nice.
I just need to check with work, but that should be fine and I'll put it online soon.
If you like C#, the previous incarnation of my game is already online: https://bitbucket.org/munificent/amaranth
I've pretty much abandoned it, but you're welcome to do with it as you like.
If you just want to write something to share with friends, go with rot.js. It's a nice approach, and it takes away all the complications of delivery. I did a 7drl entry a few years ago. The task of making it deliver in a clean package for multiple platforms took longer than everything else about writing the game put together.
Smart Kobald is an interesting read, C++. http://www.zincland.com/7drl/kobold/
So is Gruesome, Pascal. http://gamesofgrey.com/
"In Angband, any monster that drops stuff can drop pretty much anything. Monsters have a level, and if they drop loot, it just randomly picks any item near the monsters level."
-> (RPG related) I felt like this was an issue with Diablo 3 compared to Diablo 2. You basically just had to mash around in D3 grinding the top-level monsters and hoping... whereas in Diablo 2 you could make conscious choices over where to farm if your goal was to find a certain item (albeit the drop chances were extremely low, so most people just did Meph runs or Baal runs and traded their way up). Here though the author is doing drops way more realistic than either of those games heh, so that's quite an awesome feat.
Itemization seems really tricky; analyzing Diablo 2 vs Diablo 3 can actually provide some interesting insight into how item systems affect gameplay etc... maybe those devs even tried doing it realistically at some point but found it didn't pan out gameplay-wise?
In Diablo 2, areas were randomized internally but externally consistent: the individual makeup of areas would be different every game, but the connections between different areas would remain the same.[1] This means that repeatedly exploring the same area remains entertaining for a relatively long time in Diablo 2. This is important, because as you say, items have a higher chance of dropping from certain monsters than from others. If you "have to" keep farming the same area over and over, it helps prevent boredom if that map is different every time.
In Diablo 3, the internal layout for each outdoor area is always the same, and even indoor areas are relatively static, compared to Diablo 2's. After a while, you know the best way to maximize efficiency, which encourages people to repeatedly farm one area, but this is a double edged sword: once you know what the most profitable way of playing the game is, playing any other is much less attractive. This actually reduces the range of (rational) possible actions in the game, inducing boredom more quickly. In addition, some of the best areas to farm in Diablo 3 are the dungeons. These are (smaller and optional) sub-levels within areas. Each area had fixed dungeons in Diablo 2. In Diablo 3 areas can often spawn 5 or 6 different special events, while it has only 2 or 3 (fixed, just like the areas themselves) spots for such events. This adds another layer of randomization: you need to be lucky twice: once to find the dungeon and once again to find the item in the dungeon.[2]
Something else that changed between Diablo 2 and 3 is the way item affixes are randomized. In both games, magical items can spawn with certain properties, and those properties have stat ranges. You might find a Short Sword with the Red prefix, giving +1 or +2 damage. In Diablo 2, the best items (Uniques, Sets and Runewords) had fixed affixes with random stat ranges: you might find a Tyrael's Might with anything between +20 Str and +30 Str (in addition to have a dozen other affixes), but that it would get a significant +Str roll was guaranteed. Even the worst Tyrael's Might was a great find. Relatively casual players would be happy with any stat rolls, while true Diablo 2 addicts would make do with nothing less than a +30 roll. Such a perfect roll could (and still can) increase the value of an item by a factor of 10 to 1000+,[3] even if the objective difference between a random roll and a perfect roll is fairly small in the grand scheme of things.
In Diablo 3, this was thrown out the window. Legendary and Set items get some fixed affixes, but even if you got the best item in the game and perfect rolls on the fixed affixes, you still need 1-3 other affixes to get a genuinely good item. In addition, the stat ranges were much wider. Immortal King's Tribal Binding could get +30 or +200 Str, and with the right random affix, all the way to +300 Str.[4] This makes the relation between gear cost and power fairly linear. You might have to find half a dozen Tribal Bindings before you got one worth using. In addition to finding the dungeon, and then the item, you also need to get good affixes on the item, then get good rolls on your affixes. Finally, in some slots, the best items in the game were not Legendaries, with their half-random setup, but Rares, with fully random affixes, which instead of 1-3 good affixes, need 5 or 6. It is no wonder then that players were unable to find their own items, and were forced to turn to an auction house, where they were primarily supplied by bots and gold farmers (unknowingly, but still).
Blizzard tried to address some of these issues in the Reaper of Souls expansion. Here's a few examples relating to the above points:
* Enchanting was added: allows you to replace one of each item's affixes with a different one (only one affix per item, but you can repeatedly change the same affix until you get one you like), reducing the impact of random affixes.
* Rifts were introduced: random dungeons with random monsters and a random boss at the end, which are generally slightly more efficient than just farming normal areas.
* The auction house was removed, reducing the impact of bots and farmers, allowing an increase in the drop rate. Trading in general was removed as well, making it impossible to turn to third-party trading sites (as was common in Diablo 2).
* The stat ranges on affixes were reduced, lessening the dependence on highly random items. Many Legendary items got unique Legendary-only affixes that (when combined in clever ways) make them far better than fully random Rare items.
Overall, this has significantly improved the game, but having played Diablo 2, Diablo 3 and Diablo 3 after the Reaper of Souls expansion, I can't help but feel like these are in the end just patches on a fundamentally flawed design, and that some of those patches actively prevent it from becoming better. Diablo 2, on release, was a bad implementation of a great design. This allowed it to be improved over the course of almost a decade (sporadically by modern standards, but impressive at the time). Diablo 3, on release, was a mediocre implementation of a bad design. Blizzard improved the implementation (at significant cost, to the point of forcing them to postpone the expansion), and details of the design, but it is still only a good implementation of a mediocre design, and improving it much further strikes me as uneconomical, to put it mildly.
_____
[1] For example: http://classic.battle.net/diablo2exp/maps/act1.shtml
[2] It's worth pointing out the two different types of randomization in games. One is the type the player can influence, like which area to farm and whether to play solo or in groups. The other is forced upon players, like what affixes your drops have or whether a dungeon spawns in a given area. Players tolerate the latter to much higher degree than the former.
[3] Filled with jargon, but: http://forums.d2jsp.org/topic.php?t=59979863&f=52. Look at Hellfire Torches for a typical desireable item, and Black Hades for an extreme example.
[4] These are the post-expansion stats, but it illustrates the principle, which is much reduced, but still very much alive: https://us.battle.net/d3/en/item/immortal-kings-tribal-bindi....
Whether or not Rares or Uniques are best in slot items is a matter of designers taste when it comes to Action RPGs. You can tune the item drop tables however you want. I would argue its nicer to have rares be BiS items, as its more fun when you see item diversity in the top builds. Seeing everyone walk around with the same Uniques is boring.
Diablo 3 fails because it does not provide enough ways to customize a character's build. There are a handful of stats that are important, and they mostly scale linearly. The skills are all unlocked, and you can change them at will.
If you do not have enough ways to customize your character, the item drop tables are moot. You can't drop items that are interesting if there are no interesting stats.
Path of Exile is the true successor to Diablo 2. The options for customization are endless, so every item that drops has the potential to be interesting. You should check that out if you are interested in ARPGs, especially something like Diablo 2. And if you are really interested in game analysis, their systems are really unmatched in today's game marketplace.
Diablo 3 is not a game in the Diablo genre. D3 is closer to something like Baldur's Gate: Dark Alliance, or the X-Men Legends games.
Edit: I focused on the itemization part of your post, but I totally missed the map part of your post.
I'm not sure map randomness was relevant at all in Diablo 2. That game was pretty much all Meph runs, and then Baal runs. The maps didn't really matter, you just teleported to the boss and hoped for good drops.
Initially some of the drops are specified using percentages. My advice is to never use percentages when selecting chances to pick an item from an arbitrary list of items. Instead, use numbers which loosely correlate to ratios. Here is an example list of items:
1, 1, 2, 2
the chance of picking the first item is 1/(1+1+2+2) or 1:6. The chance of picking the last item is 2:6. Using this method, you can add arbitrary odds to the list and it will automatically total up the odds for you. For example:
1, 1, 2, 2, 3
The first is a 1:9 chance, the last is a 3:9 chance. The numbers still maintain relative chance next to one another - i.e. you are 3 times more likely to get the last item than the first.
This is better than using percentages because you can add items without having to recalculate the percentages so that everything adds up to one hundred percent (yes you could normalize the percentage but this still makes it tougher to understand the chance of each item relative to one another. If you want to make a high chance of dropping nothing, simply add a null item to the list with a really high chance, i.e.:
(null) 99, (diamond) 1
This results in a 99/100 chance of dropping nothing, and a 1/100 chance of dropping a diamond.
> If you want to make a high chance of dropping nothing, simply add a null item to the list with a really high chance, i.e.:
Brilliant. I'm going to change my code and do that. Thank you!
The trick D2 uses is using a table similar to this:
TreasureClass Item1 Prob1 Item2 Prob2 Item3 Prob3 ...
runes23 zod 1 runes22 5000
runes22 cham 1 runes21 5000
runes21 jah 1 ber 1 runes20 5000
...
As you can see, some of the items are actually TreasureClasses, which have their own entries. Whenever the item picker lands on a TreasureClass, it drops to the corresponding table row and "rolls the dice" again, so to speak. This is repeated until the item picker lands on an actual item.If you look at TreasureClassEx.txt from Diablo II, you'll see that they further use this system to calculate nodrop rates, item generation per act/per difficulty, etc. Pretty cool once you wrap your head around it!
(goblin) 5, (goblin soldier) 2, (wolf) 1, (hobgoblin) 1
Over the whole area, you should get 5/9 goblins, but any given room can be an interesting mix -- 3 hobgoblins and one soldier, 2 wolves and 2 goblins, one of each, etc.
In many games, believe it or not, is a actually intended. Once certain mobs start dropping certain items, people start camping only those mobs and ignoring everything else causing a large bottle neck for the population (in the case of multiplayer only obviously).
Additionally, say you give a mob 0.01% chance to drop The Sword of a Thousand Truths. And of course everyone wants the The Sword of a Thousand Truths. So every day you go out and farm these kobolds until your fingers are numb rather than exploring the world.
Finally, by providing a clear path to getting what you want, you will likely max out sooner and stop playing until the next content patch, which in turn means less revenue for your game
> of course everyone wants the The Sword of a Thousand Truths. So every day you go out and farm these kobolds until your fingers are numb rather than exploring the world
but playing for such a duration is already a massive design failure.
The mobs should not be concentrated so much in one area, spread them around, mix it up so one area has a ton of different mobs.
Very few games do this though.
That's one way to handle item drops, but it's not the only way, even considering only Angband variants. The other popular loot system has you making your own stuff -- instead of "dragons always drop dragon scale mail" (boring?), you'd have something like "dragons always drop scales, and you can use them to forge dragon scale mail".
Of course, I realize now that that was a reasonable constraint of game design and balance. So it's not coincidental that my favorite RPG of all time, Ultima 7, had a famously in-depth inventory system, and yet also was so unbalanced that combat was mostly pointless.
(And Tartarus's Gravity Hammer in Halo 3!!)
Still waiting to be able to pick up Hunter's built-in arm weapons though....
The title mangling introduced a case of RAS syndrome. RPG games is redundant since the G stands for game.
The original title of this article is just "Dropping Loot". If you're going to mangle the title, at least mangle it in a way that doesn't introduce a new error!
RAS Syndrome is a sweet spot trading off economy of characters/syllables vs clarity of message. As with most things humans gravitate to, it is a rational act, not a stupid one.
"A foolish consistency is the hobgoblin of small minds."
Even if in the general case redundancy can be useful -- I don't correct others' spoken conversation so long as I can understand what's being communicated any more than you do -- in this case it detracts and distracts.
This is not different from saying "RTS strategy", or "the strategy you apply to RTS games".
Realism is unbalanced, but guess what, the real world is also unbalanced. I want to play a game reflecting that.
Monsters will pick up items. If you are in the dwarves mines and there's a mining dwarf about, gnomes and other creatures will pick up the piles of rocks they leave behind.
Additionally monsters with the right flag set will often use items. This can reveal their blessed/uncursed/cursed status ("The dagger welds itself to the goblin's hand!") or identify the item - which is sometimes a real pain, when a consumable you needed is used. ("The gnome zaps a wand of lightning! You die...")
Nethack is still unparalleled in how dangerous a monster can be with "your" loot (think you kill a monster with a magic missile, it drops loot, but before you can get to it another one dives into the pile, and quaffs the potion of invisibility/healing you desperately needed).
This is probably the best TL;DR: The author created a nice way of specifying loot dropping behavior such that (begin quote): "Any monster has a chance of dropping almost any item, so you have that pleasant anticipation. At the time time, the probabilities are weighted so that each monster still has a unique “feel” to their drops, and you can seek out monsters that are more likely to drop what you want."
And the author achieved this with a concise but clear DSL in which you specify the probability of starting at a particular point in the equipment hierarchy, and then an object is chosen by traversing (probabilistically) the equipment hierarchy.
I fooled around with this idea in the 80s and it wasn't feasible computationally at the time, but it would work now. One funny problem I ran into is a stereotypical adventure eating monster tends to accumulate a lot of lower level adventurer cruft, not as much good stuff as you might hope for. Lets be realistic, a dragon is going to have to spend a large part of its lifespan eating unlucky dwarves if you hope to catch it with a cache of exotic gems harvested from those dwarves. A gang of thieves would on the surface have "harvested" lots of loot from peasants and occasional nobles over the years, but over the years most of that has drained out due to simple weight and need to eat. So thieves were another disappointment. As I recall corpse robber monsters tended to accumulate the best loot over time. Also nest type monsters, due to inability to move / spend anything they get, killer trees got the best loot. This can't be an original idea? I think this is how dwarf fortress generates people but I'm not sure?
For pathfinder, although I can't recall the name, there is an entire book (article? chapter?) just on custom NPC/Monster design techniques. Actually using a OGL licensed scheme might have issues. But the existence of one solution does imply the problem is solvable in at least one situation (LOL).