I found the reason: Elite is using Peer to Peer networking. oO
They means that every player is submitting it's information to every other player.
That's the cheapest way (like torrents work), you just need a "seeding" server and all the real communication happens between the clients.
And the worst: they bound the network into the rendering loop.
So what does that mean ?
If any single player who is in your instance (even if he is out of range by 500000LS) has a bad connection to YOUR PC then your game suffers.
Not just the interaction between YOU and the OTHER. Also all NPC ships who are "controlled" by the other one. NPCs will start to move laggy around (I am sure you have seen it before)
Your framerate drops on top of it.
And believe me your connection is not good to other people, that's residential dialin and not a high quality server uplink.
from one of their devs:
It is a challenging problem, we're both trying to fix underlying network protocol issues, and also look at workarounds. The protocol is intended to handle lost packets, but subtle bugs can sometimes creep in due to packets lost or arrived out of order, or if two machines both send each other conflicting requests, which overlap in flight.
One machine with a lossy connection or slower ping times can affect everyone in the p2p session, it gets worse with the size of the group, and is especially difficult for a new player joining the session.
One of the plans I'm working on is for all the machines to evaluate a 'quality of service' metric for all their connections (based on loss rates, ping times, overdue message queue size, etc) and report this to the server, which can then combine them into a session 'health'. We would then use this to avoid adding new players into a dysfunctional session.
The main changes from Alpha3 to Alpha4 were:
Optimisations: reducing total network traffic load
Flow control: don't send too much to another machine that can't keep up
Load balancing: a busy machine will hand-off authority over NPC ships to less heavily loaded machines
Improved prioritisation of messages
Using a P2P system in a real time game is not just a bad idea. It's an absolute nightmare.
I still can't believe they did that.
Maybe they wanted to make sure their servers are going to handle it in a cheap budet way if the game does not succeed.
The only fix for the real problems of Elite Dangerous would be a complete engine re-write. Throwing all the network related code away and rewriting it to server-client communication (as all other games use).
Of course they can fix the stuttering as the network code in the rendering loop is not related to P2P data exchange but the overall design flaw is sitting in the heart of the game.