|
yellowfive
|
 |
« on: March 08, 2010, 03:02:45 pm » |
|
Since Mr. Robot's brain is not a moist lump of flesh, he does not suffer from our poor reaction times. Modern robots like Mr. Robot also use quantum computers, so the traditional "client-server" delays do not apply.
That said, Mr. Robot's goal is to help humans. So he has tried to artificially include latency and a rough model of a human's ability to react to stimuli.
This thread will be kept up to date with Mr. Robot's current attempts to model some of these observed delays.
Latency Latency is reported in-game, and represents the amount of time that it takes to send a message from your computer to the WoW server (or the other way around).
Currently, latency is used in one situation: 1. the simulator says "do Blood Strike" at time 2.00 2. Blood Strike actually executes at time 2.00 + Latency
This applies to abilities with cast times as well: the actual spell will execute when casting ends + Latency. Note that latency does not delay the start of the next spell cast -- see the sections below for more details.
Reaction Time Reaction Time is a human's ability to respond to a stimulus: I see a proc show up at time 2.00, but it takes my brain some amount of time (around 200-250ms) to turn that into a response: move my finger.
Currently, reaction time is not implemented. It is not a very common case that a player will sit there staring at the screen, waiting for something to happen, and then respond to it. See the next section on Anticipation for more detail.
Anticipation A good human player needs to anticipate his next action. For example, if I am currently casting Starfire, if I want to do good DPS, I need to decide what spell to use next before I finish casting that Starfire.
This has a few consequences: if Starfire triggers some kind of buff, I can't use that buff to decide which action to use next -- I've chosen my action long before that Starfire has happened!
Mr. Robot implements this in a very simple way right now:
250ms before you could execute your next action, Mr. Robot decides which action to use. For example:
2.00: start casting Starfire 3.75: decide which spell to cast next 4.00: Starfire finishes casting, cast the next spell
For an instant ability:
2.00: cast Moonfire 3.25: decide which spell to cast next 3.50: GCD finishes, cast the next spell
It's possible that 250ms is a little too tight for most humans. Note that reaction time becomes irrelevant for these cases: 250ms is longer than a quick human's reaction time. This DOES assume that the player is good at making very quick decisions though. Mr. Robot may turn this into a parameter: a player who is not as quick needs to anticipate further in advance.
Delay Between Instant-Cast Abilities Instant-cast abilities trigger a Global Cooldown (GCD). This puts every ability on cooldown for some amount of time. This cooldown occurs on the client (the player's computer).
A player with good timing can chain-cast instant abilities with zero delay between them. This was determined via in-game testing. It is difficult to determine if the game has some kind of "queue" around the end of the GCD, or if the game dynamically adjusts the length of the GCD slightly, or some other mechanism. The details are irrelevant: comparing the number of actions used over a long interval matches almost exactly with the theoretically possible number of actions assuming zero delay.
That said, getting this timing just right can be difficult in practice. Mr. Robot uses a 50ms delay after an instant-cast ability before another action can be performed. This can be adjusted in the SETTINGS. A value of 0 is possible, a value of 100ms would be improbably high for a skilled player.
Delay Between Abilities with a Long Cast Time An ability with a "long" cast time is any ability with a cast time longer than the GCD.
Abilities with long cast times can be chained with zero delay between them. WoW implemented a server-side queue that gives the player some margin of error around the end of a spell's casting. Under all circumstances, perfect chaining of spells is easily achieved by a decent player.
Delay Between Abilities with a Short Cast Time An ability with a "short" cast time is any ability with a cast time that is shorter than or equal to the GCD.
As with both instant-cast and long-cast abilities, abilities with a short cast time can be chained with zero delay between them. It is more difficult than long-cast abilities, but possible, just as with instant-cast abilities.
Short-casts are limited by the GCD, not the cast time of the spell. Thus, short casts use the same delay as instant-cast abilities: the GCD delay parameter can be used to control how much time the user typically experiences between casts.
Missile Travel Time Some abilities take time to get from the caster to the target. This depends on your distance from the target. There is a parameter in SETTINGS that can be used to adjust this.
|