Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Warp time calculation: Difference between revisions

From EVE University Wiki
m Mattikus pathfinder moved page Warp Time Calculation to Warp time calculation
m Update external link
 
(10 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{merge|Warp time calculation|Warp}}
This page explains the calculations for the amount of time taken to travel while warping. Please note, this does not cover the time spent getting in to warp (accelerating to 75% maximum velocity), or the time spent slowing down after you regain control of your ship.
This page explains the calculations for the amount of time taken to travel while warping. Please note, this does not cover the time spent getting in to warp (accelerating to 75% maximum velocity), or the time spent slowing down after you regain control of your ship.


==Time taken to warp==
==Time taken to warp==


It is possible to work out how long it should take for a ship to complete warp (once it enters warp) based on formulae released by CCP<ref>https://community.eveonline.com/news/dev-blogs/warp-drive-active</ref>.
It is possible to work out how long it should take for a ship to complete warp (once it enters warp) based on formulae released by CCP<ref>https://www.eveonline.com/news/view/warp-drive-active</ref>.


Warp consists of 3 stages:
Warp consists of 3 stages:
Line 14: Line 15:
Total time in warp is given by:
Total time in warp is given by:


<math>\pagecolor{Black}\color{White}t_{total} = t_{accel} + t_{decel} + t_{cruise}</math>
:<math> t_{total} = t_{accel} + t_{cruise} + t_{decel} </math>


=Long warps=
=Long warps=
Line 24: Line 25:
CCP provided formulae for both distance traveled and velocity reached after ''t'' seconds of acceleration. If ''d'' is distance in meters, ''v'' is speed in meters per second, ''k'' is a (sort of) constant defined as the warp speed (in AU/s) and a = 149,597,870,700 meters (1 AU).
CCP provided formulae for both distance traveled and velocity reached after ''t'' seconds of acceleration. If ''d'' is distance in meters, ''v'' is speed in meters per second, ''k'' is a (sort of) constant defined as the warp speed (in AU/s) and a = 149,597,870,700 meters (1 AU).


<math>\pagecolor{Black}\color{White}
:<math>
\begin{align}
\begin{align}
d & = e^{kt} \\
d & = e^{kt} \\
Line 35: Line 36:
To calculate distance traveled while accelerating
To calculate distance traveled while accelerating


<math>\pagecolor{Black}\color{White}
:<math>
\begin{align}
\begin{align}
d & = e^{kt} \\
d & = e^{kt} \\
Line 46: Line 47:
The distance covered while accelerating to v<sub>warp</sub> is  
The distance covered while accelerating to v<sub>warp</sub> is  


<math>\pagecolor{Black}\color{White}
:<math>
\begin{align}
\begin{align}
d_{accel} & = \frac{v_{warp}}{k}
d_{accel} & = \frac{v_{warp}}{k}
Line 59: Line 60:
To calculate the time spent accelerating to warp speed, the equation for ''v'' should be rearranged to be in terms of ''t'', and then solved for the case of ''v'' being equal to the warp speed (in m/s)
To calculate the time spent accelerating to warp speed, the equation for ''v'' should be rearranged to be in terms of ''t'', and then solved for the case of ''v'' being equal to the warp speed (in m/s)


<math>\pagecolor{Black}\color{White}
:<math>
\begin{align}
\begin{align}
v & = k*e^{kt}\\
v & = k*e^{kt}\\
Line 70: Line 71:
We want to find the time taken to maximum warp:
We want to find the time taken to maximum warp:


<math>\pagecolor{Black}\color{White}
:<math>
\begin{align}
\begin{align}
v_{warp} & = k * a\\
v_{warp} & = k * a\\
Line 77: Line 78:
</math>
</math>


This formula can be simplified further to <math>\pagecolor{Black}\color{White}\frac{\ln{a}}{k}</math>, although you may choose not to do this for implementation reasons.
This formula can be simplified further to <math>\frac{\ln{a}}{k}</math>, although you may choose not to do this for implementation reasons. Because <math>a</math> is a constant, if warp distance is long enough for a ship to reach full speed, the warp acceleration time can be simplified down to
 
:<math>
t_{accel} \approx \frac{25.7312}{k}
</math>


==Deceleration==
==Deceleration==
Deceleration is calculated slightly differently. Instead of using ''k'' to calculate distance and velocity, it uses ''j'', which is defined as <math>\pagecolor{Black}\color{White}\min(\frac{k}{3},2)</math>. A different rate of deceleration is used to prevent ships suddenly transitioning from "many, many AU away" to "on grid and out of warp" more rapidly than other pilots (or the server / client) can keep up with.
Deceleration is calculated slightly differently. Instead of using ''k'' to calculate distance and velocity, it uses ''j'', which is defined as <math>\min(\frac{k}{3},2)</math>. A different rate of deceleration is used to prevent ships suddenly transitioning from "many, many AU away" to "on grid and out of warp" more rapidly than other pilots (or the server / client) can keep up with.


There is a complication with deceleration calculations. Ships do not drop out of warp at 0 m/s. Instead, they drop out of warp at ''s'' m/s, after which normal sub-warp calculations take over.
There is a complication with deceleration calculations. Ships do not drop out of warp at 0 m/s. Instead, they drop out of warp at ''s'' m/s, after which normal sub-warp calculations take over.


<math>\pagecolor{Black}\color{White}s = \min(100, v_{subwarp}/2)</math>
:<math>s = \min(100, v_{subwarp}/2)</math>


Where v<sub>subwarp</sub> is the maximum subwarp velocity of the ship; this varies greatly depending on the ship hull and pilot skills.
Where v<sub>subwarp</sub> is the maximum subwarp velocity of the ship; this varies greatly depending on the ship hull and pilot skills.
Line 91: Line 96:
This changes the formulae used slightly. Remember that distance travelled is the integral of velocity.
This changes the formulae used slightly. Remember that distance travelled is the integral of velocity.


<math>\pagecolor{Black}\color{White}
:<math>
\begin{align}
\begin{align}
v & = k * e^{jt}\\
v & = k * e^{jt}\\
Line 101: Line 106:
The distance covered while decelerating from v<sub>warp</sub> is
The distance covered while decelerating from v<sub>warp</sub> is


<math>\pagecolor{Black}\color{White}
:<math>
\begin{align}
\begin{align}
d_{decel} & = \frac{v_{warp}}{j}
d_{decel} & = \frac{v_{warp}}{j}
Line 113: Line 118:
As with acceleration, time to decelerate from maximum warp velocity is worked out by rearranging the velocity equation.
As with acceleration, time to decelerate from maximum warp velocity is worked out by rearranging the velocity equation.


<math>\pagecolor{Black}\color{White}
:<math>
\begin{align}
\begin{align}
v &= k*e^{jt}\\
v &= k*e^{jt}\\
Line 123: Line 128:
While the deceleration from ''s'' to 0 was insignificant in terms of distance, it is significant in terms of time. This means that the time to decelerate is calculated as follows:
While the deceleration from ''s'' to 0 was insignificant in terms of distance, it is significant in terms of time. This means that the time to decelerate is calculated as follows:


<math>\pagecolor{Black}\color{White}
:<math>
\begin{align}
\begin{align}
t_{decel} & = t_{decel\_warp} - t_{decel\_s}\\
t_{decel} & = t_{decel\_warp} - t_{decel\_s}\\
Line 139: Line 144:
The distance covered while cruising is the total warp distance minus any distance covered while accelerating or decelerating.
The distance covered while cruising is the total warp distance minus any distance covered while accelerating or decelerating.


<math>\pagecolor{Black}\color{White}d_{cruise} = d_{total} - d_{accel} - d_{decel}</math>
:<math>d_{cruise} = d_{total} - d_{accel} - d_{decel}</math>


For all but the fastest ships, this will be ''d<sub>total</sub> - 4 AU''.
For all but the fastest ships, this will be ''d<sub>total</sub> - 4 AU''.
Line 146: Line 151:
This one is easy. Time spent cruising is simply  
This one is easy. Time spent cruising is simply  


<math>\pagecolor{Black}\color{White}t_{cruise} = \frac{d_{cruise}}{v_{warp}}</math>
:<math>t_{cruise} = \frac{d_{cruise}}{v_{warp}}</math>


=Short Warps=
=Short Warps=
The above calculations work as long as some time is spent at maximum warp speed; <math>\pagecolor{Black}\color{White}d_{total} \geq d_{accel} + d_{decel}</math>. If the warp is short enough that the ship never reaches top speed, a different set of calculations are needed.
The above calculations work as long as some time is spent at maximum warp speed; <math>d_{total} \geq d_{accel} + d_{decel}</math>. If the warp is short enough that the ship never reaches top speed, a different set of calculations are needed.


<math>\pagecolor{Black}\color{White}
:<math>
\begin{align}
\begin{align}
d_{accel} & = \frac{v_{max}}{k}, d_{decel} = \frac{v_{max}}{j}\\
d_{accel} & = \frac{v_{max}}{k}, d_{decel} = \frac{v_{max}}{j}\\
Line 161: Line 166:
This enables the calculation of new acceleration and deceleration times using the formulae described in the previous sections, but substituting in the new v<sub>max</sub>
This enables the calculation of new acceleration and deceleration times using the formulae described in the previous sections, but substituting in the new v<sub>max</sub>


<math>\pagecolor{Black}\color{White}
:<math>
\begin{align}
\begin{align}
t_{accel} & = \frac{\ln{(\frac{v_{max}}{k})}}{k}\\
t_{accel} & = \frac{\ln{(\frac{v_{max}}{k})}}{k}\\
Line 171: Line 176:
=Implementation=
=Implementation=


The following python code is one possible implementation of the above. It attempts to generate the same data as presented by CCP in the forums. It matches with their numbers, except for 50 AU titan warps, which are one second out. Note that the sub warp speed of the ship is fixed at 200 m/s. This is because the CCP-produced tables assume that every ship drops out of warp at 100 m/s<ref>https://forums.eveonline.com/default.aspx?g=posts&m=3902148#post3902148</ref>. If trying to run calculations for actual ships, this value will need to be replaced with a more appropriate one. The output values are also passed through the ceil() function, as this is what seems to match the rounding mode that CCP used.<ref>http://content.eveonline.com/www/newssystem/media/65418/1/numbers_table.png</ref>
The following python 3 code is one possible implementation of the above. It attempts to generate the same data as presented by CCP in the forums. It matches with their numbers, except for 50 AU titan warps, which are one second out. Note that the sub warp speed of the ship is fixed at 200 m/s. This is because the CCP-produced tables assume that every ship drops out of warp at 100 m/s<ref>https://forums-archive.eveonline.com/message/3902148#post3902148</ref>. If trying to run calculations for actual ships, this value will need to be replaced with a more appropriate one. The output values are also passed through the ceil() function, as this is what seems to match the rounding mode that CCP used.<ref>http://content.eveonline.com/www/newssystem/media/65418/1/numbers_table.png</ref>


<pre>
<pre>
Line 192: Line 197:
     max_ms_warp_speed = max_warp_speed * AU_IN_M
     max_ms_warp_speed = max_warp_speed * AU_IN_M


     accel_dist = max_ms_warp_speed / k_accel
     accel_dist = AU_IN_M
     decel_dist = max_ms_warp_speed / k_decel
     decel_dist = max_ms_warp_speed / k_decel


Line 255: Line 260:
=References=
=References=
<references />
<references />
[[Category:Game mechanics]]