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

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

Player Features and Ideas Discussion

 
  • Topic is locked indefinitely.
Previous page12
 

CCP: Check your engine for inefficient distance/trig conditions

Author
ShahFluffers
Ice Fire Warriors
#21 - 2015-04-15 00:51:39 UTC  |  Edited by: ShahFluffers
Ummm... I'm quite surprised this hasn't been brought up yet.

Remember awhile back when CCP was talking about "Brain in a Box" and a couple of other nifty acronyms? Does anyone remember the primary issue they were trying to fix and/or get around?

Here's the problem; a lot of EVE's base architecture is designed specifically for single core processors (because EVE was made during a time before multi-core processors).
This means that the system itself can't take advantage of multi-core processors even if they are available.

THAT IS THE BOTTLENECK you are looking for.


Now I understand that CCP has people revising the back-end code full-time***... but anyone with coding experience can tell you that it is slow, eye-gouging work.
Especially when most of the people who wrote that code no longer work at the company.
Especially when there was poor documentation of said code.
Especially when many, many systems in EVE still rely upon said code and have a screaming hissy-fits if they are altered in a way they doesn't like
Example1: introducing the waypoint lines you see in space actually "broke" the autopilot function... it would only do "shortest route" paths and many freighters ended up dead in low-sec... it took a week to find and fix the issue).
Example2: Drone are a particular system that is notorious for having issues. Don't believe me? Have you ever wondered why there are no rate-of-fire bonuses or mods for drones? It is because the code won't accept any such alteration. Oh yeah... and drones used to have a nasty tendency to attack fleetmembers if they were set aggressive (I can't remember how long it took for them to sort that out).



***Another reason why CCP is revising the old code is to get rid of the POS system (which apparently governs SOV and mission/quest mechanics).
So all that sexy stuff you saw during Fanfest (the structures in particular) is largely dependent on CCP actually revising and fixing up all (or most) of that legacy code... and streamlining the database I/O between different parts of the game.
Saladinae
Red Pill Gaming Syndicate
Brotherhood of Spacers
#22 - 2015-04-15 00:54:19 UTC
Cade Windstalker wrote:


Plus you need the ability to recall drones individually so you're firing off entity creation and destruction events as the clouds separate and merge, which are actually more expensive than maintaining entities in space, unless you're removing the ability to do this in which case that's an even bigger nerf to drones..


No matter how the clouds separate and merge, they will always have less than (N^2-N)/2 point references, which is the least possible number without clouds.

In general, there would be a reduciton by 92-94% point references (on average, aka Law of Large Numbers Over Time, general statistics) over the course of a fight.

Winmatar > Everything else

Xe'Cara'eos
A Big Enough Lever
#23 - 2015-04-15 01:02:06 UTC
whilst I imagine the idea of running a base check (especially for things that are either IN or OUT of range, such as webs, scrams, etc) would save some processing power...

bombs (inc smarties) would become much too powerful vs drones, as instead of currently putting out n/5 dmg on each drone, it would put n dmg into the drone cloud and quite possible remove a drone or 2
....
by the same logic, we should also start treating fleets as clouds....

For posting an idea into F&I: come up with idea, try and think how people could abuse this, try to fix your idea - loop the process until you can't see how it could be abused, then post to the forums to let us figure out how to abuse it..... If your idea can be abused, it [u]WILL[/u] be.

Cade Windstalker
#24 - 2015-04-15 01:13:52 UTC
ShahFluffers wrote:
Ummm... I'm quite surprised this hasn't been brought up yet.

Remember awhile back when CCP was talking about "Brain in a Box" and a couple of other nifty acronyms? Does anyone remember the primary issue they were trying to fix and/or get around?

Here's the problem; a lot of EVE's base architecture is designed specifically for single core processors (because EVE was made during a time before multi-core processors).
This means that the system itself can't take advantage of multi-core processors even if they are available.

THAT IS THE BOTTLENECK you are looking for.


I believe this is not actually correct, the back-end code is massively parallel. That's what Stackless Python does. (Though of course there's always room for improvement in parallelization, it's just not always practical or possible) The client code doesn't always make the best use of multiple cores but until you get into the realm of thousands of ships on minimum graphics settings it's still solidly GPU bound on most machines.

There's currently a problem with how small the node segments can be (one system) which is tied into the removal of Off Grid Boosts, but that's not exactly a problem with multiple cores, that's a problem with how the universe is segmented off onto nodes and how those nodes pass work around.

From what CCP have been saying, at Fanfest recently as well as in the past, the current area they're looking for performance improvements in is segmenting off tasks to dedicated nodes to avoid replication of work when data is transferred between nodes.

Saladinae wrote:
No matter how the clouds separate and merge, they will always have less than (N^2-N)/2 point references, which is the least possible number without clouds.

In general, there would be a reduciton by 92-94% point references (on average, aka Law of Large Numbers Over Time, general statistics) over the course of a fight.


That assumes that all events are created equal though, and we know from CCP that entity creation and destruction is exponentially more expensive than simply maintaining that entity. That's why there's generally a spike of TiDi when a large fleet moves from one node to another.

It also assumes that you're completely tracking a cloud as one entity, but you're already talking about dealing with individual drone properties on some level so those still need to be tracked, which further degrades your performance gains. If the cost of entity creation/destruction is high enough then this approach could actually result in decreased performance for the majority of use-cases where there aren't thousands or tens of thousands of drones on a single grid.
Saladinae
Red Pill Gaming Syndicate
Brotherhood of Spacers
#25 - 2015-04-18 03:26:06 UTC  |  Edited by: Saladinae
Cade Windstalker wrote:

That assumes that all events are created equal though, and we know from CCP that entity creation and destruction is exponentially more expensive than simply maintaining that entity.


If taylor approxmiations of trig/radicals for maintaining copious entities is less intensive than the creation and destruction (garbage collection) and surjection mapping (many references unto one) of entities (the primary function of a gaming engine), then the entire engine needs to be trashed.

Perhaps they should rebuild EvE engine from Mathematica (wolfram).

Winmatar > Everything else

Previous page12