It is common knowledge, that multiplayer (MP) in FSO is not in ideal state. For some mods and standalones it is plane unplayable (SWOT, Diaspora). The main problem is, that you can hardly score a hit. I will refer to this problem as Network Miss (NM). Other problems may also persist, but we will address them later.
Now, there is a small team of willing and, the most important, able people to deal with that problem. This thread will describe the current state of events and problems we face. Ideas and offers of assistance are welcomed.Please note
that posts about how multiplayer is not needed and that we should put our efforts to something else will be considered offtopic here and I’ll kindly ask moderators to remove those.I. What we know so far.
To solve a problem one need to comprehend it first. And here just some empirical notion like “it seems hard to hit anyone in MP” is not enough. We need some hard evidences that are documented and are measurable. And we have some, and will obtain more. Their proofs and techniques we use to document them are gathered here
. This section can be extended with your help.
A) What can be seen ingame:
1) There is a significant offset of a player’s ship position as it seen on the server and on the client itself, both during the flight and in a static situation (latter is proven in Diaspora, but not on FS).
2) On the client it may seem like hits being scored: projectiles hit enemy ships, damage sfx are in use, enemy could even “catch smoke and fire”. But on the target’s monitor it is seen that hull percent only flashes while "damaged", but don’t go down.
3) In the end the “primaries hit” percent number (accuracy) is lower, and disagrees with what player saw on his client.
4) With certain mods NM problem gets worse, and accuracy against enemy fighter may go as low as to 0-1%, with only few hits actually score. General rule - the further mod is from original FS (in terms of ships, their speed as well as projectiles speed), the worse is the problem.
5) There are lags and jumps of the ships even if ‘Object update’ setting in Multiplayer options is set to LAN. In fact, jumps can become even more noticeable with this setting.
B) What we know from code:
1) Game uses Bezier splines to approximate client’s ship trajectory. Those are not even pass through the points that client reports to the server. This could possibly be the root of position problem.
2) ‘Object update’ determines the rate with which client state is synchronised with the server. II. What is the main hypothesis.
For now I think that the main problem is NM. If it will be fixed, MP will be mostly playable, especially in Diaspora and other non-FS based mods. And it is very likely, that we can leave for now the network layer itself and how packets do actually fly, because nowadays network throughput is very forgiving. So we can try not to touch network layer (hard part) and to fix the math (easy part) first.
Others can correct me if I’m wrong on this. III. What we do.
1) First, we need some tools, that could help us to illustrate and debug the problem. This likely includes:
Mod and missions, which are specially prepared to debug the problem (for now we have one).
2) Automated tool
that will allow us to test MP quality in terms of NM problem (80% is ready, I’ll post later).
3) Tools that are using Debug console to show various network parameters (for example local and server positions of the client’s ship, etc), allows network Debug (without server disconnection). (10% ready - as there were some usefull commands in Debug console already).
4) And finally, we need to fix NM problem.
Also, if someone sees some wierd English senteses here, please, let me know - I'm trying to improve my English.