War Thunder – (Dev) Shell and bullet synchronization

War Thunder is an online game where players who fight in one battle may be situated thousands of kilometers from each other. But the game is designed in such a way that 99.9% of the time you will never notice this – interaction with your vehicle is as smooth as if you are playing a single-player game.

You can have a look at this article for more details about War Thunder net code. Today we want to tell you about specific improvements to this code that influence interactions with your opponents which primarily affect aircraft – both in air only and combined battles.

In the recent update we implemented changes that will significantly improve shell (bullet) synchronization between the client and the server – any direct interaction with your opponents.

Shell (bullet) trajectory calculation begins at the same time on both server and client and uses the same physical model. But from now on it will also be synchronized, using the same time sampling rate. This means that now shell (bullet) trajectory on the client will not only be virtually the same as that on the server but in 99% of cases, match it completely, moreover trajectory calculation on the client will no longer depend on your client’s FPS in our game.

As a result of these changes, situations where you see a registered hit in your client but it doesn’t appear to count on the server are reduced to the absolute minimum possible in our net sync model. However you should keep in mind that an unstable connection (unstable ping, packet loss) may still cause problems since the server needs to know whether a shot was fired and also, high ping affects the relevance of the image visible to a client to what is actually being represented on the server.

We would also like to point out that there still exists a myth that in a computer game it is impossible to synchronize and calculate all the ordnance that has been fired by a gun or cannon. This is incorrect – in all our war-related projects we have always calculated every single shell which does not depend on either fire rate or calibre (doesn’t matter whether we are talking about a 7mm Machine Gun or a 30mm auto-cannon). Sometimes there may be many hundreds of thousands of bullets flying through the air simultaneously.