These forums have been archived and are now read-only.

The new forums are live and can be found at https://forums.eveonline.com/

EVE General Discussion

 
  • Topic is locked indefinitely.
 

Increasing Server Tick Frequency to 2Hz ... Good, Bad, Ugly?

Author
SmilingVagrant
Doomheim
#21 - 2014-02-06 06:50:16 UTC
The honest to god truth is we've only been seeing minute gains in processing power over the last several years. This differs from the last generation where it wasn't unusual to buy a brand new server, plop it in your datacenter then have it be completely outclassed by the next generations models.

Maybe we'll get lucky in the next few years and see another major paradigm shift in how we build CPU's, but right now we're still trying to cram more and more microtransisters into a smaller space, and when that doesn't work we increase cores/cpu count.

Right now the biggest gains in overall computing speed to be had are found not at the compute level, but at the storage/iops level, which isn't as sexy as ghz so no one ever talks about it.

Anyone from CCP care to weigh in on how you structure your storage? :v:
Onictus
Pandemic Horde Inc.
Pandemic Horde
#22 - 2014-02-06 06:57:19 UTC
James Amril-Kesh wrote:
Pretty sure the game has to do this anyway due to tidi.


Sort of.

Tidi is a computation to runtime. That is why the client speeds up and slows down in relation to the server, what is being suggested is increasing the server speed in relation to the client.

Depending on how the polling system is designed, its a non-trivial endeavor in master/slave relationships the master is supposed to be the control element. Hence, TiDi making the client run slower in real time, we know they can make the client run faster as well.

Making the client the control element means that you need new logic, and one that is on people's local machine and thus more easily hacked.
Ines Tegator
Serious Business Inc. Ltd. LLC. etc.
#23 - 2014-02-06 07:25:39 UTC
If, as they've said, they wan't EVE to keep evolving for the next 20 years, they're not going to have much choice.

The base code will have to be rewritten to multi-thread. It's gonna happen or EVE will die, sooner or later. I kinda wish they'd bite the bullet and just get started on it.
Pew Terror
Sebiestor Tribe
Minmatar Republic
#24 - 2014-02-06 08:12:55 UTC
Onictus wrote:
Jamwara DelCalicoe Ashley wrote:
Onictus wrote:
Jamwara DelCalicoe Ashley wrote:
What is the barrier to increasing server response time to every half second instead of every one second?


Nullsec.

The servers already struggle over 1000 pilots with a 1Hz tick, exponentially increasing client polling simply won't help


That's a product of design. What network infrastructure would be needed to make it work?


Network performance isn't the issue. Raw number of calculations per second is. When you double the polling rate the absolute number of calculations increases to the square.

So say you have 400 pilots scapping, and say (totally made up number) that it requires 100,000 calculations a second. This is firing solution, ship vectors, bumping, refits, damage calculations, bonuses going up and down, session calculations, drawing models and what not


100,000 square is 10 billion, its not a linear progression.


Doubling the calculation frequency is a linear progression... Pay more attention in class.
Kagura Nikon
Native Freshfood
Minmatar Republic
#25 - 2014-02-06 09:21:01 UTC
Jamwara DelCalicoe Ashley wrote:
What is the barrier to increasing server response time to every half second instead of every one second?

*This comes to mind after reading some posts earlier today about the delay between the time commands are issued and implemented*



CCP already said> NO .. it will NOT happen because DOUBLED server CPU usage.

"If brute force does not solve your problem....  then you are  surely not using enough!"

Tuttomenui II
Aliastra
Gallente Federation
#26 - 2014-02-06 09:21:03 UTC
Ines Tegator wrote:
If, as they've said, they wan't EVE to keep evolving for the next 20 years, they're not going to have much choice.

The base code will have to be rewritten to multi-thread. It's gonna happen or EVE will die, sooner or later. I kinda wish they'd bite the bullet and just get started on it.


There is nothing saying they haven't been working on it. It is just they wouldn't tell you if they were if it is still in the secret squirrel stage.
Kagura Nikon
Native Freshfood
Minmatar Republic
#27 - 2014-02-06 09:22:22 UTC
Ines Tegator wrote:
If, as they've said, they wan't EVE to keep evolving for the next 20 years, they're not going to have much choice.

The base code will have to be rewritten to multi-thread. It's gonna happen or EVE will die, sooner or later. I kinda wish they'd bite the bullet and just get started on it.



People said the same about x86 computers.. yet.. they half survive even nowadays inside your new AMD64 architecture cores.

As long as somethign is lucrative.. it does not die.

"If brute force does not solve your problem....  then you are  surely not using enough!"

Adrie Atticus
Caldari Provisions
Caldari State
#28 - 2014-02-06 10:21:30 UTC
Ines Tegator wrote:
If, as they've said, they wan't EVE to keep evolving for the next 20 years, they're not going to have much choice.

The base code will have to be rewritten to multi-thread. It's gonna happen or EVE will die, sooner or later. I kinda wish they'd bite the bullet and just get started on it.


Fully synchronized multi-threaded environment requires symmetrical input to work efficiently.

EvE data is most likely not symmetrical by nature and is made like that with the current ticks. As stated previously, the increased amount of processing required when going from 1Hz to 2Hz poling rate would require a big overhaul on how the server farm is set up.

Possible? Yes. Probable? Holy **** debugging multi-threaded code is ugly.
Grayland Aubaris
Aliastra
Gallente Federation
#29 - 2014-02-06 10:42:12 UTC
This is why not:

http://oldforums.eveonline.com/?a=topic&threadID=876274

Pasted here:

The key point is a chaos-theory equation system of potential spheres of influence for every actor in a space. Essentially the algorithm goes something like this:

1) Begin server frame.
2) For each ship, calculate a sphere of possible client interaction based on the ship's dimensions, weapons systems, visual range, etc.
3) Using chaos theory equations of possible changes in a ship's behavior before the next time slice, fractally extrude out a set of event cylinders (with hemispherical caps) of the ship's possible influence before the next frame, within the 3D space.
4) Loop through the generated event cylinders and look for intersections. Lump intersecting masses together as "causality bubbles." Sets of events that could potentially influence one another.
5) Rapid cache out the causality bubbles as separate sets and defer the simulation of each bubble out through microtasklets in Stackless Python.
6) Send only the information relating to a player's intersected causality bubble/matrix to that game client. (Dump client's simulation state from pervious frame in lieu of the server's state if they disagree.)
7) Allow the client and server to run the simulation of that causality bubble in parallel. Continue the simulation on the client to make it appear seamless.
8) Yield to other causality bubble simulations in DESTINY and Sleep() for 1000ms.
9) Download any input changes by the ship's pilot from the client at the end of the server frame. As ships do not respond to inputs instantaneously in EVE, this is fine.
10) Push that input into the force equations in the physics simulation for next frame.
11) Push the causality bubbles' simulation result to TRANQUILITY, the actual server Main() process.
12) End server frame, loop while the execution context has not received a shutdown signal.

This prevents you from encountering a runaway O(n^y) algorithm of every ship in a solar system potentially acting on every other, and by only sending updates to clients based on that client's ship's causality bubble, it allows the game to be played on only dial-up modem speeds.

The only downside is in large space battles, in crowded spaces. In these scenarios, the intersection of extruded causality cylinders tends to encompass the entire system. This ship can influence this ship which can influence these ships which influence... etc. So the partitioning of simulation afforded by causality bubbles goes away. They tossed out some similarly awesome-sounding ways to fix this, that are in development, but I'm not allowed to talk about them.

Other really sweet things they did:

- Dynamically generated all solar systems in the universe using actual supercomputer-run disk accretion models. This means every solar system was formed the same way actual astronomical ones are, and no system is artificially held together by anything that would not work in real physics.

- Originally, the random seed to generate the EVE universe was taken from the server's Epoch Time at the start of the universe generation. The guy in charge decided, the night before launch, to regenerate the entire universe at the last minute with the seed "42."

- The location of solar systems relative to one another were modelled after cellular cohesion equations - the same thing that makes gold deposits form, blood vessels to grow in your body, and sets the pattern of the universe filaments as seen in the Cosmic Microwave Background Radiation.
Jamwara DelCalicoe Ashley
New Eden Tech Support
#30 - 2014-02-06 14:10:25 UTC
Pew Terror wrote:
Onictus wrote:
Jamwara DelCalicoe Ashley wrote:
Onictus wrote:
Jamwara DelCalicoe Ashley wrote:
What is the barrier to increasing server response time to every half second instead of every one second?


Nullsec.

The servers already struggle over 1000 pilots with a 1Hz tick, exponentially increasing client polling simply won't help


That's a product of design. What network infrastructure would be needed to make it work?


Network performance isn't the issue. Raw number of calculations per second is. When you double the polling rate the absolute number of calculations increases to the square.

So say you have 400 pilots scapping, and say (totally made up number) that it requires 100,000 calculations a second. This is firing solution, ship vectors, bumping, refits, damage calculations, bonuses going up and down, session calculations, drawing models and what not


100,000 square is 10 billion, its not a linear progression.


Doubling the calculation frequency is a linear progression... Pay more attention in class.


i think we're square'ing at this point which would not be linear. however, since i'm not mathematically inclined i will leave that debate to the smrt people
Jamwara DelCalicoe Ashley
New Eden Tech Support
#31 - 2014-02-06 14:12:24 UTC
Also, much thanks for all of the constructive feedback ... "you don't know what you don't know" ... as they say in the biz Shocked

I'm glad I asked. o/
seth Hendar
I love you miners
#32 - 2014-02-06 14:30:52 UTC
Grayland Aubaris wrote:

- Dynamically generated all solar systems in the universe using actual supercomputer-run disk accretion models. This means every solar system was formed the same way actual astronomical ones are, and no system is artificially held together by anything that would not work in real physics.

actually this is not true.

there are inconsistencies in the planets types / size / orbits vs the stars (the stars themselves are not valid in fact, between their actuall size vs type).

if you stick to the model, physics say NO (wrong orbit for a temperate vs the size of the star and / or star type for ex.)

if you stick to the datas, physic also say NO (or some planets should then be INSIDE of the star they are orbiting)

so, while i agree to believe they actually used a valid model, the datas associated, whether used for modeling, or in the various infos are not coherent with said model
Grayland Aubaris
Aliastra
Gallente Federation
#33 - 2014-02-06 14:32:33 UTC
seth Hendar wrote:
Grayland Aubaris wrote:

- Dynamically generated all solar systems in the universe using actual supercomputer-run disk accretion models. This means every solar system was formed the same way actual astronomical ones are, and no system is artificially held together by anything that would not work in real physics.

actually this is not true.

there are inconsistencies in the planets types / size / orbits vs the stars (the stars themselves are not valid in fact, between their actuall size vs type).

if you stick to the model, physics say NO (wrong orbit for a temperate vs the size of the star and / or star type for ex.)

if you stick to the datas, physic also say NO (or some planets should then be INSIDE of the star they are orbiting)

so, while i agree to believe they actually used a valid model, the datas associated, whether used for modeling, or in the various infos are not coherent with said model



I was just quoting the article :P I will defer to your knowledge on this one :)
Pew Terror
Sebiestor Tribe
Minmatar Republic
#34 - 2014-02-06 14:33:44 UTC
Grayland Aubaris wrote:
This is why not:

http://oldforums.eveonline.com/?a=topic&threadID=876274

Pasted here:

The key point is a chaos-theory equation system of potential spheres of influence for every actor in a space. Essentially the algorithm goes something like this:

1) Begin server frame.
2) For each ship, calculate a sphere of possible client interaction based on the ship's dimensions, weapons systems, visual range, etc.
3) Using chaos theory equations of possible changes in a ship's behavior before the next time slice, fractally extrude out a set of event cylinders (with hemispherical caps) of the ship's possible influence before the next frame, within the 3D space.
4) Loop through the generated event cylinders and look for intersections. Lump intersecting masses together as "causality bubbles." Sets of events that could potentially influence one another.
5) Rapid cache out the causality bubbles as separate sets and defer the simulation of each bubble out through microtasklets in Stackless Python.
6) Send only the information relating to a player's intersected causality bubble/matrix to that game client. (Dump client's simulation state from pervious frame in lieu of the server's state if they disagree.)
7) Allow the client and server to run the simulation of that causality bubble in parallel. Continue the simulation on the client to make it appear seamless.
8) Yield to other causality bubble simulations in DESTINY and Sleep() for 1000ms.
9) Download any input changes by the ship's pilot from the client at the end of the server frame. As ships do not respond to inputs instantaneously in EVE, this is fine.
10) Push that input into the force equations in the physics simulation for next frame.
11) Push the causality bubbles' simulation result to TRANQUILITY, the actual server Main() process.
12) End server frame, loop while the execution context has not received a shutdown signal.

This prevents you from encountering a runaway O(n^y) algorithm of every ship in a solar system potentially acting on every other, and by only sending updates to clients based on that client's ship's causality bubble, it allows the game to be played on only dial-up modem speeds.

The only downside is in large space battles, in crowded spaces. In these scenarios, the intersection of extruded causality cylinders tends to encompass the entire system. This ship can influence this ship which can influence these ships which influence... etc. So the partitioning of simulation afforded by causality bubbles goes away. They tossed out some similarly awesome-sounding ways to fix this, that are in development, but I'm not allowed to talk about them.

Other really sweet things they did:

- Dynamically generated all solar systems in the universe using actual supercomputer-run disk accretion models. This means every solar system was formed the same way actual astronomical ones are, and no system is artificially held together by anything that would not work in real physics.

- Originally, the random seed to generate the EVE universe was taken from the server's Epoch Time at the start of the universe generation. The guy in charge decided, the night before launch, to regenerate the entire universe at the last minute with the seed "42."

- The location of solar systems relative to one another were modelled after cellular cohesion equations - the same thing that makes gold deposits form, blood vessels to grow in your body, and sets the pattern of the universe filaments as seen in the Cosmic Microwave Background Radiation.


For people interested why this is very complicated math without understanding all the terms mentioned here it is very nice to read up on the N-Body Problem.
It is actually quite fascinating that simple gravitaional interactions start becoming unsolvably difficult just past 3 objects and simulation systems need to develop quite elaborate algorithms to do approximations.
Adding bodies can increase actual complexity quite a lot quicker then just O(n^2).
Doing the same thing twice as often though is quite trivially twice as much calculation per unit of time.
Grayland Aubaris
Aliastra
Gallente Federation
#35 - 2014-02-06 14:45:50 UTC
Pew Terror wrote:


For people interested why this is very complicated math without understanding all the terms mentioned here it is very nice to read up on the N-Body Problem.
It is actually quite fascinating that simple gravitaional interactions start becoming unsolvably difficult just past 3 objects and simulation systems need to develop quite elaborate algorithms to do approximations.
Adding bodies can increase actual complexity quite a lot quicker then just O(n^2).
Doing the same thing twice as often though is quite trivially twice as much calculation per unit of time.


Next time someone complains that 5000 ship fights causes 10% TiDi to come into affect you need to point them to the above link :)
Deadonstick
TITANIC INDUSTRIES INC
#36 - 2014-02-06 15:02:29 UTC
I definitely agree this should happen for non-giant population systems. Drone control since the AI patch has been a ***** because it takes a second for your drones to react.
Desivo Delta Visseroff
The Scope
Gallente Federation
#37 - 2014-02-06 15:41:22 UTC  |  Edited by: Desivo Delta Visseroff
Cheers to the OP! It's cool to see my errant idea sparked a thread. Lets hope the Devs see and respond.

I support this threadCool


Edit rather than double post:

Admittedly, I have very little knowledge and experience with network infrastructure beyond keeping a few ancient computers talking to one another at my RL job. That said, I recall an article where CCP said they do actually use multi-core CPUs. They just run one core and use the others as heat sinks for the operating overclocked core. While the increased poling speed would impact greater computational load in normal time, wouldn't TiDi remain relatively uneffected? Or would in further slow down?

The one advantage, among many, in increasing the polling rate and bringing down the server ticks is it would add a layer of challenge with piloting smaller class ships, but in evasion and tackle. It would improve the quality of small fleet fights and would increase the risk reward benefits of exploration, interception and fleet doctrines.

Suddenly that ceptor, that was always able to get away because of rounding on the server tick side will have to think twice or use new tactics to move around a system.

I was hunting for sick loot, but all I could get my hands on were 50 corpses[:|]..............[:=d]

I Love Boobies
All Hail Boobies
#38 - 2014-02-06 15:48:12 UTC
Tranquility could be the forefather of Skynet... maybe we should be worried.
Notorious Fellon
#39 - 2014-02-06 15:53:05 UTC  |  Edited by: Notorious Fellon
Pew Terror wrote:
Onictus wrote:
Jamwara DelCalicoe Ashley wrote:
Onictus wrote:
Jamwara DelCalicoe Ashley wrote:
What is the barrier to increasing server response time to every half second instead of every one second?


Nullsec.

The servers already struggle over 1000 pilots with a 1Hz tick, exponentially increasing client polling simply won't help


That's a product of design. What network infrastructure would be needed to make it work?


Network performance isn't the issue. Raw number of calculations per second is. When you double the polling rate the absolute number of calculations increases to the square.

So say you have 400 pilots scapping, and say (totally made up number) that it requires 100,000 calculations a second. This is firing solution, ship vectors, bumping, refits, damage calculations, bonuses going up and down, session calculations, drawing models and what not


100,000 square is 10 billion, its not a linear progression.


Doubling the calculation frequency is a linear progression... Pay more attention in class.


The resulting calculations are not. When you have to relay the information (say a change in a ships vector due to a double-click in space) you have to transmit that to every other ship on grid. It is precisely n^2 increased communication over the network.

Also; drop the attitude.

Crime, it is not a "career", it is a lifestyle.

seth Hendar
I love you miners
#40 - 2014-02-06 17:28:44 UTC
Deadonstick wrote:
I definitely agree this should happen for non-giant population systems. Drone control since the AI patch has been a ***** because it takes a second for your drones to react.

not only drones, it happen more and more often that you activate a module and it take a second more to actually activate.

when this happen on a gate, where you try to point something, you succesfully ock, you are in range, but the module just doesn't start....... or some odd times, it cycles, but you don't have agression and the tgt still warp out .
no stabs involved, talking about shuttles or hictor focus point, also occurs with regular point vs regular ship but then, the wcs is a possibility so hard to tell (well, i'd say if cycle + aggro timer => wcs, if not, server fail).

tbh, this is infuriating, to actually point something and see it go anyway because of this tick crap

point should apply on same tick as lock if preactivated, you lock it with preactivation, point is applyed 100%