You are on page 1of 5

Kokos Calculator

An overview of EQII game mechanics and parse extrapolation


Koko & Friends, December 2013

Theory
Kokos Advanced Calculator functions as a multivariable extrapolator. Extrapolation is the process of using existing data to predict data points outside of the data range, and is commonly used in engineering and scientific fields when datasets prevent alternative predictive methods. If the curve relationships are well known, extrapolation is highly accurate prediction method. Two examples of extrapolation are provided, single and multivariable. Most users are familiar with single variable extrapolation with respect to linearly scaling stats (e.g. potency and critical bonus). If mathematical complexity stopped here, all users could easily determine the optimum stats for their characters. Example: Single Variable Extrapolation
[ ] [ ]

Abstract
Kokos Advanced Calculator (KAC) is a parse projection tool that allows players of the Everquest II (EQII) massive multiplayer online role playing game (MMORPG) to quickly determine the optimum stat placement for their character. The calculator functions through extrapolation of known game mechanics and curvature of stat returns after determining a characters base damage output. The estimated setup time for a new user is 1 to 2 hours, after which the calculator functions in real time and the user can immediately see results. The average user can expect to obtain an EncDPS increase of 10 to 30% after use and understanding of the calculator and calculation method. Basic to moderate knowledge of algebra, Microsoft Excel, and Aditus Advanced Combat Tracker (ACT) is recommended.

Foreword
Welcome, and thank you for your interest in pursuing some of the most advanced publicly accessible knowledge regarding the Everquest II. In this document, you will find the knowledge and methods for determining how can I maximize my characters potential with respect to stat allocation? Every attempt to make this document and the calculator itself, as user friendly as possible has been made. However, the mathematic discussion included is complex and basic to moderate knowledge of algebra, spreadsheet software, and ACT is recommended.

However, Everquest II (EQ2) damage calculations are not single stat dependent and are functions of multiple stats. For this reason, damage extrapolation is more complicated than the above example, and is difficult to calculate. Additionally, not all of the mechanics follow linear relationships (some dont even follow mathematical functions), and by hand calculation becomes iterative, time consuming, or impossible. Example: Multi Variable Extrapolation
[ ( ( [
(

] [ [
)

] ]) [ ( )])

Introduction
Kokos Advanced Calculator (KAC) is a parse projection tool. It determines the predicted changes of a damage parse given a characters present and projected stats in addition to a parse record. It is a highly accurate and reliable method of determining the expected returns from new equipment, builds, or other character customization. The calculator can be used to create a build that is best for the parse input, or best for how a player plays a character. This is more useful, and easier to calculate, than the best stat allocation for the best play style of a character.

Thankfully, computers excel at mathematical computation. Computer aid with respect to performance is not new to EQ2, and multiple programs (e.g. ACT) already aid users in their play. KAC is a Microsoft Excel spreadsheet that does the mathematics behind EQ2 for the user, allowing the user to immediately see performance changes without time consuming and error prone by trial tests. This allows them more time for what matters most, playing the game.

Setup
An estimated time commitment of 1 to 2 hours is required for character setup within KAC. This is a significant time commitment, (and its reduction is the focus of current work) but every action to ensure the system is as user-friendly as possible has been made.

The spreadsheet is composed of three sections: Character and Parse Input, Skill Simulation, and Mechanics. For convenience, calculations and data entry take place in green and blue shaded cells respectively. Input values into the blue cells; do not input values into the green cells. Additionally, green shaded cells are locked from editing in protected mode to prevent accidental formulae removal. Define the scenario(s) for which the character is to be optimized. Obtain a damage parse for that scenario(s), and note the average stat values of the character throughout that encounter. Additionally, locate the base values of the damaging abilities. These will be required for extrapolation later in the process.

Figure 3: Parse data transpose from ACT to KAC

Character and Parse Data Input


Character Input refers to the average stat values during an encounter (Figure 1). Thus, entered values should reflect those after all beneficial abilities have been cast (e.g. a fully buffed character). For facilitation of future data entry, enter these values into both the Before and After columns.

Skill Simulation
Not all skills function identically, some receive additional or have differing returns from select stats. Often these differences are small, and if a rough calculation is desired, the user may skip to Identify ability damage that originates outside the simulated character. Input 1 for the min and max base values and set all skill mechanics to 0 in the Before and After columns. Additionally, set the modifiers for Primary, Potency, and Abil. Mod to No. If the skill cannot critical, set Critical to No as well. Parse Extrapolation. However, because the values in this section change infrequently, it is recommended that it be completed. The stats used in this section are skill specific critical bonus and potency, ability modifier, and double cast. Identify ability damage that originates solely from the simulated character (e.g. in Figure 3 it could be concluded that the character is a monk, thus includes Mantis Bolt and Five Rings but not Peace of Mind or Blade Chime). Enter the base value for the minimum and maximum damage of the skill in its respective column. As before, input the values in both the Before and After columns. Clarification regarding base values can be found in Calculation Steps. In some cases, ability damage is composed of multiple components (e.g. Five Rings). In these cases, the most accurate result is obtained by modeling each component separately. However, the errors accrued by modeling the only the highest damage value are negligible. Thus, Five Rings (master) can be modeled as a single input with a damage range of 356 593. Unprotect the worksheet and enter skill specific mechanics (Figure 4). The most common mechanics

Figure 1: Section 1 of Character Input

Additionally, input the average number of hostile NPCs that were in range of the characters auto attack throughout the encounter duration (Figure 2).

Figure 2: # of NPCs within AA range

The next step is to enter encounter parse data into the calculator. To do this, transpose the values in the EncDPS and Type from ACT into their respective columns in KAC. When finished, feel free to verify that the data was entered correctly using the All summation with the ACT output. If they are not equal, the data was transposed incorrectly.

include skill specific potency and critical bonus (Figure 5). Other mechanics include whether the skill scales with select stats (e.g. primary, potency, double cast, offensive skill minimum damage reduction, or critical or ability modifiers). Enter this information into the modifiers column.

Figure 7: Report shows an EncDPS gain of 1,181

Figure 4: Skill Simulation skill specific mechanics

The user is not limited to a single stat change. Multiple changes may be used simultaneously (Figure 8).

Figure 5: Five Rings skill specific critical bonus

Figure 8: Multiple stat changes and result

Identify ability damage that originates outside the simulated character. Input 1 for the min and max base values and set all skill mechanics to 0 in the Before and After columns. Additionally, set the modifiers for Primary, Potency, and Abil. Mod to No. If the skill cannot critical, set Critical to No as well.

In a similar fashion, the user may compare AA, trait specializations, or skill levels by adjusting the data entry within the Skill Simulation section. Advanced users should recognize the ability to determine the EncDPS gains/losses for their character by changes in outside source stats (e.g. Peace of Mind, Blade Chime). Through iteration, the user is able to determine the optimal stat point placement for their character based on their play style.

Parse Extrapolation
KAC is now ready to use. To determine the EncDPS increase of a stat change, input the desired value into the After column (Figure 6). The extrapolated change in EncDPS is shown in the Comparison column for each damage type. Additionally, the Report columns compare the net EncDPS gain or loss.

Calculation Steps
Most damage calculations are multiple step functions and are easily represented with flowcharts. For this reason, images show the perceived order of calculation in addition to the accompanying formulae. Whenever the word base is used, it is with respect to the range of values when obtained from Sony Online Entertainment (SOE) census data1.

Total Damage
Figure 6: Change of critical bonus from 400 to 405

A characters damage output is the sum of individual components of their damage parse.

SoE Census Data Parsers Eq2U The Dragon's Armory

Auto Attack Damage

[ [

] ]

[ [ [

[ ] ]

[ Weapon Rating Primary Stat

[ ] [

] [ ] weapon min weapon max str, agi, int, or wis -

] [

[rand(x1,x2)] [1+ (40.359 ln(x)219.69)/100] [1+x/100]

AA EncDPS Skill EncDPS

see subsection see subsection

[x] [x] Weapon Damage Bonus Auto Attack Multiplier DPS

Critical Damage
Not every damage source can critical hit, although most sources can. If a source can critical hit, it will deal increased damage based on the characters critical bonus modifier. The critical modifier is the sum of the characters base critical modifier and their critical bonus stat. Additionally, critical hits cannot deal less damage than a non-critical maximum value.

[1+ x]

see relationships

[1 +f(DPS)]

Auto Attack Hits

[ Base Hit Multi Attack Flurry AoE Auto Attack

([ [ Pre Critical Value Critical Bonus see damage source

see relationships 0 < flurry < 100 0 < AoE AA < 100 0 < enemy # < 5

[1] [f(Multi Attack)] [(x/100) * (2.21875)] [(AoE AA/100) * (enemy #)]

[f(damage source)] [1+(x1+x2+x3)/100]

Auto Attack Delay

Critical Override

class critical modifier skill critical modifier critical bonus critical hit max non critical hit

[
If x1 < x2 dmg = x2 Else dmg = x1 End if AA Delay Dual Wield -

] [
[x]

] [

Auto Attack DPS


With the release of Tears of Veeshan, auto attacks are a primary source of dps for all characters. Auto attack damage per second is a function of auto attack base damage per swing, number of swings per attack, and the delay between attacks. Each of these attributes is discussed within its own section.
Haste see relationships

x = yes DW = [1.33] Else DW = [1] End if [1/(1+f(Haste))]

Skill Damage
Damage originating from secondary sources (e.g. other characters [e.g. peace of mind, stampede, etc.) is not affected by the primary attribute, potency, or ability modifier of the primary source. Double cast tends to apply to skills that are interrupted by movement (spells) but it does apply to some that are not (combat arts), affected skills do not benefit from ability modifier.

[ [

] [ ]

AA Damage AA Hits AA Delay

see subsection see subsection see subsection

See Subsection See Subsection See Subsection

[ [ [

] [ ]

] [ ] [

] [

] ]

Base Value Primary stat Potency Double Cast Ability mod

damage range 1200 < stat potency skill potency 0 < x2 cast < 100 -

[rand(min,max)] [1+ (40.359 * ln(x)219.69)/100] [1 + (x1 +x2)/100] [x/100] If(dmg + x) < 1.5*dmg dmg = dmg + x Else dmg = 1.5*dmg End if

Stat Relationships
The following relationships are used by KAC to linearly interpolate the expected returns for a stat value. The values and curves are publically available2. These values are expected to change at future dates, and are available for the user to edit within the Mechanics section.

Acknowledgements
Koko and Friends would like to acknowledge the following people and organizations for their assistance or their resources for their aid in the creation of this document. Aditu ACT, which facilitates data entry into KAC SOE Census data, which make Dediths and Feldons resources possible Xelgad Current System Formulas, which greatly increase the accuracy of the extrapolation method Dedith The Dragons Armory, an invaluable resource which aids the user in displaying census data in a user friendly fashion Feldon EQ2U, an alternative to The Dragons Armory

(Some) of the Current Systems Formulas