13 Jul, 2012, plamzi wrote in the 1st comment:
Votes: 0
I recently added an end-game feature that's been well-received. The feature is called Way of the Hero, and one of its main aspects is that it makes combat 3-4x more difficult, restoring the element of challenge for power players for whom the game has started to get too easy. The tricky part was to pull off a new level of difficulty without having any kind of instancing. I think I've pulled it off, so I'm curious to find out if others have done something similar.

The way it works:
A hero has a flag which "affects" people around him/her and lowers the effectiveness of key stats that have to do with combat. To be 'heroic', one can be a hero, or in the company of a hero. There's also a mob flag (I call it 'HEROFODDER') that gets set when a mob has been struck by someone heroic and gets unset when struck by someone non-heroic. When a mob without HEROFODDER flag gets struck by a hero, it gets fully healed.

This was the simplest way I could think of to enforce side-by-side "normal" and "hero" levels of difficulty. It means that a party of non-heroes can fight in the room next to heroes, and each party will experience the same area differently. At least, I hope that's what it means :)

For starters, the hero flag affects stats only because that's easiest to implement, but going forward I plan to make top bosses a lot smarter when being fought by a heroic group.

If this experiment works, I plan to add more difficulty levels the same way.
13 Jul, 2012, Rarva.Riendf wrote in the 2nd comment:
Votes: 0
How do you deal with group of people with some hero and some not-hero?
And what is the point of making it harder only for hero, are the reward the same ?
13 Jul, 2012, plamzi wrote in the 3rd comment:
Votes: 0
One hero in group is enough to make the whole group heroic. That way, people can 'preview' hero mode by just grouping with one for a while.

Hero gets lots of perks: guaranteed random artifact drops, enhanced artifact drops, special powers, 10 more levels.

Most of the hero artifacts have properties that only heroes can 'unlock', which limits the influence of heroes on the "normal mode" folks.
13 Jul, 2012, Rarva.Riendf wrote in the 4th comment:
Votes: 0
And what is the point in NOT heroing then ?
13 Jul, 2012, plamzi wrote in the 5th comment:
Votes: 0
Rarva.Riendf said:
And what is the point in NOT heroing then ?


Heroes take a major dent in their stats so you have to be a power player with at least one outstanding set of gear to do well as a hero. This is what makes it an end-game feature. Another legitimate reason not to do it is if you find normal difficulty challenging enough. If there's interest, I am planning to add other alternative professions to hero, such as artisan, blacksmith, maybe merchant. Hero levels are very slow, so I'm imagining people would have one or two heroes at most, leaving other alts open to choose other professions.

But this is a digression. The reason I started this thread is I'm curious to hear from folks who have implemented difficulty levels. I think having a layered approach has the potential to make the game more accessible to newbies without making it dull for those who enjoy a challenge.
13 Jul, 2012, Hades_Kane wrote in the 6th comment:
Votes: 0
We have "random battles" in the vein of console RPGs, and it would be trivial to set their levels according to the player level, which we've discussed. We may have dungeons at least levels that will serve to adjust to the player accordingly.

I recently coded a new program command, clone, which basically makes a mob mirror a player in almost every way possible, from copying stats, hp/mp, elemental alignment, equipment, etc. This was added for a specific boss fight (the last stage of promoting from a Knight to a Paladin), but I figured rather than just coding it for that one mob, making it a mobprog command would be a good way to allow others to use it too, but in the particular boss fight in question, the mob is also programmed to fight like the 'knight' class would, using potions and having access to various other skill uses based on the class.

It would also be easy to have a dungeon programmed to where on load, the mobs would clone from the player and such, which may be a more interesting way to adjust difficulty in a dungeon rather than just basing off of level.
13 Jul, 2012, plamzi wrote in the 7th comment:
Votes: 0
Hades_Kane said:
We have "random battles" in the vein of console RPGs, and it would be trivial to set their levels according to the player level, which we've discussed. We may have dungeons at least levels that will serve to adjust to the player accordingly.

I recently coded a new program command, clone, which basically makes a mob mirror a player in almost every way possible, from copying stats, hp/mp, elemental alignment, equipment, etc. This was added for a specific boss fight (the last stage of promoting from a Knight to a Paladin), but I figured rather than just coding it for that one mob, making it a mobprog command would be a good way to allow others to use it too, but in the particular boss fight in question, the mob is also programmed to fight like the 'knight' class would, using potions and having access to various other skill uses based on the class.

It would also be easy to have a dungeon programmed to where on load, the mobs would clone from the player and such, which may be a more interesting way to adjust difficulty in a dungeon rather than just basing off of level.


We have a similar thing, a spell called "mirror image" that conjures a copy of yourself to aid in battles. I could re-use the same code to provide face-offs as an additional challenge–that would be neat for people who are ahead of everyone else. Hmm.

I think a lot of instance-based difficulty level implementations read the character's stats and then generate a dungeon that they would find a good match for their current strength. Diablo's dungeons seem to work this way–I don't think they're only based on level.

As for NPC's that fight like players, I've also been moving in that direction, but on a more global scale. I've been trying to erase many of the (superficial) differences between NPC and player, including access to skills and spells, etc. So, assigning a class to a mob and turning on an AI flag makes them act a bit like a player. Even without the AI flag, warrior class NPC's have all their defensive/passive skills turned on so fighting them feels more like PvP. For newer codebases, this is probably how they start out, but for a CircleMUD, it's progress :)
14 Jul, 2012, Hades_Kane wrote in the 8th comment:
Votes: 0
plamzi said:
So, assigning a class to a mob and turning on an AI flag makes them act a bit like a player. Even without the AI flag, warrior class NPC's have all their defensive/passive skills turned on so fighting them feels more like PvP. For newer codebases, this is probably how they start out, but for a CircleMUD, it's progress :)


We're moving in that direction as well, with a handful of things already in place such as enhanced "spec" special functions, mostly with regards to casting, that make the casting more interactive and like player casting. Right now, things are still largely based on the offense flags, but we do have 'class' flags as well that I have been considering trying to give more of a boost to, with turning on the 'thief' flag may automatically incline the mob toward using things like backstab, smoke bombs, etc. We are definitely working out the 'idea' phase of a "smart" act flag for mobs as well (or perhaps basing it on race… sentient races would automatically be smart) that would handle responses to a lot of player actions along with being more pro-active with other things in battle, such as using potions, picking up a weapon and re-equipping when disarmed, etc.

Those of us in the Diku tree certain have our work cut out for us going this route, but in the end, should totally be worth it.

I've had some positive responses toward those that have tested my "clone" mob thus far, which is encouraging.
14 Jul, 2012, Lyanic wrote in the 9th comment:
Votes: 0
Hades Kane said:
Those of us in the Diku tree certain have our work cut out for us going this route, but in the end, should totally be worth it.

It only takes a decade or so….then you're 75% of the way there - at least until you decide you're unhappy with it and start over. That's my experience, at least.

I've tried most of what's been discussed in this thread (cloning, behavioral flags, class flags, etc), along with more advanced techniques (genetic algorithms, neural networks, inheritance based traits, timing/state based automata, etc). My NPCs are my pride and joy, but even after all the time and work I've put in, I'm not sure I'd call many of them "smart". Complex? Yes. Interesting? Yes. Smart? Eh… Two out of three isn't bad, though. My two main goals are, and have always been, reducing/eliminating distinctions between characters (PC or NPC), and making sure that every NPC I add has something special about it.
14 Jul, 2012, Kline wrote in the 10th comment:
Votes: 0
plamzi said:
Heroes take a major dent in their stats so you have to be a power player with at least one outstanding set of gear to do well as a hero.

Curious, why lower the player instead of buff NPCs in the room with them, instead? It seems a bit anti-climatic to be called a "Hero" yet have your stats blatantly nerfed. I think it would feel "more heroic" to give the NPCS a behind-the-scenes buff rather than show the player how much "weaker" they've become.
14 Jul, 2012, plamzi wrote in the 11th comment:
Votes: 0
Kline said:
plamzi said:
Heroes take a major dent in their stats so you have to be a power player with at least one outstanding set of gear to do well as a hero.

Curious, why lower the player instead of buff NPCs in the room with them, instead? It seems a bit anti-climatic to be called a "Hero" yet have your stats blatantly nerfed. I think it would feel "more heroic" to give the NPCS a behind-the-scenes buff rather than show the player how much "weaker" they've become.


It's all in the presentation. No-one is blatantly nerfed–they see their stats same as they always were, ever increasing as they start collecting the more powerful hero gear. But when combat is calculated, their armor and damage dealing is decreased in ways that vary from class to class. The effect is that the mob seems harder.

The reasons I nerf covertly are two: 1. The mob is the same for everyone so, for example, if a hero abandons it, anyone else can finish it off. 2. It allows me to fine-tune classes so they would experience roughly the same increase in difficulty even though they may have different combat behaviors.
14 Jul, 2012, Rarva.Riendf wrote in the 12th comment:
Votes: 0
Quote
But this is a digression. The reason I started this thread is I'm curious to hear from folks who have implemented difficulty levels. I think having a layered approach has the potential to make the game more accessible to newbies without making it dull for those who enjoy a challenge.

You see it as a digression I see this as the main subject: Basically you now have two classes of players that cannot compete with each other because they do not have access to the same items. Maybe you do not have pvp, that would explain you do not care.
This is not a diffulty problem as making a mob harder/smarter/whatever) depending on who fight it is trivial: (I do not do it as I like a consistant behaviour) but it is trivial to analyse the group fighting the mob at the first aggressive command (well trivial in my code, all of them go trhough a single method to detect if you can start the fight to begin with) and scale it, and at the end of the fight (easy as well as to go from a fighting status to a not fighting status is in a single entry point), revert it to its base status percentage, so that next player encountering it see it at 50% health again, max health being different than for previous group that fled). Same for mob levels etc.
In the game I have, difficulty is simply to have an end game that is hard enough that even the highest level player have a hard time going trhough at ease. Lower player can still make it, but with largers groups.
Having areas react differently for different players just feel weird, as if you push the thing a little, you can have all areas used by every kind of level.
Feels very weird to have a newbie fighing the same crab you do next to you…(and even feel weirder when you die from it, but not him…)
14 Jul, 2012, Kline wrote in the 13th comment:
Votes: 0
plamzi said:
It's all in the presentation. No-one is blatantly nerfed–they see their stats same as they always were, ever increasing as they start collecting the more powerful hero gear.


Gotcha; sorry that wasn't clear from your OP. A lot of gaming is indeed presentation. Might consider a "DBZ Numbers" toggle mode for players that just displays everything multiplied by 10,000 *snicker*. With your presenting this though, are players still seeing increasing damage numbers and stuff? Or do they just see their attributes go up but, "Hey, wait, I'm still hitting for 100 damage just like 5 levels ago!"?
15 Jul, 2012, Ssolvarain wrote in the 14th comment:
Votes: 0
Was just thinking..
On End of Time we use a snippet that lets us auto-set a mob's stats based on its level. Couldn't you use it to make a new act/whatever flag to set a mob's level charlevel+5 (or whatever) and autoset its stats accordingly before loading it?
15 Jul, 2012, plamzi wrote in the 15th comment:
Votes: 0
Kline said:
plamzi said:
It's all in the presentation. No-one is blatantly nerfed–they see their stats same as they always were, ever increasing as they start collecting the more powerful hero gear.


Gotcha; sorry that wasn't clear from your OP. A lot of gaming is indeed presentation. Might consider a "DBZ Numbers" toggle mode for players that just displays everything multiplied by 10,000 *snicker*. With your presenting this though, are players still seeing increasing damage numbers and stuff? Or do they just see their attributes go up but, "Hey, wait, I'm still hitting for 100 damage just like 5 levels ago!"?


We don't show the exact damage dealt per blow, just the name for a range (massacre, mutilate, obliterate, annihilate, etc.) Heroes do see their blows go down from annihilate to massacre, sometimes even less. I could have added more damage messages to hide the nerf to battle damage but chose not to. This way first-time heroes kind of revisit the excitement of building up their first ever character, and they know they have work ahead of them to get to the ultimate hero set. This also saves me from having to come up with battle messages for an endlessly increasing scale (I don't know what's more damage than "annihilate", heh).

It's true that a non-hero will have much less trouble toppling a boss, even with lesser gear (heroes only get exp from top boss kills). But non-heroes won't get nearly the same reward, and also they now won't get the same respect that a hero would. The people who have so far hero'ed love the fact that they can revisit all of the end-game content in a much more challenging way, and they also love being guaranteed a reward for their labors (whereas non-heroes have it easy, but get artifact drops only rarely). Heroes will love it even more when they start getting quality drops that can benefit non-heroes (happens at higher levels). At that time, they'll start dominating the economy and everyone who doesn't have at least one hero will feel like a rookie, even if they have level 60 alts in all 14 classes. Considering the vast difference in difficulty level, they will be right.

Ssolvarain said:
Was just thinking..
On End of Time we use a snippet that lets us auto-set a mob's stats based on its level. Couldn't you use it to make a new act/whatever flag to set a mob's level charlevel+5 (or whatever) and autoset its stats accordingly before loading it?


Right, but I think that at the end of that approach lies instancing. You'd need to worry about when to spawn and clean up the upgraded mob, and how to make sure only certain players can access them… Pretty much everyone ends up instancing an area on entry, which is the simplest way to design something like this. I'm not sure how I would go about instancing mobs only.
16 Jul, 2012, Runter wrote in the 16th comment:
Votes: 0
It's okay to have completely separate instances for "heroic" content, and it's far more simple, and you can do more interesting things. So what problem are you actually solving by letting heros slaughter would-be newbie npcs with the newbies in the same zone? I can think of at least a few reasons why this wouldn't be a positive experience for newbies.

"They're still fighting the same newbie content at max level?"
"They're struggling this much on newbie content at max level?"
"Why are max level players clearing the zone intended for low level players to get a foot hold in the game?"

So, I haven't seen any actual reason no to give "heroic content" it's own instance, and there's a lot of obvious ones for doing it.
16 Jul, 2012, KaVir wrote in the 17th comment:
Votes: 0
"One hero in group is enough to make the whole group heroic", and "When a mob without HEROFODDER flag gets struck by a hero, it gets fully healed". So you could have achieved the same result by making the HEROFODDER flag give the mob a buff.

The main advantage of nerfing the player instead of buffing the mob is that it lets heroes group with newbies, and both face a comparable challenge. For a mud with a small playerbase that wishes to promote cooperative play, this could prove beneficial. However you could also achieve that by having some sort of "heroic aura" which the newbies gain from grouping with the hero.

But what if a high-level non-hero walks into the room and lays the smack down on the mob? It's going to make the heroic character look pretty feeble by comparison.

On a similar note ("heroic" content) I've recently been working on random dungeons - although these have been in place for years, previously only the layout was random. The new version also has randomly generated mobs. All I do is specify a power level for the dungeon, and it generates the population. The dungeons appear in a random location (the location they appear currently determines how tough they are), and vanish when completed, but while they're there anyone can enter them. I've been thinking of making them multi-level, so the deeper you go the tougher the opponents become.
16 Jul, 2012, plamzi wrote in the 18th comment:
Votes: 0
Runter said:
It's okay to have completely separate instances for "heroic" content, and it's far more simple, and you can do more interesting things.


You're entitled to your opinion, although I have to say that calling instancing "far more simple" than a flag that you check in two lines in about a dozen places, well, I don't see how anyone can make that argument. Also, I'm sure you know that instancing comes with its set of drawbacks, the most fundamental one being that the world loses its consistency. I didn't feel comfortable going in that direction.

But this thread is not about me telling people to implement something like that, or wondering whether to do it, or asking if people see downsides to it. This is done, it's been really well-received, and I was just wondering if anyone else did something like it. That's all.

Runter said:
So what problem are you actually solving by letting heros slaughter would-be newbie npcs with the newbies in the same zone? I can think of at least a few reasons why this wouldn't be a positive experience for newbies.

"They're still fighting the same newbie content at max level?"
"They're struggling this much on newbie content at max level?"
"Why are max level players clearing the zone intended for low level players to get a foot hold in the game?"

So, I haven't seen any actual reason no to give "heroic content" it's own instance, and there's a lot of obvious ones for doing it.


The problem I'm solving with the hero flag is I'm adding a whole new level of difficulty to existing content with very little code. This lets me scale the game in a much more flexible way–let new players have it easy to draw them in, while keeping people with 1+ years invested in the game entertained. And I'm doing this without having to add content that is exclusive to some players (which I see as a huge waste).

There are several reasons why the situation that you and Rarva are describing can never arise. First, heroes only gain experience when they kill one of about 20-25 top-level mobs (we call them reputation mobs). Second, they only get random drops if they kill high-level mobs. So, they have absolutely no incentive to hang around anywhere but in the end-game zones. Even if they do–for kicks–try to kill the same level 1-10 mobs that a newbie trains on, if they can't do much better (with all their skills and powers, and their best gear set), then they have hero'ed prematurely.

What's actually happening is heroes (60-70) hang out with "hero candidates" (60 non-heroes) and the relationship is mutually beneficial. Heroes need firepower, and the non-heroes can get part of the loot that they can make use of (most of the loot is hero-only). The non-heroes can also "preview" how well they'll do if they become a hero themselves. If they want to go back to "easy mode", they just have to walk out of the group/room.

KaVir said:
"One hero in group is enough to make the whole group heroic", and "When a mob without HEROFODDER flag gets struck by a hero, it gets fully healed". So you could have achieved the same result by making the HEROFODDER flag give the mob a buff.


That's true. But it's a lot easier for me to do it this way (2 lines) as opposed to figuring out by how much to buff all bosses, each with their different set of attacks, weaknesses, etc.

KaVir said:
The main advantage of nerfing the player instead of buffing the mob is that it lets heroes group with newbies, and both face a comparable challenge. For a mud with a small playerbase that wishes to promote cooperative play, this could prove beneficial.


That's correct (and perceptive), if by newbies you mean people who have played the game for at least a year and reached max (normal) level on at least 3-4 classes. Even the first handful of heroes were able to form groups easily (guaranteed random drops are a huge attraction) but they need top-notch assisters because the whole party has to do well at the higher difficulty level.

KaVir said:
However you could also achieve that by having some sort of "heroic aura" which the newbies gain from grouping with the hero.


Well, in a sense, the hero flag is exactly "a heroic aura". We have some auras, and they work pretty much the same way code-wise. If you have auras that don't use flags, then that's probably just another way of achieving the same effect.

KaVir said:
But what if a high-level non-hero walks into the room and lays the smack down on the mob? It's going to make the heroic character look pretty feeble by comparison.


The hero "aura" applies to the room. But the two can fight in neighboring rooms and experience the content differently. Initially, people had a problem with that because it "exposed" the hero mode as a nerf. But once the drops started flowing for heroes, the tune changed. Now nobody cares if you solo'ed a top boss in "normal" mode. The experience is exactly what I hoped it would be: two difficulty levels co-existing on the same content.

KaVir said:
On a similar note ("heroic" content) I've recently been working on random dungeons - although these have been in place for years, previously only the layout was random. The new version also has randomly generated mobs. All I do is specify a power level for the dungeon, and it generates the population. The dungeons appear in a random location (the location they appear currently determines how tough they are), and vanish when completed, but while they're there anyone can enter them. I've been thinking of making them multi-level, so the deeper you go the tougher the opponents become.


As an aside, I also have something along the same lines (I call it "dimensions") that is almost ready to go live. It will be mostly end-game content but I don't need to make it exclusive to heroes. For "normal difficulty" folks, those can be good hunting grounds to gear up for when they decide to kick it up a notch.
17 Jul, 2012, Rarva.Riendf wrote in the 19th comment:
Votes: 0
Quote
First, heroes only gain experience when they kill one of about 20-25 top-level mobs (we call them reputation mobs). Second, they only get random drops if they kill high-level mobs. So, they have absolutely no incentive to hang around anywhere but in the end-game zones.

This is a very important point you should have made to avoid our answers. Means the code is not that generic, and that it implies building at some stage. (cherry picking the mobs). More work than just setting some flags or a spec_hero on a mob, that I think could achieve everything you are describing, but in only one place codewise.
17 Jul, 2012, Runter wrote in the 20th comment:
Votes: 0
It sounds like you're happy with what you've got going so that's great. I'm not saying anything you are doing is wrong. Different designers will have different motivations for what they decide to do. My experience with games that attempt to recycle content by having moving targets wrt the difficulty players see in the content is that it makes the experience more stale and takes some of the magic of completing hard content out. I much prefer when difficult and challenging content is specifically designed to be challenging and difficult, and is totally new. I've changed a lot on my view of this over the years, but it's really just because I've found what I personally enjoy as a player and what I don't. So the project I'm involved in right now I'm working on I intend to have end game content that is designed specifically for that purpose. Also, I much prefer when the content has multiple ways to play it rather than multiple modes. For example, a boss encounter with 2 ways to win. 1 being much more difficult to achieve, but resulting in an additional item being dropped from the loot table.

Here's a silly example of what I mean:

A fight against an ogre with a locked (for our purposes inaccessible) treasure room below the area the fight occurs.

Ogre has a devastating "ground pound" attack that deals massive AOE damage, but it's easy to stun the ogre to prevent the attack from being used. Which would be the easier way to finish the encounter.

So the first reward would be killing the ogre and receiving an item. The second reward would require the players to allow the ogre to have ground pounded X number of times throughout the fight so that the treasure room is unearthed. Receiving the second item.

This is how I'm handling content in the project I'm working on.
0.0/22