Lo de Batman Arkham Knight en PC es un desastre mayúsculo. Esperado, pero un desastre. Tanto que hasta Warner Bros ha tenido que suspender sus ventas en Steam hasta arreglar el problema de rendimiento general. Si ya tienes una copia, hay algunos pequeños ajustes que puedes hacer para mejorar sus gráficos. Son estos.

Este artículo está escrito por Edu Arana (arananet-net) lector de Gizmodo en Español y apasionado del DYI y la retro-informática. Puedes echar un vistazo a otros de sus fantásticos proyectos en su propia página de Kinja.

Advertisement

A diferencia de la versión de Batman Arkham Knight en PS4, para la versión de PC la gente de Rocksteady parece que ha hecho una configuración general básica a 30fps. Esto es un poco relativo, ya que hay gente que tiene un Gaming PC y gente que tiene un ordenador de sobremesa con 4GB de RAM y una gráfica con 1 GB de RAM (en el mejor de los casos).

Para los que tenemos una Gaming PC, o en mi caso le llamaría una Design PC (diseño 3d, post-pro, etc), la configuración que viene por defecto en este videojuego se quedaría más bien escasa, es decir, estamos desaprovechando el potencial, tanto del motor gráfico Unreal como de nuestro ordenador.

Mi ordenador se compone de las siguientes características:

  • Asus Rampage Extreme III
  • i7 3.07Ghz
  • 12GB de RAM
  • Tarjeta Gráfica: Asus GeForce Strix GTX 970 (en calidad de prestamo) :)
  • Disco duro primario: Corsair GT 60GB
  • Disco duro secundario: Seagate Barracuda 1TB

No está a la “última” (mas bien tiene unos años, salvo la gráfica), pero tiene suficiente capacidad como para ejecutar el videojuego a una resolución a día de hoy más que aceptable.

Advertisement

Existen varios foros y comunidades dedicados al “tuneo” de los parámetros del motor gráfico Unreal (en todas sus variantes). La mayoría de los parámetros, se comparten entre las diferentes versiones del motor gráfico. Podemos encontrarnos con variables de configuración adicionales definidas por los desarrolladores pero serán más bien puntuales. Por ejemplo, hay variables de configuración que existen en el videojuego MassEffect 2 y también en Batman Arkham Knight.

En mi caso, lo que hice fue comparar la configuración estándar que viene por defecto en Batman Arkham Knight con algunas configuraciones que hay actualmente en Internet, sobre videojuegos que comparten el mismo motor. Para elaborar este artículo, he utilizado parámetros y valores utilizados en Mass Effect 2, 3 y Bioshock.

Nota: En la siguiente configuración utilizo el DirectX11 en vez de utilizar el que viene por defecto DX9 o DX10 ;)

Lineas a modificar

Por motivos de licenciamiento no está permitido subir el fichero BmSystemSettings.ini ya modificado (por la EULA), por lo que deberéis buscar el fichero de configuración en vuestro equipo. Estos son los pasos:

1) Fichero BmSystemSettings.ini. Este fichero suele encontrarse en la ruta C:\Program Files (x86)\Steam\steamapps\common\Batman Arkham Knight\BMGame\Config

2) Hacer una copia (ctrl+c, ctrl+v) por si hay que regresar a la configuración inicial y editarlo a ser posible con el Notepad++

3) Hay que modificar el fichero en dos fases. La primera fase consiste en añadir nuevos parámetros de configuración que no existen inicialmente en el fichero BmSystemSettings.ini. La segunda fase consiste en modificar los parámetros existentes en el fichero. Las explicamos en detalle a continuación.

3.1) Primera fase:

Primero seleccionaremos el contenido que viene a continuación, lo copiamos, luego en el fichero buscaremos la etiqueta [SystemSettings] que es la primera que aparece, la seleccionamos marcándola con el ratón y pegamos el texto que tenemos en el portapapeles. Hacemos esto porque como podéis observar en esta configuración adicional, tenemos valores al inicio que antes no existían:

[Engine.ISVHacks]
UseMinimalNVIDIADriverShaderOptimization=False

[D3DDrv.D3DRenderDevice]
MaxTranslucencyLayers=4
MaxTextureSize=4096
DisableHWShadowMaps=False
BIOPixelShaderVersion=ps_3_0
BIOVertexShaderVersion=vs_3_0

[SystemSettings]
AllowShadowVolumes=True
bEnableVSMShadows=True
EnableHighPolyChars=True
MaxCharacterCinematicLightingPasses=3
ShadowVolumeLightRadiusThreshold=1000.000000
ModShadowFadeDistanceExponent=0.200000
bDisablePhysXHardwareSupport=False
bSmoothFrameRate=True
MinSmoothedFrameRate=22
MaxSmoothedFrameRate=62
bUseTextureStreaming=True
bUsePostProcessEffects=True
MaxParticleResize=532
UseHighQualityBloom=True
QualityBloom=True
FilmGrain=True
Trilinear=True
Resolution=_1920x1080
BorderlessWindow=True
bEnablePSSMShadows=False
AllowD3D11=True

bUseMaxQualityMode=True

3.2) Segunda fase:

En esta fase modificaremos los valores existentes en el fichero BmSystemSettings.ini por lo que tendremos que ir (lamentablemente) buscando linea a linea la variable y el valor e ir reemplazándolo por los que vienen a continuación.

Advertisement

(Nota: Los parámetros TEXTUREGROUP_World copiarlos y reemplazarlos directamente).

DecalCullDistanceScale=0.500000
CompositeDynamicLights=False
UseVsync=True
MaxFPS=120.000000
SkeletalMeshLODBias=-1
ParticleLODBias=-1
DetailMode=5
ShadowFilterQualityBias=2
MaxAnisotropy=16
MaxMultiSamples=8
MinShadowResolution=124
MaxShadowResolution=1024
ResX=1920
ResY=1080
ShadowTexelsPerPixel=2.000000
bEnableBranchingPCFShadows=True
TextureResolution=4
ShadowQuality=4
LevelOfDetail=5
DefaultResX=1920
DefaultResY=1080
DefaultAntiAliasing=1
DefaultTextureResolution=4
DefaultShadowQuality=4
DefaultLevelOfDetail=5

TEXTUREGROUP_World=(MinLODSize=128,MaxLODSize=4096,LODBias=4,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)

TEXTUREGROUP_WorldNormalMap=(MinLODSize=128,MaxLODSize=4096,LODBias=4,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)

TEXTUREGROUP_WorldSpecular=(MinLODSize=128,MaxLODSize=4096,LODBias=4,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)

TEXTUREGROUP_Character=(MinLODSize=128,MaxLODSize=1024,LODBias=4,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)

TEXTUREGROUP_CharacterNormalMap=(MinLODSize=128,MaxLODSize=1024,LODBias=4,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)

TEXTUREGROUP_CharacterSpecular=(MinLODSize=128,MaxLODSize=1024,LODBias=4,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)

TEXTUREGROUP_Weapon=(MinLODSize=128,MaxLODSize=1024,LODBias=4,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)

TEXTUREGROUP_WeaponNormalMap=(MinLODSize=128,MaxLODSize=512,LODBias=4,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)

TEXTUREGROUP_WeaponSpecular=(MinLODSize=128,MaxLODSize=512,LODBias=4,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)

TEXTUREGROUP_Vehicle=(MinLODSize=128,MaxLODSize=1024,LODBias=4,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)

TEXTUREGROUP_Vehicle_Low=(MinLODSize=128,MaxLODSize=512,LODBias=4,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)

TEXTUREGROUP_Vehicle_High=(MinLODSize=128,MaxLODSize=2048,LODBias=4,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)

TEXTUREGROUP_VehicleNormalMap=(MinLODSize=128,MaxLODSize=2048,LODBias=4,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)

TEXTUREGROUP_VehicleSpecular=(MinLODSize=128,MaxLODSize=2048,LODBias=4,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)

TEXTUREGROUP_Cinematic=(MinLODSize=128,MaxLODSize=2048,LODBias=4,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)

TEXTUREGROUP_Effects=(MinLODSize=128,MaxLODSize=1024,LODBias=4,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)

TEXTUREGROUP_EffectsNotFiltered=(MinLODSize=128,MaxLODSize=4096,LODBias=4,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)

TEXTUREGROUP_Skybox=(MinLODSize=128,MaxLODSize=1024,LODBias=4,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)

TEXTUREGROUP_UI=(MinLODSize=512,MaxLODSize=4096,LODBias=4,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)

TEXTUREGROUP_Lightmap=(MinLODSize=128,MaxLODSize=4096,LODBias=4,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)

TEXTUREGROUP_Shadowmap=(MinLODSize=128,MaxLODSize=4096,LODBias=4,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)

TEXTUREGROUP_RenderTarget=(MinLODSize=1,MaxLODSize=2048,LODBias=4,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)

TEXTUREGROUP_MobileFlattened=(MinLODSize=1,MaxLODSize=4096,LODBias=4,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)

TEXTUREGROUP_ProcBuilding_Face=(MinLODSize=256,MaxLODSize=4096,LODBias=4,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)

TEXTUREGROUP_ProcBuilding_LightMap=(MinLODSize=128,MaxLODSize=4096,LODBias=4,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)

TEXTUREGROUP_Terrain_Heightmap=(MinLODSize=1,MaxLODSize=4096,LODBias=4,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)

TEXTUREGROUP_Terrain_Weightmap=(MinLODSize=1,MaxLODSize=4096,LODBias=4,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)

TEXTUREGROUP_ImageBasedReflection=(MinLODSize=128,MaxLODSize=128,LODBias=4,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)

TEXTUREGROUP_Bokeh=(MinLODSize=128,MaxLODSize=512,LODBias=4,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)

TEXTUREGROUP_LOD1_RRM_Mask=(MinLODSize=128,MaxLODSize=4096,LODBias=4,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)

TEXTUREGROUP_LOD1_Opacity_Mask=(MinLODSize=128,MaxLODSize=4096,LODBias=4,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)

TEXTUREGROUP_LOD1_Emissive=(MinLODSize=128,MaxLODSize=4096,LODBias=4,MinMagFilter=Aniso,MipFilter=Point,MipGenSettings=TMGS_SimpleAverage)

Una vez que actualicemos todos los valores, guardamos los cambios en el fichero y arrancamos el videojuego nuevamente para observar los cambios. (Nota: Estos valores funcionan bien en mi ordenador, en otro ordenador, dependiendo de la configuración del hardware / software puede tener incluso un mejor/peor rendimiento, con más/menos resolución en las texturas o fps.)

Advertisement

En caso de que el videojuego nos os arranque tras haber modificado el fichero, eliminarlo y renombrar el original con el mismo nombre (recordad que en el punto 2 os comenté hacer una copia de seguridad).

Obviamente, sobra decir que es mejor esperar a que Rocksteady libere el parche que soluciona este tipo de incidencias, pero si quieres probar antes, esta es una opción. Es decir, este artículo es solo a efectos meramente educativos y por si quieres intentarlo, pero recuerda... use at your own risk.

Diferencias visuales

¿Resultado? A continuación podéis ver una serie de capturas comparativas donde pueden apreciarse pequeñas diferencias entre la configuración original y la indicada en éste artículo. No sé si se lograrán ver las diferencias (Kinja formatea las imágenes), pero puedes darle a la lupa de ampliar en la esquina superior izquierda y ver, por ejemplo, las diferencias marcadas en los círculos rojos. No es espectacular, pero algo es algo.

***

Psst! también puedes seguirnos en Twitter, Facebook o Google+ :)