Framerate and Performance: Difference between revisions

From Vintage Story Wiki
No edit summary
Line 4: Line 4:


===Maximising performance===
===Maximising performance===
1. If you are playing Single Player, for maximum performance and stability - on a modern PC with at least 16GB of RAM and a decently good CPU like Intel Core i5 or better, or AMD Ryzen 5 or better - you can instead set up a dedicated server on your own PC.  So you copy/move your saved game world into the server's save folder and run VintagestoryServer.  Then start the game client and connect to the server you made as if it's multiplayer, the address of the server on your own machine is always 127.0.0.1.
1. If you are playing Single Player, for maximum performance and stability - on a modern PC with at least 16GB of RAM and a decent CPU like Intel Core i5 or better, or AMD Ryzen 5 or better - you can instead set up a dedicated server on your own PC.  So you copy/move your saved game world into the server's save folder and run VintagestoryServer.  Then start the game client and connect to the server you made as if it's multiplayer, the address of the server on your own machine is always 127.0.0.1.


''Why this helps: it means the server part of the game (which generates and runs the world) and the client part of the game (which produces what you actually see on screen) can each run separately in their own memory space, without conflicting with each other and with reduced lag spikes.''
''Why this helps: it means the server part of the game (which generates and runs the world) and the client part of the game (which produces what you actually see on screen) can each run separately in their own memory space, without conflicting with each other and with reduced lag spikes.''
Line 21: Line 21:


''(Note that VintageStory does use multithreading for efficient performance, which is why the game runs best on a CPU with 4 cores or more.  But the main rendering thread, which is one of the limits on FPS, runs on a single core.)''
''(Note that VintageStory does use multithreading for efficient performance, which is why the game runs best on a CPU with 4 cores or more.  But the main rendering thread, which is one of the limits on FPS, runs on a single core.)''


===CPU or GPU runs too hot===
===CPU or GPU runs too hot===

Revision as of 14:54, 27 May 2021

Vintage Story aims to be a high performance game even on non-gaming hardware, such as laptops. For high-end gaming hardware, it should be possible to achieve high framerates (100fps or more) even with all settings maximised.

Generally each new major version of Vintage Story should have better performance: version 1.15 is noticeably better than 1.14, for example.

Maximising performance

1. If you are playing Single Player, for maximum performance and stability - on a modern PC with at least 16GB of RAM and a decent CPU like Intel Core i5 or better, or AMD Ryzen 5 or better - you can instead set up a dedicated server on your own PC. So you copy/move your saved game world into the server's save folder and run VintagestoryServer. Then start the game client and connect to the server you made as if it's multiplayer, the address of the server on your own machine is always 127.0.0.1.

Why this helps: it means the server part of the game (which generates and runs the world) and the client part of the game (which produces what you actually see on screen) can each run separately in their own memory space, without conflicting with each other and with reduced lag spikes.

2. It may help to play the game in Full Screen mode, not windowed mode.

3. Vintage Story has a wide range of graphics settings. Adjusting these up or down, and switching on or off the fancier elements, can have a huge effect on performance. The tooltips on each control on the Graphics settings page should give you some pointers.

Large view distances have an effect not only the framerate (fps) on screen, but also performance throughout the game. If everything is sluggish or there are frequent lag spikes, try turning down the view distance. The game is balanced to be smooth and playable on most modern PCs at view distances around 256 block to 384 blocks. Above 512 blocks is certainly possible in short bursts to see what it looks like, but long-term play at such large view distances is best left only for high-end gaming PCs.

4. On ultra HD monitors, it might be an idea to turn down the resolution to a standard HD setting like 1920x1080. You won't lose much graphical fidelity and it will certainly help performance.

5. Make sure your CPU is not overheating and therefore "thermally throttling". If you run Vintage Story with no VSync and unlimited frame rate, it will take one of your CPU cores to 100% permanently. That in turn will cause the CPU internal temperature to rise. You can monitor temperatures using a free 'Hardware Monitor' tool, or just listen to the fan noise ramping up! If the CPU internal temperature is approaching maximum allowed levels (90-100 °C on a modern CPU, that's hot enough to boil water) then on most modern systems, the CPU will automatically switch to running slower than its maximum speed, this is "thermal throttling". This will slow down the game's performance. To prevent this thermal issue, use VSync or max frame rate limits to prevent your CPU cores reaching 100% usage: your game will probably actually run faster overall if the busiest CPU core is at around 70-80% utilisation or less.

Tip: on Windows on a multi-core PC, the overall CPU usage percentage can look small even if one core is maxed out. For example, with 8 cores, one core maxed out at 100% would only be 12.5% CPU usage overall. To see what's really going on, you need to use a non-Microsoft tool like Hardware Monitor.

(Note that VintageStory does use multithreading for efficient performance, which is why the game runs best on a CPU with 4 cores or more. But the main rendering thread, which is one of the limits on FPS, runs on a single core.)

CPU or GPU runs too hot

  • The main way to control CPU and GPU usage is using the Vsync and Max FPS settings in the graphics settings.
  • One path to optimise both: pick a framerate you want e.g. 60 fps. Now with VSync off and Max FPS unlimited, adjust the graphics settings that heavily affect framerate (view distance, godrays & bloom, shadows, SSAO) to hit a framerate that's about 15%-20% better than you want, e.g. 70 fps or 80 fps. When the game can comfortably hit that, now set Max FPS to 60fps and VSync to 'On + Sleep'. This should produce a stable 60fps, a smooth game with no lag spikes, and less than 100% CPU and GPU usage so that your fans run quiet.
  • The Occlusion Culling graphics setting is recommended on modern multi-core CPUs - it uses one additional CPU thread but leads to less work for the GPU.