In one of today's hottest new games, Star Wars Battlefront 2, you can participate in epic battles set in a galaxy far, far away. If you look at EA's system requirements, you might think you can't run the game on a laptop that has low-end graphics or one that's a few years old. However, if you know what settings to tweak, you can play Battlefront 2 on just about any notebook, provided that you have some kind of discrete GPU, even a cheap one.
Unfortunately, in our tests, systems with integrated Intel HD/UHD graphics jumped up to 100 percent CPU utilization during play, causing them to overheat and become unstable. On the bright side, our experiments show that you can run Battlefront 2 on a modern notebook with low-end Nvidia MX150 graphics or one that has midrange graphics from six or seven years ago.
To make Battlefront 2 playable on a laptop that has low-end graphics, you'll need to follow five basic steps:
- Lower the in-game settings.
- Make sure everything is on the lowest setting on the configuration file.
- Use DirectX 12.
- Disable indoor lights and experiment with other dev console variables.
- Experiment with internal resolution.
Lower in-game settings
The game's configuration screen is very self-explanatory, and disabling or reducing everything to the lowest setting is a fairly straightforward process.
You can also simply select the Low preset, but you might want to make sure the settings are actually at their minimum.
Disable everything in the config file
Changes in the settings screen are stored in a configuration file located in your documents folder under the Star Wars Battlefront II\Settings subfolder. The file is called ProfileOptions_profile. You can open it using Notepad or Notepad++.
You can use the image below as reference to see how this file is supposed to look on the lowest settings.
Pay special attention to GstRender variables, as those control graphical and visual quality. For example, in at least one of our test setups, the following variables were not set to 0 (the minimum): GstRender.SkyCelestialQuality, GstRender.DebrisQuality, GstRender.UndergrowthQuality and GstRender.MotionBlurEnabled.
Take note of the location of GstRender.ResolutionScale, because we will going more into depth on this one in a minute.
Use DirectX 11 instead of DirectX 12
Battlefront 2 is one of the new titles that includes support for Microsoft's DirectX 12. This Windows render API is supposed to allow for better performance in game by reducing overhead and providing extra functionality like dynamic resolution scaling.
This optimization, however, seems to be geared toward high-end users, because our tests in DirectX 12 were disappointing. The game would stutter and freeze constantly while we tried DirectX 12 on a compatible, low-end GPU. It is recommended that you stick to DirectX 11 if you are not closer to the recommended requirements.
Use the dev console, Luke!
The Frostbite Engine used by Battlefront 2 supports a dev console for experimenting and changing variables while the game is running.
While in the game, you can access this by pressing the "~" button on your keyboard.
If you have followed the previous steps, most of the important stuff should be disabled, but there are some extra things you can experiment with in the dev console. For example, setting RenderDevice.Dx11Dot1Enable and RenderDevice.Dx11Dot1RuntimeEnable to false can disable some extra DirectX features. You try this by writing each one of these variables in the console, entering a space and then typing the number 0.
Another useful command that will be familiar to Battlefield players is Thread.ProcessorCount, which you can set to the number of cores in your CPU.
If you want to test something more dramatic, try setting WorldRender.LightTileCsPathEnble to 0. This disables some of the lights used on indoor scenes, and doing so can have a very positive impact on performance.
This will also disable the holograms on the main menu, so don't be alarmed if all you can see there is an outline.
You can do this very quickly by writing the first couple of letters and pressing Tab. The console will autocomplete to the closest command and show you a list of commands that could be completed from the existing test. You can then type some more characters in the variable and press Tab again to keep autocompleting. You can also use the up and down directional keys to navigate commands that you previously used during the same game session. Once you get the hang of this, you can get into most commands pretty quickly.
The bad news is that there does not seem to be a way to save these values. In previous Frostbite games, you could put a collection of console commands into a file to be applied to the game on boot, but this feature seems to have been removed.
I suggest you take note of which commands work for you and apply them yourself when you enter the game.
Change the internal resolution
Battlefront 2 joins the ranks of a growing number of games that provide an internal resolution scaler, marked on this game's settings as Resolution Scale.
This setting controls the resolution of the game's 3D elements without affecting text, menu or UI, which means you can use lower resolutions for greater performance without affecting menu readability or while using borderless window mode.
In the game menu, the minimum allowed value of this variable is 25 percent (which corresponds to an effective resolution of 480 x 270 if external resolution is set to 1080). But, in practice, any multiplier value can be set in the configuration file by changing the value of GstRender.ResolutionScale. A value of 1 corresponds to 100 percent of the external resolution, 0.5 percent corresponds to 50 percent external resolution and so on.
It can often be useful to change this value from the dev console using the Render.ResolutionScale command. This changes the resolution while the game is running, meaning that you have room to experiment and see how it affects performance and visibility. This value has no limits either, so using the command as Render.ResolutionScale 0.05 will render this pixelated mess:
This value is reset back to whatever is on the configuration file as soon as a level is reloaded (when you change class, for example). So don't forget to change the configuration file when you get to a value that works for you.
Test results: Very playable
For the first test, I used a Xiaomi Notebook Air with a 7th Gen Intel Core i5- 7200U CPU, an Nvidia MX150 GPU and 8GB of RAM.
This i5 model is common among laptops sold between late 2016 and late 2017. The Nvidia MX150 is the successor to the 940MX that started appearing on laptops around August 2017. The MX 150 is a mobile version of the GT 1030, the lowest-end GPU from Nvidia's current generation. It's not intended for heavy gaming, with Nvidia's promotional material mentioning only games like League of Legends and Counter-Strike: Global Offensive.
However, with the tweaks mentioned above and a resolution scale of 0.5 (960 x 540 effective resolution), the game managed to maintain close to 60 fps in Galactic Assault maps. It lost performance only due to a CPU bottleneck in moments of intense action, such as explosions very close to the player, or when the player was moving fast through the map, causing new areas to load.
On the Starfighter Assault game mode, the performance was better, with barely any fps drops. Overall, the game is significantly more playable than you would expect from something that's under the minimum requirements.
Because the test went so well, I decided to try the game on something way less modern: an old Alienware M11x.
The Alienware M11x was Dell's attempt at an ultraportable Gaming Laptop; it was introduced in 2010 and discontinued at 2012. The test laptop, in particular, comes equipped with a Core i7-2637M, a laptop CPU from 2011 and a GT 540M, which was a midrange GPU also from 2011.
This is hardly the kind of device you would think of for playing a heavy AAA 2017 release, but when I used the tweaks above and a resolution scale of 30 percent (576 x 324), the game managed to consistently perform over 30 fps on Starfighter Assault, even when the battle got intense.
In the heavier Galactic Assault mode, a significant higher number of micro freezes were observed at the start of the match or while running through the map, mainly due to the old i7 struggling to keep up with the game. Surprisingly, once the map was done loading, the freezes were significantly reduced. Disabling indoor lighting was particularly useful in maps that required defending an objective indoors, as the laptop was able to keep the game over 30 fps.
As long as you are using a dedicated GPU, Battlefront 2 is a highly optimized game that you can play at high frame rates. Just make sure that the game's special effects are set to the lowest possible numbers in the config file, and use the dev console tool to explore and experiment with other variables to see if you can gain any performance. Once you understand how to navigate the console quickly, you can even apply some tweaks, like disabling indoor lights or dropping internal resolution, to get an extra boost midgame.
It's a shame that modern laptops with integrated graphics cannot run the game in a stable fashion. However, as long as you have any dedicated Nvidia or AMD GPU from the last five or six years, you should be able to get started on this game.