Your Client Performance and You - Upcoming Improvements | EVE Online

Your Client Performance and You - Upcoming Improvements

2007-04-24 - By CCP Oveur

The last blog covered performance and lag issues, something which sparked a lot of discussion - not only about the client but in general that we felt we were blaming the internet for everything.

We understand why this confusion occurs, especially since we haven't covered a lot of the lower level technology improvements that we're working on. Pointing the community towards Pingplotter further encouraged this misunderstanding.

Why check the internet? You know it's on your end!

Throughout our 4 years of operation, we've frequently asked you to help us out troubleshooting our ISPs connections and our internal networks. Here is one example and here is a followup on that. The reason is simple, the area of the networks which are directly (our own) or indirectly (our ISPs) under our control fail just as other networks fail - and we often need external information to help us pinpoint it.

But why check it when you are looking for client or server problems?

It's quite simple, to rule out that the problem you are encountering is due to packet loss or anything like that. Nothing more to it than that, simply to rule out the network as a possible cause.

The client improvements

On to the juicy bit. To emphasize that we're aware of most of the problems you are encountering, let's go through some of the low level improvements we're working on. Note, this isn't stuff like fixing a bug in the overview which causes its performance to degrade, this is actual improvements of current systems or full rewrites.

First and foremost, the new graphics engine Trinity 2 should be mentioned. Sure, it's also adding new goodies to utilize newer graphics card and there's even a special version for Windows Vista to utilize the powers of DirectX10. However, the current engine is almost 5 years old and time eventually catches up with you, especially when you keep expanding on top of that old foundation.

The new engine is moving more of the processing to the graphics card and optimizing a lot of our older routines. This should benefit most machines that have a relatively recent graphics card (up to 3 years old or so) but the gains should be greater the more recent the card is, due to more rendering being done in hardware.

New User Interface Framework is in design, also aiming to move more of the processing to the graphics card GPU, but even more importantly, reducing the draw overhead by merging UI elements and layers during rendering. This however is a very tricky operation and involves rewriting large parts of our User Interface - so be patient, we don't want to have a bugfest on our hands - but know that we are addressing it.

A new sound engine is also in the works. Performance and stability (yes, turning on sound) are our first goals, later utilizing some more advanced features of the new engine, e.g. to deliver situational awareness or 5.1 surround polka.

We've wanted a new network layer for quite some time, the problem being that creating it while supporting older operating platforms wasn't really feasible. This is now possible and Slipstream, as it's (admittedly a bit scarily) called is on the horizon.

There are other systems which we are working on, such as better asynchronous resource loading to get you in on the action much quicker during warp-in, various Python improvements and initiatives (Boost Python, RPython etc.) which we're looking at and of course, we're always moving mature code from Python to C if it's highly utilized.

So when is all this coming?

Well, as an example, the new graphics engine was started last year and we're hoping we can release it at the end of this year. The other systems aren't as extensive and require less man-years to create. On the other hand, the UI framework has to be created, then we have to port all the UI to the new framework - preferably without bugs :)

This isn't touching on the server-side but the basic principles are the same. We regularily refactor code, optimize, move to C or simply replace code regularly. Every single patch contains some form or the other but there isn't a silver bullet in there. There isn't a single thing which will make it all run blazingly fast.

But at the very least, now you know we're aware, we're not blaming the Intarweb and we do have some major projects - in addition to regular maintenance - coming out.