Good day to all. Many were faced with friezes and a severe FPS drop during large-scale battles. There is an idea how to optimize the game for such battles. I will describe the essence of the idea, and my version of its implementation. The idea has 2 directions: at the player computer level and at the server level. The essence of the idea at player computer level:
Create a special mode in the game settings called "Large-scale Battle Mode". Including this option, the game automatically adjusts to the most optimized settings for such battles, as well as disables some packet transfers (which will reduce the load on the server). However, in this mode, the maximum range of rendering ships is necessarily preserved.
The essence of the idea at Server Level:
Create a special mode that is activated when there is a huge crowd of people in one place, limiting the bandwidth per player, or rather, receiving and transmitting in this mode only the most critical packages for battles. So that the player does not appear discomfort and lags. How to do it? I have an idea.
How to implement the "Large-scale battle mode.":
Perform zero tests. Create a separate test client that is zero (there’s almost nothing in it, just a few kilometers of a flat surface without textures), and zero characters (who don’t even have animations and textures in the first stages of the tests). Recruit community testers. It is enough to publish information about this on the forum and in the Steam blog under the slogan "We need a lot of testers to work on optimization" and a large number of people will gather. I am more than sure of this. Assign tests for specific dates and times, which is determined by community voting (For maximum presence and stress test). I already did this once.) Believe me, the community is only happy to participate in such tests in order to help developers. You do not put the players in an uncomfortable position with this act, but on the contrary will win their respect and foster their interest.
The essence of the tests is to check how the game behaves and its code (on the player and server side) (some developers also connect to the test like regular players to see what happens with their own eyes) during a large cluster of players in one place at zero conditions. Ideally, the game should work smoothly and without problems. In this case, it is necessary to gradually expand the zero client option, by slightly moving it closer to the game version. If suddenly, when adding one of the parts of the game and server messages during the tests, the players started lags or even strong lags - note what exactly these lags caused, disable and continue tests with other parts of the game. Thus, gradually revealing all problem modules of the game. After that, try to optimize as much as possible each module of the game individually, as well as decide which game modules and packet exchange with the server can be disabled in large-scale battle mode.
You won’t believe it, but in one game with a large crowd of people, it turned out that simple sounds exert a tremendous load on the game client. The server was not loaded at all, however, among players, the frame rate dropped to 1 stable. The sound of walking, shooting, jumping and so on from each player created an enormous load on the game client.
Therefore, the cause of the load during the accumulation of players can be anything. From the trivial problems of the game client to the ultra-high network load on the server. Atlas is a great game in which players are able to entertain themselves by creating their own plot. Each has its own unique story. If you find the key to optimizing it, then it will be very difficult to find a game better.)
P.S. when you be able to create an effective “Large-scale Battle Mode”, I recommend adding an option (checkmark) for players to automatically turn on this mode, when the FPS has strongly sank for a minute, which is initially turned on by default.