Main Menu

New efforts!

Started by Ironwolf, March 06, 2014, 03:01:32 PM

GenericHero05

Quote from: Brigadine on January 30, 2016, 08:41:53 AM
Oh dear god look at the two pages of zombie talk I started...

Sweet jumping Moses... think before you post!   ;D
If I was a Jedi, there's a 100% chance that I'd use The Force inappropriately.

LaughingAlex

In that post Arcana you make me think of the Skinner box:

https://www.youtube.com/watch?v=tWtvrPTbQ_c

I swear so many games these days use these, it's kind of sad really, since people keep playing even without having fun, they get ticked off and angry when things go wrong way to easily in many games.
Currently; Not doing any streaming, found myself with less time available recently.  Still playing starbound periodically, though I am thinking of trying other games.  Don't tell me to play mmohtg's though please :).  Getting back into participating in VO and the successors again to.

Joshex

#22382
Quote from: Arcana on January 31, 2016, 09:04:28 PM
So those dev teams encourage developers to implement their own visions for how things should work.  Any game designer worth anything at all will want to implement their own ideas more than copy someone elses.  That's why you get into the business in the first place.  So while they might copy ideas they see, they will tend to copy the ideas they believe in, and try to put their own spin on them.

Speaking of this I have a few questions that probably only you or maybe someone on the Paragon Chat and or Mids team might be able to answer.

when it comes to battle I know we are only allowed to effect a max of 15 enemies at a time (I know there was a time when you could effect more)  and that outside of that it's impossible to gain agro (you can stand in their face and they don't move) this leads me to believe the flip side of the coin is true that only 15 targets (including their pets) can attack a player at any given time, is that correct? and is the same true for enemies that only 15 targets (and their pets) can attack any one enemy at any given time (I can't remember)?

if that is true, what would be the combat system message received by the 16nth player that tried to attack the target?

and also if it were true, (this is probably best handled by you Arcana;) what was the system set-up for it? was it a 'table'/list with 15 rows/entries that logged target names that could effect it? did targets (on server side) look for a spot on the table/list and if there wasn't one return the error to the client?, Under what circumstances was a name cleared off the table/list?

or did it use a different system?
There is always another way. But it might not work exactly like you may desire.

A wise old rabbit once told me "Never give-up!, Trust your instincts!" granted the advice at the time led me on a tripped-out voyage out of an asteroid belt, but hey it was more impressive than a bunch of rocks and space monkies.

blacksly

Quote from: Joshex on February 01, 2016, 07:05:01 AMonly 15 targets (including their pets) can attack a player at any given time, is that correct? and is the same true for enemies that only 15 targets (and their pets) can attack any one enemy at any given time

Each power individually could only affect X targets (15 was the top end in general, I believe). But if you have 20 targets in a spot and you throw down a location-based power such as Volcanic Gases, there is nothing to prevent the power from eventually attacking all 20 targets. It's not about aggro-mechanisms or a hate list. A single Fireball can only hit 15 targets, but if there are 40 mobs in the area, and all of them individually pick up to 15 characters to put on their hate list and throw a Fireball at their preferred target, then a character in the middle might get hit by all 40 Fireballs. So while only 15 mobs can target you as the target of their attacks, you can still get hit by splash damage from more powers.

When a power reaches its target limit, it just stops. If there are 20 targets in a Fireball's area, it stops when it damages 15 of them. There is no message sent to those that are not attacked because the Fireball reached its limit.

Arcana

Quote from: Joshex on February 01, 2016, 07:05:01 AMwhen it comes to battle I know we are only allowed to effect a max of 15 enemies at a time (I know there was a time when you could effect more)  and that outside of that it's impossible to gain agro (you can stand in their face and they don't move) this leads me to believe the flip side of the coin is true that only 15 targets (including their pets) can attack a player at any given time, is that correct? and is the same true for enemies that only 15 targets (and their pets) can attack any one enemy at any given time (I can't remember)?

You're talking about two different things.  First of all, all player powers that affect an area rather than a target have a target cap.  It is not always 15.  At one point the devs actually explicitly made it a point to set the *highest* target cap to 15 for the largest AoEs, although some have a lower cap.  But then Incarnate powers came along and powers like Judgment have a higher target cap again.

Those caps represent the maximum number of targets those powers can affect within their area of effect.  The way City of Heroes works is that starting from the origin point of the AoE (which is the player for cones and the center of the AoE for spherical AoEs inclulding PBAoEs) the CoH engine locates targets within the AoE and at increasing distances from the origin.  For each such qualifying target found (the power must be allowed to affect that target) the engine rolls for tohit if necessary (i.e. the power is not auto-hit) and if it hits the engine calculates the effects on the target.  If the count of targets affected equals the max target of the power, the engine stops looking for targets.

NPCs themselves only attack a player if the player is the highest entity on their aggro list.  Basically, every NPC has a list of targets it will attack, based on a number of factors.  If the player is the highest thing on that list, the NPC attacks him or her.  However, the devs added an aggro limit to CoH to reduce herding, and this prevents more than 17 (not 15) NPCs from aggroing onto the same player.  If 17 NPCs are currently aggroed onto the player, the 18th NPC will find that player suppressed from his aggro list.  If that NPC has other entities on his aggro list it will proceed to attack them.  If not, the NPC will literally just stand there as if the player was not there.


Quoteif that is true, what would be the combat system message received by the 16nth player that tried to attack the target?

There is no limit on the number of *players* that can attack a specific target, only on the number of NPCs that will aggro a specific player.  A hundred players could all simultaneously attack Hamidon without problems (except for lag, of course).


Quoteand also if it were true, (this is probably best handled by you Arcana;) what was the system set-up for it? was it a 'table'/list with 15 rows/entries that logged target names that could effect it? did targets (on server side) look for a spot on the table/list and if there wasn't one return the error to the client?, Under what circumstances was a name cleared off the table/list?

The precise mechanics for how this works may be more of a Codewalker question than me: I know how it works, but not precisely how it was implemented in the engine.  From a pure efficiency perspective however, I would conjecture that aggro tables were global to a mapserver/zone and the system simply prevented the same id number from showing up more than seventeen times in that table as an aggro target.

Ironwolf

Except the conga line herding you could do as a tank.

Punchvoke + constant moving could actually affect more than 17. No, I don't know how it worked exactly but by constantly attacking and moving rapidly with combat jump + run you could engage more than 17 and hold them onto you. I called it the conga line because you ran in a circle hitting constantly and jumping back and forth.

Like doing a donut on a car fishtailing all over.

Aggelakis

You never actually affected more than 17 at a time, you just adjusted which 17 it was at any given moment. As soon as you dropped off Enemy A's threat list, you popped up on Enemy Z's threat list and your teammate took over Enemy A.
Bob Dole!! Bob Dole. Bob Dole! Bob Dole. Bob Dole. Bob Dole... Bob Dole... Bob... Dole...... Bob...


ParagonWiki
OuroPortal

Joshex

Quote from: Arcana on February 01, 2016, 10:07:12 PM
You're talking about two different things.  First of all, all player powers that affect an area rather than a target have a target cap.  It is not always 15.  At one point the devs actually explicitly made it a point to set the *highest* target cap to 15 for the largest AoEs, although some have a lower cap.  But then Incarnate powers came along and powers like Judgment have a higher target cap again.

Those caps represent the maximum number of targets those powers can affect within their area of effect.  The way City of Heroes works is that starting from the origin point of the AoE (which is the player for cones and the center of the AoE for spherical AoEs inclulding PBAoEs) the CoH engine locates targets within the AoE and at increasing distances from the origin.  For each such qualifying target found (the power must be allowed to affect that target) the engine rolls for tohit if necessary (i.e. the power is not auto-hit) and if it hits the engine calculates the effects on the target.  If the count of targets affected equals the max target of the power, the engine stops looking for targets.

NPCs themselves only attack a player if the player is the highest entity on their aggro list.  Basically, every NPC has a list of targets it will attack, based on a number of factors.  If the player is the highest thing on that list, the NPC attacks him or her.  However, the devs added an aggro limit to CoH to reduce herding, and this prevents more than 17 (not 15) NPCs from aggroing onto the same player.  If 17 NPCs are currently aggroed onto the player, the 18th NPC will find that player suppressed from his aggro list.  If that NPC has other entities on his aggro list it will proceed to attack them.  If not, the NPC will literally just stand there as if the player was not there.


There is no limit on the number of *players* that can attack a specific target, only on the number of NPCs that will aggro a specific player.  A hundred players could all simultaneously attack Hamidon without problems (except for lag, of course).


The precise mechanics for how this works may be more of a Codewalker question than me: I know how it works, but not precisely how it was implemented in the engine.  From a pure efficiency perspective however, I would conjecture that aggro tables were global to a mapserver/zone and the system simply prevented the same id number from showing up more than seventeen times in that table as an aggro target.

thankyou very informative!

Quote from: Aggelakis on February 02, 2016, 05:38:45 AM
You never actually affected more than 17 at a time, you just adjusted which 17 it was at any given moment. As soon as you dropped off Enemy A's threat list, you popped up on Enemy Z's threat list and your teammate took over Enemy A.

hmm so it is a list, that would make sense, would still like Codewalker to chime in and maybe clarify the threat list system.
There is always another way. But it might not work exactly like you may desire.

A wise old rabbit once told me "Never give-up!, Trust your instincts!" granted the advice at the time led me on a tripped-out voyage out of an asteroid belt, but hey it was more impressive than a bunch of rocks and space monkies.

Codewalker

AI was all serverside. The best we can do is make an educated guess about how it worked.

What I do know about the engine is that a lot of stuff resets every tick of the combat clock. Attributes all go back to 0 (or 1.0 or whatever its base value is), attibmods are applied, and everything gets totaled back up again.

Extrapolating from that, I'd expect something along the lines of each entity having a 'this many AIs targeting me' counter that gets set to 0 every tick, and incremented every time a critter chooses that entity as a target. Once it's higher than a certain value, that entity becomes ineligible to be selected as a target, so any critter that has it at the top of the threat list has to go to the next one down.

The observed aggro cap behavior was that which NPCs were attacking and which were not tended to shift frequently, not quite random but with no obvious pattern like distance from target.

One notable fact is that it's definitely not limited to players. This was frequently a problem in Incarnate trials with multiple masterminds and controllers. As the trials typically had stages with only a single hard target to fight, pets were observed to often stand around being useless once there were enough of them to exceed the aggro cap, even ignoring Mastermind commands to attack. The fact that it wasn't fixed suggests the cap was hardcoded into the AI and not something that could be adjusted for specific critters.

Noyjitat

It might be server side but you probably still know where to begin in coding it dontcha?

Ironwolf

Quote from: Codewalker on February 02, 2016, 02:49:38 PM
AI was all serverside. The best we can do is make an educated guess about how it worked.

What I do know about the engine is that a lot of stuff resets every tick of the combat clock. Attributes all go back to 0 (or 1.0 or whatever its base value is), attibmods are applied, and everything gets totaled back up again.

Extrapolating from that, I'd expect something along the lines of each entity having a 'this many AIs targeting me' counter that gets set to 0 every tick, and incremented every time a critter chooses that entity as a target. Once it's higher than a certain value, that entity becomes ineligible to be selected as a target, so any critter that has it at the top of the threat list has to go to the next one down.

The observed aggro cap behavior was that which NPCs were attacking and which were not tended to shift frequently, not quite random but with no obvious pattern like distance from target.

One notable fact is that it's definitely not limited to players. This was frequently a problem in Incarnate trials with multiple masterminds and controllers. As the trials typically had stages with only a single hard target to fight, pets were observed to often stand around being useless once there were enough of them to exceed the aggro cap, even ignoring Mastermind commands to attack. The fact that it wasn't fixed suggests the cap was hardcoded into the AI and not something that could be adjusted for specific critters.

This is why if you kept moving taunting and striking foes with a tank - it was possible to agro more than 17 - as they attack the powers take time to execute - so unless I am wrong they could not attack again until the power fired - once it did another queued and you could hold agro during those times.

I know I could do it - but am not sure exactly why.

chuckv3

Quote from: Ironwolf on February 02, 2016, 06:39:24 PM
This is why if you kept moving taunting and striking foes with a tank - it was possible to agro more than 17 - as they attack the powers take time to execute - so unless I am wrong they could not attack again until the power fired - once it did another queued and you could hold agro during those times.

I know I could do it - but am not sure exactly why.

I think there was a cap PER ATTACK, but not a cap overall. For both of the tanks I played semi-regularly, many attacks were slotted specifically to be secondary taunts. I sure remember holding more than 17 at a time, but who has time to stop and count when in the middle of a fight?

Vee

Quote from: Ironwolf on February 02, 2016, 06:39:24 PM
I know I could do it - but am not sure exactly why.

Devhax?!?!!!!

Arcana

Quote from: Ironwolf on February 02, 2016, 06:39:24 PM
This is why if you kept moving taunting and striking foes with a tank - it was possible to agro more than 17 - as they attack the powers take time to execute - so unless I am wrong they could not attack again until the power fired - once it did another queued and you could hold agro during those times.

I know I could do it - but am not sure exactly why.

It is pretty difficult to actually track what seventeen+ NPCs are doing at all times.  Like with human eyeballs and brains.  When you think you have more than 17 aggroed, you probably don't.  But you may not see direct evidence of this because if you have an NPC aggroed, and then you don't, that NPC you lost aggro on won't necessarily instantly do something you'd notice as losing aggro.  They still have to aggro something else, and they still have to decide to do something about it, and enemy NPCs sometimes had a time delay associated with selecting what to do when switching targets.  If *everyone* is moving, not just you, there's an additional problem the AI used to have where the AI could get confused between wanting to use ranged attacks and wanting to move into melee to use melee attacks.  All of this could contribute to the belief you had actual aggro control on more than 17 targets, when what you had was a fluctuating set of aggro on a number of targets with only 17 actually held at any moment, but the other targets in a transition state of preparing to act on other targets and not actually attacking anything.

Pyromantic

Quote from: Arcana on February 02, 2016, 07:32:27 PM
It is pretty difficult to actually track what seventeen+ NPCs are doing at all times.  Like with human eyeballs and brains.  When you think you have more than 17 aggroed, you probably don't.  But you may not see direct evidence of this because if you have an NPC aggroed, and then you don't, that NPC you lost aggro on won't necessarily instantly do something you'd notice as losing aggro.  They still have to aggro something else, and they still have to decide to do something about it, and enemy NPCs sometimes had a time delay associated with selecting what to do when switching targets.  If *everyone* is moving, not just you, there's an additional problem the AI used to have where the AI could get confused between wanting to use ranged attacks and wanting to move into melee to use melee attacks.  All of this could contribute to the belief you had actual aggro control on more than 17 targets, when what you had was a fluctuating set of aggro on a number of targets with only 17 actually held at any moment, but the other targets in a transition state of preparing to act on other targets and not actually attacking anything.

When you say the AI used to have this problem, was it fixed towards the end?  Just curious.

Arcana

Quote from: Pyromantic on February 02, 2016, 07:45:37 PM
When you say the AI used to have this problem, was it fixed towards the end?  Just curious.

Somewhere around I18-I19ish it was changed to make it far less likely the AI would get confused when trying to decide what action to take.

hurple

Quote from: Arcana on February 02, 2016, 08:01:05 PM
Somewhere around I18-I19ish it was changed to make it far less likely the AI would get confused when trying to decide what action to take.

That would explain why my hero, AI Confusing Man, suddenly became less effective.

Arcana

Quote from: hurple on February 02, 2016, 09:55:46 PM
That would explain why my hero, AI Confusing Man, suddenly became less effective.

One of the mysteries I still contemplate, for which I have conjectures but no proof, is that my calculations suggested that the AI change would have had the global effect of everyone suddenly fighting NPCs that were about half a level higher.  In other words, the game would have cranked up the difficulty in what should have been a noticeable way.  Except absolutely no one noticed.  Not newbees, not experienced players: no one.

I believe this supports a theory of mine I had been developing for years regarding City of Heroes, that within certain boundary conditions what we would call "difficulty" wasn't set by the game, but was set by the psychology of the players themselves.  That even cranking a knob that increased the combat modifier to +1 wasn't simply a matter of the NPCs hitting harder and more often, but the effect that had on player psychology and how players reacted to that difficulty actually had a stronger impact on overall game difficulty than the raw numbers would suggest.  That's why increasing blaster damage didn't decrease blaster deaths, why more defense sometimes translated into more offense and sometimes did not, why Health (the power) seemed so insignificant, why SR and Regen had such radically different reactions to similar quantitative problems.

It may seem obvious in principle, but the details of how it seemed to work were not obvious at all.  In fact, a corollary of my theory is that it was actually possible to increase the numerical difficulty of the game and yet make it *easier* for players to combat that difficulty if the user interface was changed in just the right way, even though those changes granted exactly no more information and no better control over the character.  Consider the health bar.  It is always the same size regardless of how much health your character has.  As you level, your maximum health increases but the bar stays the same size.  When you use powers like Dull Pain the bar doesn't get bigger: it stays the same size but it just represents more health.  All damage is visually recorded as a proportion of a full bar of health.  That means when you use Dull Pain the same damage causes less movement in the Health bar than it did before, because that damage is a smaller percentage of health.  In fact, this is a visual representation of the mathematical fact that increased health is quantitatively identical to some value of damage resistance, with some compensating factors.

But what if it wasn't so?  Suppose the health bar grew visually longer or shorter based on certain conditions?  That bar would still be conveying the same *mathematical* information, but would be conveying it in a psychologically different way.  Would that influence gameplay?  I'm sure it would.  The question is could it do so in a way that steered players into making better combat decisions without consciously being aware of that fact, and thus make it seem to the player as if the game was easier than before?  I think the answer to that question is "yes." The details of how to do so are kind of long-ish, however.

That would make for an interesting game design masters research project, if anyone is looking for one.

Codewalker

Quote from: Arcana on February 02, 2016, 10:27:14 PM
In other words, the game would have cranked up the difficulty in what should have been a noticeable way.  Except absolutely no one noticed.  Not newbees, not experienced players: no one.

I think I noticed. I definitely noticed that Malta Hercules/Zeus Titans suddenly became an actual threat instead of something that could be ignored and dealt with last. Assuming of course, that the AI fix is what caused them to start using their fast-ticking DoT missiles much more reliably, but the time frame sounds about right.

Golden Aurora

I rememebr it mostly from the AE mobs. As soon as you entered their aggro radius you would have a crap load of throwing knives or whatever flung at you even if they were melee mobs. It used to mean I had plan accordingly when I first charged in before I had my buffs up.

I remember thinking it was cheap, actually. I mean it makes sense that they used their available attacks first.. but one would imagine at least SOME mobs would charge you. The majority of them just flung crap at you until you got in melee range or their powers were on cooldown.