Hola a todo el mundo, tengo que postear porque estoy entusiasmado, he sido fan siempre de id software y esta vez de nuevo no me han vuelto a defraudar, al contrario, me esta gustando el juego este mas que el doom 3 y que los quake 3 y 4. Aun así también es cierto que hablando de gráficos hay ya juegos mejores que éste y no de ahora, sino de hace tiempo.
Tengo un equipo medianito (phenom 2 945, 8GB de ram ddr3 1600 y geforce 460 gtx con 768MB) y tras un poco investigar y algo de tweaking (solo algunas líneas del rageConfig.cfg del post y parametros de arranque) el juego va como la seda, 60fps constantes a 1920x1080 y antialias 4x. Como me lo he pillado hoy ya que había leido que con steam no se activaba hasta el día 7, ya estaba al tanto de los problemas que a mucha gente le está dando el juego en sus equipos, que en muchos casos son mejores que el mío, pero os aseguro que con un poco de paciencia, tener claras un par de cosas y tweaking se puede arreglar. Es cierto que se nota que no está todo lo pulido que debería a pesar de haberlo hecho id, en los juegos anteriores cuando salían se notaba que los habían pulido todo lo que podían y en algunos casos las optimizaciones eran notables, lo malo era que cuando id software sacaba un juego siempre pasaba que en ese momento no había máquina que lo moviera con todo al máximo o era carísima. Ahora se ha dado la vuelta a la tortilla, la gente tenemos en realidad bestias de mascar números, que en principio deberían tirar de esto con todo al máximo de sobra y resulta que el juego no está pulido. Para que esto pase yo creo que han tenido dos fallos, uno es de estrategia y otro es el enfoque que han querido dar a la hora de programar el juego.
El primero es fácil de entender, para maximizar beneficios decidieron lanzarlo para varios sistemas diferentes al mismo tiempo (pc, mac, ps3 y xbox360) lo cual multiplica el tiempo necesario para optimizar el juego en general y el motor en particular aparte de tener que crear código que funcione bien bien con opengl (mac y creo que pc), opengl-es (ps3) y directx (xbox360), por otro lado id software cuando eran independientes siempre lanzaban al principio sólo para pc msdos-windows (al poco tiempo algunas veces sacaban el cliente linux, también programado para opengl, pasó con quake3 y doom3), cuando se vendieron a bethesda seguramente hayan tenido más presión con respecto a los plazos de lanzamiento, puede ser que incluso estuvieran viendo que estaban tardando demasiado tiempo en sacarlo (han pasado 7 años desde doom3). De todas formas esto es algo que hoy en día pasa por desgracia la mayoría de las veces con los juegos multiplataforma cuando hay lanzamiento para varios sistemas a la vez.
El otro problema que yo veo es la filosofía que se ha usado para programar el motor, es cierto que john carmack es un pedazo de máquina programando, el solo casi se basta para lograr lo que en otros casos necesita de un equipo de buenos programadores, aparte de que lleva como unos 5 años optimizando código para que funcione con procesamiento en paralelo (hoy en día ya lo común es tener microprocesadores con al menos 2 núcleos), esto es algo que a día de hoy se está empezando a implementar en otros juegos y se ve que ahora le ha metido mano también al concepto de la gpu como procesador, en el juego, en opciones de gráficos hay una opción que se llama "transcodifica gpu", cuando está desactivada los cálculos que necesita el juego para hacer streaming de la megatextura los realiza el procesador y cuando se activa pasa a encargarse de eso el micro de la tarjeta gráfica (para gpus nvidia utiliza cuda, para las ati no lo sé). De todas formas el error viene por emplear esa técnica, la megatextura tiene la gracia de acortar los tiempos de carga de los niveles (en mi equipo se tarda mas en cargar cualquier nivel del doom3 que cualquiera de éste) aparte de poder crear grandes superficies abiertas con un nivel de detalle muy alto, pero el sistema tiene que estar contínuamente alimentando a la gráfica con las texturas, y eso es mas tiempo de proceso que hay que sumar a lo de siempre (la física, la inteligencia artificial de los bichos, etc...), carmack seguramente habrá echado bastante tiempo con esto ya que está optimizado para varios núcleos de proceso y para las gpu pero se ve que es un cuello de botella de todas formas. Por otro lado es una faena que el juego no deje apenas configurar aspectos gráficos, dejando eso a la autodetección que tiene programada (eso es algo que en la vida va a funcionar bien, de todas formas en este juego no va mal del todo tampoco). Yo lo que he hecho en mi equipo ha sido crear el archivo rageConfig.cfg con lo siguiente:
seta vt_pageimagesizeuniquediffuseonly2 8192
seta vt_pageimagesizeuniquediffuseonly 8192
seta vt_pageimagesizeunique 8192
seta vt_pageimagesizevmtr 8192
seta vt_maxPPF 64 //64 para micros con 4 núcleos o más, poner 16 o 8 para micros con 2 núcleos
Y ejecuto el programa con las siguientes opciones de lanzamiento:
+cvaradd g_fov 12 +com_allowconsole 1 +com_skipIntroVideo 1 +image_anisotropy 16 +image_usecompression 0 +g_showplayershadow 1 +m_smooth 0
Con esto se fuerza a usar las texturas con nivel de detalle máximo, se optimiza la rutina de streaming para el micro de 4 núcleos, y poco más, el resto de parámetros se los he dejado al juego que los autodetecte y he probado activando y desactivando la opción "transcodifica gpu" desde dentro del juego, en mi caso me ha ido más suave dejándola desactivada, pues mi gpu es de las medianitas y no tiene mucha memoria (si fuera una 580 gtx con 1'5 gigas de memoria seguro que iría mejor esto con la opción activada), tampoco es que fuera mal activándola pero el popping de texturas se nota un poco, cuando se encarga el micro es imperceptible. Resumiendo, aquí lo importante es tener texturas buenas (que se consigue con las cuatro lineas primeras del rageconfig.cfg), ajustar el parámetro vt_maxPPF para el micro que cada uno tenga, y ya una vez dentro del juego probar con la opción "transcodifica gpu", la resolución y el nivel de antialias, que no hace falta que sea muy alto para quitar los dientes de sierra cuando está a una resolución alta, en mi caso tenerlo a 16 los quita completamente pero enlentece esto un montón, si lo bajo a 8 se ve casi igual que a 4 y también enlentece, por lo que lo dejé a 4. Vuelvo a repetir, el activar o desactivar la opción "transcodifica gpu" cambia que sea el microprocesador central o el de la tarjeta gráfica quién se ocupe de hacer streaming de texturas, en algunos equipos el juego irá mejor con esto activado y en otros irá mejor desactivándolo, es cuestión de probar.
Del juego en cuestión que voy a decir, me encanta, estoy harto de que cada vez los fps sean más y más complicados y rimbombantes, a éste se le ha criticado por ser demasiado fácil incluso en nivel pesadilla, y resulta que precisamente eso es lo que yo quería, un fps simple y que no tenga que tirarme horas para terminar un nivel, además los bichos tampoco es que sean tontos del todo como pasa otras veces, si me lo termino muy rápido pues entonces me lo volveré a jugar, a fin de cuentas la idea de los juegos de ordenador es la de pasar el tiempo y entretenerse, no tirarse veinte horas escondido en un sitio porque los bichos necesitan pegarle 10 tiros para que mueran y que tu con 2 o 3 estés listo de papeles, además de haber un montón y están escondidos a su vez también planeando como masacrarte de la manera más eficiente gracias a su pedazo de algoritmo de inteligencia artificial (algo que carmack podría hacer igual de bien que el resto). En eso id software lo tienen igual de claro que yo y de nuevo me han dado lo que yo quería. Saludos.
Se me olvidaba, con respecto a la tarjeta gráfica, tengo los últimos controladores beta y activé el vsync forzándolo desde el panel de control de nvidia. Para tarjetas ati no sé que se debe hacer.