America's Army Tweak Guide
[Page 8] Advanced Tweaking
You can change more than just the settings available under the in-game menus by editing two .ini files called ArmyOps.ini and User.ini in your \America's Army\System\ directory. Before making any changes to them however, first make copies of these files and keep them as backups. If at any point you want to go back to the default settings, simply delete ArmyOps.ini and/or User.ini, and the system will recreate them using all the default settings the next time you launch the game. Note that the files Default.ini and DefUser.ini contain the system default settings for ArmyOps.ini and User.ini respectively. Do not delete or alter the two default files - the system requires them to remain unchanged. Furthermore, do not import older versions of these .ini files into the latest version, as there are differences which may cause problems; always start tweaking them from scratch.
To edit the ArmyOps.ini and User.ini files you can use any text editor such as Windows Notepad. Note that since America's Army is based on a modified version of the Unreal Engine originally designed by Epic Games for Unreal Tournament 2004, entire sections of the .ini files are non-functional in America's Army, so certain settings within the .ini files have no impact whatsoever.
It's important to understand that changing the ArmyOps.ini and User.ini files as detailed in this guide is not considered cheating or 'hacking' - it is simply further customizing the game to maximize your system's performance. The America's Army's Developers have stated that the .ini files can be edited by users and have also shown their support for this guide, as well as linking to it under the Support>Links section of the game itself. However, editing the .ini files to use unauthorized, unrealistic or exploitative values is against the spirit of the game and may see you get booted and/or banned by the PunkBuster anti-cheat software or by custom Admin software on certain servers. There are many settings in the .ini files which you should not edit, so if it isn't shown below I strongly recommend that you do not edit them.
Details of the particular sections and settings to edit in each .ini file are provided below, however note that settings which can be fully changed using the in-game settings won't be covered - you should use the Settings screens to adjust those (See the In-Game Settings section). What I cover below are the major working commands:
ArmyOps.ini
[Engine.Engine]
RenderDevice=D3DDrv.D3DRenderDevice
;RenderDevice=D3D9Drv.D3D9RenderDevice
;RenderDevice=Engine.NullRenderDevice
;RenderDevice=OpenGLDrv.OpenGLRenderDevice
;RenderDevice=PixoDrv.PixoRenderDevice
America's Army only runs using the DirectX API (D3DDrv), and cannot run under OpenGL or Software render devices. If you still want to try another renderer, simply remove the ';' from in front of the render device you wish to use, and make sure a ';' is in front of all the other renderers.
As of Version 2.8.1 onwards, you can now use the Direct3D9 render device, rather than the default Direct3D device. This may provide improved performance, though in my testing it appears identical to the normal Direct3D renderer. Importantly, if you do select the D3D9 renderer here, then further below you will have to change the settings under the [D3D9Drv.D3D9RenderDevice] area of ArmyOps.ini, not the usual [D3DDrv.D3DRenderDevice].
Note that you cannot however use the other render devices, such as OpenGL, because the appropriate drivers to run in OpenGL or Software mode are currently missing from the game's main directory. For the record running in OpenGL or Software modes in Unreal-based games is usually slower and more buggy than Direct3D anyway, since the engine is designed around D3D. Do not manually copy any alternate renderer files into your System directory (e.g. from UT2004), as these don't work and may be detected by PunkBuster as a cheat.
[Engine.GameEngine]
CacheSizeMegs=64
This value represents the amount of System RAM set aside for temporarily caching game information. This setting is not designed to impact on FPS as such, it is more for reducing loading pauses in-game. I recommend a cache size of 64 for all systems (which is the default). If you have more than 512MB of RAM you can try a cache value of 128, however I don't suggest increasing this value any higher since the cache is not where the entire game is meant to load into. Increasing this setting to a very high value (e.g. half of your RAM) is likely to negatively impact on overall performance. More importantly, values higher than 128 greatly increase the likelihood of Critical Errors/General Protection Faults in the game.
UseSound=True
Set this to False if you want to disable all sounds and perhaps see a performance improvement. Obviously this is not recommended, however the option is here if you want it. This might be useful if troubleshooting to see if your problems are sound-related for example.
[WinDrv.WindowsClient]
FullscreenViewportX=1280
FullscreenViewportY=1024
These two settings control the resolution of America's Army when playing in full screen mode. While this should always be adjusted using the in-game settings, if for some reason you want to try a non-standard resolution which is supported by your monitor - such as 640x480 - or you are having trouble entering the game to alter your resolution you can alter it here. The value ending in 'X' is the width in pixels, while the value ending in 'Y' is the height in pixels. Note that a resolution below 800x600 may cause problems with in-game menus and F1, F2 menu displays, and is not officially supported.
Brightness=0.830000
Contrast=0.800000
Gamma=1.040000
Although these settings should be adjusted in-game, you can fine tune them here if you find the in-game settings sliders to be troublesome. Note that setting Gamma to a very high value will be detected as a cheat by PunkBuster.
MouseYMultiplier=1.000000
MouseXMultiplier=1.000000
These settings control how magnified your mouse movements are. The MouseYMultiplier setting controls your mouse's up and down movements, the MouseXMultiplier setting controls the left and right ones. The larger the number you enter for these, the more exaggerated will be the translation of your physical mouse movements into in-game and in-menu movements on screen. Only change these settings if you cannot improve your mouse responsiveness with the in-game mouse settings.
[Engine.Player]
ConfiguredInternetSpeed=10000
ConfiguredLanSpeed=20000
As of Version 2.4 onwards these settings in ArmyOps.ini do not have any impact on the game - the ones which do have been moved to the [Engine.Player] section of the User.ini file and those are the ones you should edit (See User.ini on the next page).
[ALAudio.ALAudioSubsystem]
UseEAX=True
This setting determines whether Creative's Environmental Audio (EAX) is enabled, and depends on your Audio Mode setting in the in-game settings (See In-Game Settings section). If you believe your sound card supports EAX, but the option is not available to you in-game, set it to True here.
Use3DSound=True
This should be set to True for most people, as it uses your sound card's 3D sound capabilities. However it may be set to False in some instances, so make sure it is set to True.
CompatibilityMode=False
If you're experiencing audio problems and tried a range of other tweaks, then setting this to True may help resolve problems. Note that you may experience reduced performance and sound quality from using Compatibility Mode.
UsePrecache=True
This option attempts to pre-load most sounds into memory while loading maps. Setting this to True is the best option for most people, as it avoids the small lags and hitches in-game if sound is loaded up during gameplay. However if you want to decrease loading times you can set this to False, although you may experience more in-game loading pauses as sounds are loaded 'on the fly'.
Channels=32
You can set the number of individual audio channels used for sound in America's Army manually by editing this number. The default of 32 Channels provides excellent quality audio, however setting this to a lower value (such as 16) will improve your overall performance at the cost of audio quality.
Rolloff=1.000000
This setting was incorrectly set to a value of 0.5 in AA version 2.4, however the Developers have rectified this and set it back to a default of 1.0. Importantly, this value now cannot and should not be changed from 1.0. Do not edit this line as it is no longer functional.
[D3DDrv.D3DRenderDevice]
HighDetailActors=True
Set this to True for a slight performance loss but graphics quality improvement.
SuperHighDetailActors=True
When set to True, this ensures the highest quality of detail on the characters and objects in the game. Set this to False if you need the performance boost.
UsePrecaching=True
If set to True, this allows the game to precache (load in advance) a range of graphics data. This helps reduce loading pauses, choppiness and hitches in the game, especially at the start of a new map. Only set this to False if troubleshooting a problem, or if you want to reduce loading level loading times in return for more in-game hitching.
UseTripleBuffering=False
Set this option to True to improve overall performance when VSync is enabled. Using Triple Buffering may cause problems for graphics cards with lower Video RAM, so set to False if you’re experiencing problems such as mouse lag or stuttering, or if you have disabled VSync. For more details of what Triple Buffering does, see this page of my Gamer's Graphics & Display Settings Guide.
UseCubemaps=True
This is a trick used to make some reflective surfaces like water puddles and computer screens look like they’re actually reflecting what’s around them in 3D. Turning it off (set to False) can improve graphics performance without any noticeable drop in image quality. For most systems however set it to True for best visual quality at the cost of minimal FPS.
DesiredRefreshRate=60
If you have VSync enabled (See In-Game Settings section) then your refresh rate will be limited to whatever this setting is. However, to reduce monitor flickering and eyestrain, you should set this value to the highest refresh rate supported by your monitor at the desired resolution. For example, your monitor may support a maximum refresh rate of 85Hz (=85FPS) at 1280x1024 resolution when VSync is enabled. This setting is at 60 by default, but you could set it to 85 to make full use of your monitor's capabilities and ease the strain on your eyes. This setting has no impact if you have VSync disabled.
UseCompressedLightmaps=False
Compressed lightmaps are light map textures which have been compressed and hence take up less video memory, however the colors and shadows in these textures have noticeable 'banding' and purplish hues. If you have a graphics card with less than 128MB of Video RAM selecting this setting can result in a performance improvement at the cost of some image quality.
UseStencil=True
I am not totally certain about this setting, but it may be referring to Stencil Buffering. Stencil Buffering can improve performance when enabled by not rendering areas covered by the HUD. This is probably best left at its default setting (=True).
Use16bit=False
This setting determines how many different colors can be displayed on screen. If set to False, 32-bit color is used (the default), if set to True, 16-bit is used. 32-bit color provides the richest color, but 16-bit color provides better performance while also showing reduced image quality. In particular 16-bit color mode displays more color 'banding' – that is, the gradation between colors is more apparent, and there will be purplish and greenish hues around most textures. However using this setting (i.e. setting it to =True) is considered a cheat by PunkBuster due to the potential for graphical glitches which may allow players to gain an unfair advantage.
Use16bitTextures=False
Using 16-bit textures can improve performance however you will notice a drop in texture quality with color banding as mentioned above. However, if you are using 16-bit mode (see above), then it is recommended you also use 16-bit textures for maximum performance without losing any image quality. Again, this will be considered a cheat by PunkBuster so do not enable in online mode.
LevelOfAnisotropy=1
This setting controls the level of Anisotropic Filtering in the game. For more details of Anisotropic Filtering see my this page of my Gamer's Graphics & Display Settings Guide. The minimum value is 1 (setting to 0 makes no difference), and a value such as 2 provides 2xAF, 4 is 4xAF and so forth. Note that you can also force Anisotropic Filtering through your graphics card's control panel - choose one method of applying AF to America's Army, not both.
AvoidHitches=False
If set to True, this setting may help reduce the occurrence of substantial hitches (pauses/stuttering) in the game, but it can also reduce average framerates, so leave this option at default and first try to minimize the loading pauses with the other tweaks mentioned in this guide.
OverrideDesktopRefreshRate=True
If set to True, this setting will allow you to exceed any refresh rate limitations Windows may try to impose on America's Army. Set to True just to be safe, but if you already use a refresh rate fix such as Refresh Force, changing this setting will have no noticeable effect.
DecompressTextures=False
Just as with compressed lightmaps, compressed textures reduce image quality slightly, however they improve graphics performance dramatically as more textures can be loaded into video memory when compressed. Set this option to True only if you have an extremely fast machine and a graphics card with 256MB of Video RAM or more, and you want the absolute highest quality of textures showing. Setting this option to True will cripple most machines' performance.
[D3D9Drv.D3D9RenderDevice]
As noted further above, if you manually set your game to use the D3D9 Renderer instead of the normal D3D renderer, then the settings under this section will have an impact as opposed to those under the [D3DDrv.D3DRenderDevice] section above. The settings are the same as described above however, so you can use the same descriptions.
[Engine.LevelInfo]
KeepDecals=100
If the Decals and Projectors options are ticked in the in-game settings then this setting controls the maximum number of decals which can be shown at any one time. The higher the value the more of a negative impact on your FPS as more decals are able to be shown at any one time. I recommend a setting such as 50 which maintains realism but also provides good performance.
KeepDecoDecals=10
If you've enabled the Decals and Projectors settings in the in-game settings, you can manually assign the maximum number of decals shown on doors using this setting. The default is 10, however you can lower this to a value such as 5 to gain better performance when firing (or being fired at) through doors.
bFadeDecoDecals=True
If this setting is set to True, the decals on doors will fade after a while. I recommend leaving this option on True for performance purposes however if you find it annoying - for example if you see a flickering on a nearby door as decals are removed and this distracts you, set it to False.
Remember, any settings which can be fully adjusted using the in-game menus aren't mentioned above. And once again, most of the settings in ArmyOps.ini will not have any effect on the game since they are part of the Unreal Engine but are not implemented in this game. Finally, some settings are not appropriate for changing even though they have tempting names, either because changing them will be detected as a cheat by PunkBuster, or they are exploits which are against the spirit of the game. Do not experiment with these settings if you don't know what you're doing. The major working settings are already covered above.
The next section covers Advanced Tweaking the User.ini file.