Repost : Interaction Design : Action and Reaction back to the Basics

The Basics

This one is going to get a bit symbolic/math-y and I will be pulling some numbers from averages of personal experience and from what I can find on the web a large.

At the most basic level all game play become a simple 2 part procedure: action/reaction, cause/effect, stimuli/response.  So to keep things simple for now lets completely ignore actually making a mistake and reacting in the wrong way.

This gives us this:

Action Longrightarrow Reaction

We can then define Reaction Time as the average of the time it takes to convey the Action added to the average of the time to React to the Action.  I use average here because there are several other things going on in both the Action and the Reaction.

Action Side of the Process

So on the action side of the equation the main compounding factor that adds time to the process is Latency.  From my experience given my location in the US, the average latency that I experience to my server is about 125ms.  I have sometimes had it as low as 70ms and not usually higher than 180ms.  To state simply the Latency component is 125ms, a more accurate way of stating the range is 125 +/- 55ms.

An additional factor that can affect the network latency and Action timing would be processor/graphics lag.  If your computer is under-powered in either raw processor power or the graphics card power it can also cause some lag especially in the graphics side.

This side of the equation is simple and the most straightforward of the entire evaluation.

Action = (vartriangle Latency) + (vartriangle CPU Latency)

Reaction Side of the Process

This is where it gets complicated and has the greatest amount of variability across the player base.  This is also where the majority of the “difficulty” of the game comes into play or is at least emulated.

Interpretation of Action

When first reacting to a stimulus you first have to notice or be aware of the event to which you are suppose to react.  For our purposes here lets call this factor Identification Time (IDt) and since this can vary between players in general we will be using an average which gives us the following symbol for later use.

 vartriangle IDt

Now if given a blank background and a high contrast visual reference or a silent room with one sound to signal the event, we can in general take it that the IDt will be somewhat consistent for any given player.  However we know that this is for the most part not true.  Yes there are add ons that will still play a sound when all other sounds are turned off but the average player does not use them.  Additionally if it is a visual cue or effect to be aware of there are many factors that can make it hard to see or notice.

First lets talk about Firelands and that almost everything is a shade of red.  You have to look for the red glowing make on the ground that is different from the other friendly red marks on the ground not to mention which layer of the texture effects separate it out of the yellow holy, green nature, and white light of the healer effects that you do want to stand in.

All of these sound and visual complications help to hide or make it hard to ID the event to react to, for sake of this discussion I will call this Event Obfuscation.  Again the amount of obfuscation is varies greatly between players based upon many metrics and reasons.  User Interface, Screen Resolution, Graphics Detail Settings, Particle Effects, and many others.  This leaves us with the following symbol for the sake of this post.

 vartriangle EOb

Given that this is a compounding factor on the Identification time we end up with the following for Interpretation of Action part of the Reaction side of the equation.

 Int Action = (vartriangle IDt * ( 1 + vartriangle EOb))

Decision of Response

Now we are at the point where the server has communicated an event has triggered and we have identified what the event is.  What we do here is decide what we have to do about it.  The simplest would be nothing and just continue on as we were.  So to represent the simplest case we will say the average of just doing the same and we will call it the base response.

 vartriangle BR

Many times in a raid we do not have the simplest case.  There is an additional complication at this step and I am going to go out on a limb here give a formula that is just my guess as to a trend in how much the number of options that are possible and parameters to consider when making an actual reasoned reaction.  This would especially be true when learning new fights before the programmed and reflex memory gets taken into consideration.

If we make a fully connected graph with N nodes where each node is a variable to consider and the number edges are the processing penalty to fully contemplate a solution the time multiplier to apply to our base response.  We will call it processing delay (PD).

 PD = N!

When we go to make the decision we don’t contemplate the extraneous and extremely unlikely options so already some of the N are limited.  I don’t have any numbers to prove any of this I am just thinking here so I will limit the PD to a more reasonable value as the following.

 PD = log N!

So our complete Decision of Response time would be the following.

 (PD)*(vartriangle BR)

Now about the log of N factorial as a limiting multiplier on the decision process was to keep the number realistic because there really end up being tipping points where when people get under pressure too much they will end up just picking something at random to react for the sake of reacting.  This can also be considered a face rolling moment.

Time Required to Perform Reaction

The last thing to do after you identify something to react to and then decide what you need to do what is left is actually doing the action (PR).  This is a pretty straight forward variable.

vartriangle PR

Now the time to perform the reaction required can vary greatly between classes and positioning of said classes.  Mages, Warlocks and Hunters have some of the shortest times, as long as the environment allows for it to work.  I refer to Blink, Demonic Circle and Disengage.  Most classes will need a set amount of time to get out of the fire so to speak.  Now when tuning an encounter for a normal mode this time allocation should be pretty generous to allow players to have sufficient time to get out of the way.  Additionally what ever warning that is given should also have some graphic representation of where the safe and the harmful zone is, especially if it is a one shot power or near one shot.  This component was completely overturned at release for Cataclysm for Heroic The Stonecore or as myself and many others referred to it as StoneWhore.

So putting it all together we get the following.

 TotalTimeForEventReaction=(2*((vartriangle Latency)+(vartriangle CPU Latency)))+(vartriangle IDt * ( 1 + vartriangle EOb))+((PD)*(vartriangle BR))+vartriangle PR

Or the Total Time for Event Reaction is equal to 2 times the total latency plus the time to identify the event plus the time it takes to decide what to do about the event and then plus the time to actually implement the decision, movement or cast time.

What does it all mean?

In the end not much Blizzard will do what Blizzard will do.  Also the players will do what the players will do.  Blizzard says that they have needed to make encounters more difficult and complex because we started to use addons.  However players started to use addons to make up for limitations in the interface and to simplify their decision trees.  So we have had an arms race on both sides and we ended up with Cataclysm after a few expansions.

Like and don’t like what they are doing with the random raid finder, while interesting and a useful tool it is more of a band-aid on a gushing wound.  The wound needs reconstructive surgery and in one of my last posts I stated my opinion that the solution should be 1 raid size between the 2 current sizes and let the player base adjust to that one size and be done with it.  I wish for that because it would then allow them to focus on building multiple levels of difficulty per each boss encounter for different amounts and levels of rewards based upon difficulty and not raid size.

I ultimately think that it is almost a lost cause for Warcraft, I just hope they learn from all of these issues with project Titan what ever it may be.

Posted in World of Warcraft

2 comments on “Repost : Interaction Design : Action and Reaction back to the Basics
  1. Feliz says:

    #nbimmo brought me here

    Great to see a post going into the timing algorithms around MMOs. Every time I see somebody rubberbanding in an MMO, my mind goes haywire thinking about why it’s happening. It makes visible that the server has to predict where a toon will be and might still fail, since latency can mess up so many things. And I always get to think about how Einstein would have dealt with it.

    • Malchome says:

      Thanks, I swear game designers or at least encounter designers have not actually looked at all that is required to process to complete their work.