|
Author |
Thread Statistics | Show CCP posts - 9 post(s) |
|

CCP Lingorm
C C P

|
Posted - 2008.08.13 09:39:00 -
[1]
I can't go into all the details, because I do not know all of them, but here are some of the calculations that needed to be calculated every time period on a grid in combat.
Travel vectors and collisions. We need to calculate the space ship will occupy while traveling and then see if any other ships intersect/collide with this.
Transversal velocity. We need to know your velocity in respect to other ships on the grid for calculating hit chances and such.
Hit and damage calculation.
Missile and drone travel paths (these are non collision object so collisions do not need to be calculated). Missile terminal maneuvers.
Ship status/effect changes (turning modules on and off, auto reactivation, capacitor, dmg resists, repair, boosting, webbing, scrambling, jamming etc).
So as you can see it is not a trivial set of tasks.
Please remember that this is not a complete list and a basic description of the process but it gives you an idea of what is done.
CCP Lingorm CCP Quality Assurance QA Engineering Team Leader
Originally by: Lord Fitz Eve is to WoW as Wow is to an 8 player game of Unreal Tournament.
|
|
|

CCP Lingorm
C C P

|
Posted - 2008.08.13 13:50:00 -
[2]
One of the things that makes the fps easier on physics calculations is that they can be done on your machine ... your machine has the map data and can control where you are allowed to go, so the server only has to run minimal checks on this. In EVE your machine does not have this data, the servers do so it has to do all the computational work and then send you all the results.
And the transversal calculations are not as simple you make it sound, as it increases exponentially with the number (actually it is the sum of the number of ships and drones) of people on that map ... hit calculations are also per gun so the number of guns (including each gun on a drone). Damage calcualtions (per gun, drone and missile hit) ... so you can see how this grows very rapidly in a fight ...
There is also other stuff that is going on ... will not get into all of it as I do not understand all of it (yet).
CCP Lingorm CCP Quality Assurance QA Engineering Team Leader
Originally by: Lord Fitz Eve is to WoW as Wow is to an 8 player game of Unreal Tournament.
|
|
|

CCP Lingorm
C C P

|
Posted - 2008.08.13 15:44:00 -
[3]
There could be some filtering on this ... but as there are so many circumstances where this is needed I am not sure what those are ...
CCP Lingorm CCP Quality Assurance QA Engineering Team Leader
Originally by: Lord Fitz Eve is to WoW as Wow is to an 8 player game of Unreal Tournament.
|
|
|

CCP Lingorm
C C P

|
Posted - 2008.08.27 09:49:00 -
[4]
Dr Slaughter is pretty much correct in his diagram.
The network bandwidth is only a limitation IF you want to multi thread or dynamically move tasks to other processors on other machines (which is something that we would like to do as it would allow us to dynamically assign cpu power). It is also possible for you to have connections to MULTIPLE Sol node (Solar System, Chat, market, Gang etc) keeping these in sysnc will be faster with more network bandwidth (this will result in a reduction in the session change time hopefully).
So yes we are working on Infiniband (as has been discussed), this in and of itself will have a small impact on performance (for the better) but it will ENABLE us to do other things that will have a much greater impact on performance. Such as dynamic node shifting under load. further break down of the solar system services into grid and station based services from different nodes, reduced Session update times.
CCP Lingorm CCP Quality Assurance QA Engineering Team Leader
Originally by: Lord Fitz Eve is to WoW as Wow is to an 8 player game of Unreal Tournament.
|
|
|

CCP Lingorm
C C P

|
Posted - 2008.08.28 09:25:00 -
[5]
The server side (and client side) code is a mix of Stackless Python and C/C++ (C++ is client side in the graphics engine).
Server side the C code is in the Physic's, Network and other low level sections. The 'Business' logic (to use the common term) is all Python.
CCP Lingorm CCP Quality Assurance QA Engineering Team Leader
Originally by: Lord Fitz Eve is to WoW as Wow is to an 8 player game of Unreal Tournament.
|
|
|

CCP Lingorm
C C P

|
Posted - 2008.08.29 11:43:00 -
[6]
We have recently added new tools that let us profile this information in a more graphical way (using the KCacheGrind Tool) and are drilling down into this.
I can not go into the details of 'what exactly' is the heaviest part of the code, because people would then make unfair use of that. Sorry but it's true.
We know where the load is and we are actively working on those parts one at a time to optimize and harmonize the performance of them. Some of them have already been mentioned (like better analysis tools, looking into multithreading in certain code paths (where allowable), refactoring old code and in some cases completely replacing old systems with new.
One of the systems due for replacement is the networking layer. It is being standardised, and better separated to improve stability, performance and also to make it easier to work the HPC/MPI interface stuff into it.
This has been mentioned in other threads by various Dev's and at Last years Fanfest.
CCP Lingorm CCP Quality Assurance QA Engineering Team Leader
Originally by: Lord Fitz Eve is to WoW as Wow is to an 8 player game of Unreal Tournament.
|
|
|

CCP Lingorm
C C P

|
Posted - 2008.09.02 18:37:00 -
[7]
Originally by: Frederik Andersen Edited by: Frederik Andersen on 02/09/2008 18:23:51 Heres my 2 cents on making clients/eveserver run faster.
1. Move more calculations to the client. 2. remake the calculations (ask clientfirst, then calculate if needed) 3. raise the requirements for client CPU, GPU, MEM. 4. simplify the data transfored from client to server and visa versa. 5. chop up calculations done on each server. As i understand theres one for market, one for mail and such. lets pick marketserver: A. Requestments server. B. Buy server C. Sell server
6. If theres a way of calculating "Lag" then set up a designated server to monitor client lag. If client hits ping of 50, then stop the calculations done by all the other servers. And wait till client hits under 50 ping. 7. Upgrade server. Yes this means more money spent on server and might not be cheap done. CCP can raise the gaming fee of 114 euro's to 200 i dont care. All i want is my game experiance to be the best. And i'm willing to pay for it. 8. Ask IBM to release their crystal cpu's with infinate clock. 10 times 1000Ghz crystal cpu's can calculate a lot of data. 9. make an assistance server/servers that can help a node that is about to crash.
If CCP has any questions please contact that medical centre that uses clients to calculate data on external user CPU's around the world. Can't remember the name of the corp.
Sorry but passing the data out to a third party is not viable. We could not TRUST the client to calculate the results. People could modify their clients. So we have to do all the calculations on the server.
|
|
|

CCP Lingorm
C C P

|
Posted - 2008.09.03 12:45:00 -
[8]
You seem fixated on the distributed model.
This has been looked into and while it would technically be possible the additional work of running and maintaining checksums, hashes and related verification mechanisms would consume any resources saved by outsourcing.
Next you would have the issue of what to do if the distributed data was not returned in a timely fashion. This would force the server to then run the calculation. This would then further delay the sending of results. It would also waste any time that was spent managing the distribution of that calculation.
Serverside is the only viable calculation methodology for the realtime nature of EVE.
Distributed slacktime models only work for non time dependent processing like 'Folding at home' etc.
Additionally do you really want you client to have to handle more calculations in a heavy fleet fight because you (and all the people in your fleet) are closer to the server and available for distributed work, while the enemy fleet is further away and is not viable. They now have an advantage in that their clients are not doing any extra workload, making them more responsive to user interaction.
CCP Lingorm CCP Quality Assurance QA Engineering Team Leader
Originally by: Lord Fitz Eve is to WoW as Wow is to an 8 player game of Unreal Tournament.
|
|
|

CCP Lingorm
C C P

|
Posted - 2008.09.10 09:00:00 -
[9]
Ummm ... the servers don't have GPU's ... they are simple blades.
So offloading any work to the GPU is not possible at this time.
CCP Lingorm CCP Quality Assurance QA Engineering Team Leader
Originally by: Lord Fitz Eve is to WoW as Wow is to an 8 player game of Unreal Tournament.
|
|
|
|
|