Alright, so you get the RO2 Beta, played around with the settings for awhile, yet the game still runs pretty badly on your system.
You are hoping the developers might find a way to optimize their game, but lets assume that won't happen because since when did that honestly happen effectively?
You are now desperate to find more ways to tweak the graphical aspect of Red Orchestra 2, and this is what this thread intends to do.
Before we start, here is an exceprt for Yoshiro's Performance Thief Thread:
1 - Grab the latest drivers for your video card.
Via
http://www.geforce.com/Drivers or
www.amd.com. We recommend a clean install of the latest drivers!
2 - Install the latest build of DirectX 9.0C
http://www.microsoft.com/download/en/details.aspx?id=35
3 - Are you attempting to run RO 2 with ANY ultra settings?
Beware, these settings can have DRASTIC EFFECTS on your performance. Ultra Shadows alone will drop me 20 FPS vs High. When you first launch the game, it looks at your hardware and picks what we feel are good settings for your particular hardware. Change it at your own risk to performance.
Also to be taken into account is the FoV settings. The game was designed with the default FoV in mind. By changing to that to 90 on a widescreen monitor, your video card will have to render 40% MORE than the default. This will eat frames.
For example, one near minimum spec machine I have here at my desk currently is a core 2 duo 2.4 ghz with a Nvidia 8800 and 4 gigs of ram. Both XP and Windows 7 installed. It runs the game on Windows 7 between 45 and 55 FPS on low settings depending on the map, and can drop down near 30 on large servers (over 32)
On XP this same machine runs a few FPS less due to horrible memory management in XP and the machine having to work more to do the same.
4 - Now the following is NOT recommended, but we have seen several people ask about it. The unreal engine tries to smooth out your frame rate for a more consistent experience. You can change those settings. In ROEngine.ini you can change up the following settings:
Code:
MinSmoothedFrameRate=22
Code:
MaxSmoothedFrameRate=62
5 - Do you run security software?
Be it a firewall or antivirus or some combination, it can RUIN your game experience if it is interfering with the game while it is running. We strongly recommend adding RO 2 binaries and folder structure to any allowed/ignore lists respectively. Especially if you have active real time security on. This is known to kill performance as it will be trying to check every packet and every file the game uses in real time.
6 - Are you an AMD Crossfire user?
If so, we believe there is a problem occurring here and we have reached out to AMD on the issue. For now we recommend disabling crossfire to play RO 2.
Finished now? Made sure that there isn't any other software running in the background that eats up resources? Good, because we will start now.
First, we will need to find a config that is the basis of this thread: ROEngine.ini. Red Orchestra 2 runs off of UE3, which stores it's main system settings into a custom configuration for each UE3 game. You can find this at:
Code:
C:\Users\Hendrich\Documents\My Games\UnrealEngine3\ROGame\Config
Atleast for Win7 users. For WinXP users, I believe its somewhere in:
Code:
Blahblahblah:\Documents & Settings\My Games\UnrealEngine3\ROGame\Config
Inside these folders is your ROEngine.ini. Open it up with a text editor (I highly recommend using Notepad++) and lets get started.
The first thing you notice is a bunch of text which makes no sense, just ignore that and scroll down and use a magnifying to look for a heading called:
Yes, I know it seems like its impossible to find it, but its there, keep looking. It should be somewhere after the halfway point of the scrollbar.
If you are using Notepad++, you can make your life easier by scrolling down until you get to Line #729 on the page.
Once you found it, you should see an entire section looking like this:
Code:
[SystemSettings]
bUseMaxQualityMode=False
StaticDecals=True
DynamicDecals=False
UnbatchedDecals=True
DecalCullDistanceScale=0.150000
DynamicLights=True
DynamicShadows=True
LightEnvironmentShadows=True
CompositeDynamicLights=True
SHSecondaryLighting=True
DirectionalLightmaps=True
MotionBlur=True
MotionBlurPause=False
DepthOfField=False
AmbientOcclusion=False
Bloom=True
UseHighQualityBloom=False
bAllowLightShafts=False
Distortion=False
FilteredDistortion=False
DropParticleDistortion=False
bAllowDownsampledTranslucency=False
SpeedTreeLeaves=True
SpeedTreeFronds=True
OnlyStreamInTextures=False
LensFlares=True
FogVolumes=True
FloatingPointRenderTargets=True
OneFrameThreadLag=False
UseVsync=False
UpscaleScreenPercentage=True
Fullscreen=True
AllowD3D10=False
AllowRadialBlur=False
SkeletalMeshLODBias=3
ParticleLODBias=1
DetailMode=1
ShadowFilterQualityBias=0
MaxAnisotropy=16
MaxMultisamples=1
MinShadowResolution=64
MinPreShadowResolution=8
MaxShadowResolution=800
MaxWholeSceneDominantShadowResolution=1344
ShadowFadeResolution=60
PreShadowFadeResolution=16
ShadowFadeExponent=0.200000
ResX=1600
ResY=900
ScreenPercentage=100.000000
SceneCaptureStreamingMultiplier=1.000000
FoliageDrawRadiusMultiplier=0.500000
ShadowTexelsPerPixel=4.000000
PreShadowResolutionFactor=0.200000
bEnableVSMShadows=False
bEnableBranchingPCFShadows=False
bAllowHardwareShadowFiltering=False
bAllowBetterModulatedShadows=False
bEnableForegroundShadowsOnWorld=False
bEnableForegroundSelfShadowing=False
bAllowWholeSceneDominantShadows=True
ShadowFilterRadius=0.250000
ShadowDepthBias=0.012000
CSMSplitPenumbraScale=0.500000
CSMSplitSoftTransitionDistanceScale=4.000000
CSMSplitDepthBiasScale=0.700000
UnbuiltWholeSceneDynamicShadowRadius=20000.000000
UnbuiltNumWholeSceneDynamicShadowCascades=3
WholeSceneShadowUnbuiltInteractionThreshold=50
bAllowFracturedDamage=True
NumFracturedPartsScale=1.000000
FractureDirectSpawnChanceScale=1.000000
FractureRadialSpawnChanceScale=1.000000
FractureCullDistanceScale=1.000000
bForceCPUAccessToGPUSkinVerts=false
bDisableSkeletalInstanceWeights=false
TEXTUREGROUP_World=(MinLODSize=1,MaxLODSize=4096,LODBias=1,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)
TEXTUREGROUP_WorldNormalMap=(MinLODSize=1,MaxLODSize=4096,LODBias=1,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)
TEXTUREGROUP_WorldSpecular=(MinLODSize=1,MaxLODSize=4096,LODBias=1,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)
TEXTUREGROUP_Character=(MinLODSize=1,MaxLODSize=4096,LODBias=0,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)
TEXTUREGROUP_CharacterNormalMap=(MinLODSize=1,MaxLODSize=4096,LODBias=0,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)
TEXTUREGROUP_CharacterSpecular=(MinLODSize=1,MaxLODSize=4096,LODBias=0,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)
TEXTUREGROUP_Weapon=(MinLODSize=1,MaxLODSize=4096,LODBias=1,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)
TEXTUREGROUP_WeaponNormalMap=(MinLODSize=1,MaxLODSize=4096,LODBias=1,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)
TEXTUREGROUP_WeaponSpecular=(MinLODSize=1,MaxLODSize=4096,LODBias=1,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)
TEXTUREGROUP_Vehicle=(MinLODSize=1,MaxLODSize=4096,LODBias=1,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)
TEXTUREGROUP_VehicleNormalMap=(MinLODSize=1,MaxLODSize=4096,LODBias=1,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)
TEXTUREGROUP_VehicleSpecular=(MinLODSize=1,MaxLODSize=4096,LODBias=1,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)
TEXTUREGROUP_Cinematic=(MinLODSize=1,MaxLODSize=4096,LODBias=0,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)
TEXTUREGROUP_Effects=(MinLODSize=1,MaxLODSize=4096,LODBias=1,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)
TEXTUREGROUP_EffectsNotFiltered=(MinLODSize=1,MaxLODSize=4096,LODBias=1,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)
TEXTUREGROUP_Skybox=(MinLODSize=1,MaxLODSize=4096,LODBias=1,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)
TEXTUREGROUP_UI=(MinLODSize=1,MaxLODSize=4096,LODBias=0,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)
TEXTUREGROUP_Lightmap=(MinLODSize=1,MaxLODSize=4096,LODBias=0,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)
TEXTUREGROUP_Shadowmap=(MinLODSize=1,MaxLODSize=4096,LODBias=0,MinMagFilter=Aniso,MipFilter=Point,NumStreamedMips=3,MipGenSettings=TMGS_SimpleAverage)
TEXTUREGROUP_RenderTarget=(MinLODSize=1,MaxLODSize=4096,LODBias=0,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)
TEXTUREGROUP_MobileFlattened=(MinLODSize=1,MaxLODSize=4096,LODBias=1,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)
TEXTUREGROUP_ProcBuilding_Face=(MinLODSize=1,MaxLODSize=4096,LODBias=1,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)
TEXTUREGROUP_ProcBuilding_LightMap=(MinLODSize=1,MaxLODSize=4096,LODBias=1,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)
TEXTUREGROUP_Terrain_Heightmap=(MinLODSize=1,MaxLODSize=4096,LODBias=1,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)
TEXTUREGROUP_Terrain_Weightmap=(MinLODSize=1,MaxLODSize=4096,LODBias=1,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)
AdaptiveBloom=False
SceneBrightness=1.000000
LightFunctions=False
MotionBlurNonGameplay=True
GraphicsQualitySetting=5
CharacterQualityDetail=1
TextureQualityDetail=4
ShadowQualityDetail=1
LightQualityDetail=1
PostProcessQualityDetail=1
SLSNativeResX=1600
SLSNativeResY=900
NumHorizontalDisplayArray=0
NumVerticalDisplayArray=0
BezelCorrectionX=0
BezelCorrectionY=0
SingleVoiceVariation=false
AllowMLAA=False
AllowFXAA=True
FXAAPresetLevel=1
AllowHumanIK=True
UseUE3StaggeredWait=False
UseOneWayRelevancyChecks=True
DoFacingRelevancyChecks=False
NotFacingNotRelevant=True
SimpleRelevancyCheckDistance=5000.000000
SimpleTeamRelevancyChecks=True
ROPawnAlwaysRelevantDistanceOverride=0.000000
EnableSteamStats=True
WholeSceneDynamicShadowRadius=1500.000000
NumWholeSceneDynamicShadowCascades=2
CascadeDistributionExponent=3.000000
DOFBlurValResolutionFactor=0.500000
ForceUpdateAnimationRadius=500.000000
ROSystemSettingsVer=3
TEXTUREGROUP_ColorLookupTable=(MinLODSize=1,MaxLODSize=4096,LODBias=0,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)
These are the main line of code we will be modifying for game performance. I know its alot of lines and might look intimidating at first, but don't worry. Allow me to hold your hand and go over each and every line on what they do and whether they are useful or not. 
First thing tho, is that we have to visualize this batch of code into 3 separate parts for convenience. Don't actually break up the code in the config, I'm just doing this so it'll be easier to digest.
First, there is the Top-half:
Code:
[SystemSettings]
bUseMaxQualityMode=False
StaticDecals=True
DynamicDecals=False
UnbatchedDecals=True
DecalCullDistanceScale=0.150000
DynamicLights=True
DynamicShadows=True
LightEnvironmentShadows=True
CompositeDynamicLights=True
SHSecondaryLighting=True
DirectionalLightmaps=True
MotionBlur=True
MotionBlurPause=False
DepthOfField=False
AmbientOcclusion=False
Bloom=True
UseHighQualityBloom=False
bAllowLightShafts=False
Distortion=False
FilteredDistortion=False
DropParticleDistortion=False
bAllowDownsampledTranslucency=False
SpeedTreeLeaves=True
SpeedTreeFronds=True
OnlyStreamInTextures=False
LensFlares=True
FogVolumes=True
FloatingPointRenderTargets=True
OneFrameThreadLag=False
UseVsync=False
UpscaleScreenPercentage=True
Fullscreen=True
AllowD3D10=False
AllowRadialBlur=False
SkeletalMeshLODBias=3
ParticleLODBias=1
DetailMode=1
ShadowFilterQualityBias=0
MaxAnisotropy=16
MaxMultisamples=1
MinShadowResolution=64
MinPreShadowResolution=8
MaxShadowResolution=800
MaxWholeSceneDominantShadowResolution=1344
ShadowFadeResolution=60
PreShadowFadeResolution=16
ShadowFadeExponent=0.200000
ResX=1600
ResY=900
ScreenPercentage=100.000000
SceneCaptureStreamingMultiplier=1.000000
FoliageDrawRadiusMultiplier=0.500000
ShadowTexelsPerPixel=4.000000
PreShadowResolutionFactor=0.200000
bEnableVSMShadows=False
bEnableBranchingPCFShadows=False
bAllowHardwareShadowFiltering=False
bAllowBetterModulatedShadows=False
bEnableForegroundShadowsOnWorld=False
bEnableForegroundSelfShadowing=False
bAllowWholeSceneDominantShadows=True
ShadowFilterRadius=0.250000
ShadowDepthBias=0.012000
CSMSplitPenumbraScale=0.500000
CSMSplitSoftTransitionDistanceScale=4.000000
CSMSplitDepthBiasScale=0.700000
UnbuiltWholeSceneDynamicShadowRadius=20000.000000
UnbuiltNumWholeSceneDynamicShadowCascades=3
WholeSceneShadowUnbuiltInteractionThreshold=50
bAllowFracturedDamage=True
NumFracturedPartsScale=1.000000
FractureDirectSpawnChanceScale=1.000000
FractureRadialSpawnChanceScale=1.000000
FractureCullDistanceScale=1.000000
bForceCPUAccessToGPUSkinVerts=false
bDisableSkeletalInstanceWeights=false
Then there is the Middle-half:
Code:
TEXTUREGROUP_World=(MinLODSize=1,MaxLODSize=4096,LODBias=1,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)
TEXTUREGROUP_WorldNormalMap=(MinLODSize=1,MaxLODSize=4096,LODBias=1,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)
TEXTUREGROUP_WorldSpecular=(MinLODSize=1,MaxLODSize=4096,LODBias=1,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)
TEXTUREGROUP_Character=(MinLODSize=1,MaxLODSize=4096,LODBias=0,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)
TEXTUREGROUP_CharacterNormalMap=(MinLODSize=1,MaxLODSize=4096,LODBias=0,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)
TEXTUREGROUP_CharacterSpecular=(MinLODSize=1,MaxLODSize=4096,LODBias=0,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)
TEXTUREGROUP_Weapon=(MinLODSize=1,MaxLODSize=4096,LODBias=1,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)
TEXTUREGROUP_WeaponNormalMap=(MinLODSize=1,MaxLODSize=4096,LODBias=1,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)
TEXTUREGROUP_WeaponSpecular=(MinLODSize=1,MaxLODSize=4096,LODBias=1,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)
TEXTUREGROUP_Vehicle=(MinLODSize=1,MaxLODSize=4096,LODBias=1,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)
TEXTUREGROUP_VehicleNormalMap=(MinLODSize=1,MaxLODSize=4096,LODBias=1,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)
TEXTUREGROUP_VehicleSpecular=(MinLODSize=1,MaxLODSize=4096,LODBias=1,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)
TEXTUREGROUP_Cinematic=(MinLODSize=1,MaxLODSize=4096,LODBias=0,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)
TEXTUREGROUP_Effects=(MinLODSize=1,MaxLODSize=4096,LODBias=1,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)
TEXTUREGROUP_EffectsNotFiltered=(MinLODSize=1,MaxLODSize=4096,LODBias=1,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)
TEXTUREGROUP_Skybox=(MinLODSize=1,MaxLODSize=4096,LODBias=1,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)
TEXTUREGROUP_UI=(MinLODSize=1,MaxLODSize=4096,LODBias=0,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)
TEXTUREGROUP_Lightmap=(MinLODSize=1,MaxLODSize=4096,LODBias=0,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)
TEXTUREGROUP_Shadowmap=(MinLODSize=1,MaxLODSize=4096,LODBias=0,MinMagFilter=Aniso,MipFilter=Point,NumStreamedMips=3,MipGenSettings=TMGS_SimpleAverage)
TEXTUREGROUP_RenderTarget=(MinLODSize=1,MaxLODSize=4096,LODBias=0,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)
TEXTUREGROUP_MobileFlattened=(MinLODSize=1,MaxLODSize=4096,LODBias=1,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)
TEXTUREGROUP_ProcBuilding_Face=(MinLODSize=1,MaxLODSize=4096,LODBias=1,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)
TEXTUREGROUP_ProcBuilding_LightMap=(MinLODSize=1,MaxLODSize=4096,LODBias=1,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)
TEXTUREGROUP_Terrain_Heightmap=(MinLODSize=1,MaxLODSize=4096,LODBias=1,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)
TEXTUREGROUP_Terrain_Weightmap=(MinLODSize=1,MaxLODSize=4096,LODBias=1,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)
And lastly we have the Bottom-half:
Code:
AdaptiveBloom=False
SceneBrightness=1.000000
LightFunctions=False
MotionBlurNonGameplay=True
GraphicsQualitySetting=5
CharacterQualityDetail=1
TextureQualityDetail=4
ShadowQualityDetail=1
LightQualityDetail=1
PostProcessQualityDetail=1
SLSNativeResX=1600
SLSNativeResY=900
NumHorizontalDisplayArray=0
NumVerticalDisplayArray=0
BezelCorrectionX=0
BezelCorrectionY=0
SingleVoiceVariation=false
AllowMLAA=False
AllowFXAA=True
FXAAPresetLevel=1
AllowHumanIK=True
UseUE3StaggeredWait=False
UseOneWayRelevancyChecks=True
DoFacingRelevancyChecks=False
NotFacingNotRelevant=True
SimpleRelevancyCheckDistance=5000.000000
SimpleTeamRelevancyChecks=True
ROPawnAlwaysRelevantDistanceOverride=0.000000
EnableSteamStats=True
WholeSceneDynamicShadowRadius=1500.000000
NumWholeSceneDynamicShadowCascades=2
CascadeDistributionExponent=3.000000
DOFBlurValResolutionFactor=0.500000
ForceUpdateAnimationRadius=500.000000
ROSystemSettingsVer=3
TEXTUREGROUP_ColorLookupTable=(MinLODSize=1,MaxLODSize=4096,LODBias=0,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)
For the record, the Top-half is the most important part of the config we will modify. The Middle-half is totally useless and the Bottom-half is somewhat useful to us. So we will focus only on the Top and Bottom halfs of the config.
Okay, NOW we are ready to start. Finally, eh? Alright, scroll down to the next post because Steam is giving me character-limit issues. 
From the RO2 Steam Forums
Bookmarks