Assassin’s Creed* Rogue es el juego que Ubisoft acaba de lanzar al mercado. Lo crearon originalmente para consolas y fue portado a PC en marzo de 2015. La historia del juego gira en torno a de una “pieza faltante” entre varias Órdenes de Asesinos y tiene lugar a mediados del siglo XVIII. Al igual que Black Flag, contiene mucha exploración naval y terrestre. El protagonista es Shay Patrick Cormac, que da la espalda a la Orden de los Asesinos para seguir su propio camino.
Desde el comienzo, el equipo de desarrolladores decidió que el juego fuera compatible con una amplia variedad de plataformas de hardware, para que los fans del juego pudieran disfrutar de otra increíble aventura en el universo que tanto aprecian. Lograr que este nuevo juego tan visual pudiera utilizarse en todas las plataformas presentó nuevas dificultades al equipo encargado de la representación gráfica.
Uno de los objetivos principales fue lograr 30 fps firmes a 720p en PC equipadas con Intel® HD Graphics 4000. Los procesadores gráficos de tercera generación de Intel® se encuentran entre los más usados de la actualidad. Poder ejecutar los juegos más nuevos y exigentes en estas máquinas finas y livianas es magnífico, pero para ello es necesario hacer concesiones y optimizaciones considerables, de manera que los jugadores puedan tener 30 fps firmes.
“Los jugadores de Assassin’s Creed usan una gran variedad de hardware adaptado a sus necesidades: algunos tienen equipos enormes de escritorio, mientras que otros tienen máquinas portátiles ligeras.
No vamos a decidir nosotros el tipo de manejo de energía de los usuarios en sus equipos portátiles o Ultrabooks, por eso no ofreceremos compatibilidad oficial con estos equipos. Fue una decisión que debimos tomar para garantizar que los usuarios no tuvieran sorpresas desagradables.
Lo que sí queríamos era darles la posibilidad de disfrutar del juego”, explicó Corneliu Vasiliu, el productor de Assassin’s Creed Rogue para PC.
Un comienzo complejo
En primer lugar, las pruebas mostraron que la velocidad de fotogramas era de entre 8 y 12, y el equipo empezó a buscar dónde hacer optimizaciones. Después de los experimentos iniciales y de trabajar en colaboración con ingenieros de Intel, resultó claro que no alcanzaría con optimizar: habría que eliminar por completo algunos pipelines de representación gráfica y algunos efectos posteriores. Para decidir qué eliminar, consideramos el costo y la influencia visual respecto de las expectativas de los propietarios de hardware.
Utilizamos Intel® Graphics Frame Analyzer, que forma parte del kit de herramientas Intel® GPA, y detectamos los efectos y las características que más afectaban el rendimiento.
Las características que habilitamos son el tamaño de las texturas (incluso la reducción de las texturas por un factor de 4 casi no mejoró el rendimiento) y el filtrado anisotrópico.
Características y efectos que más afectan el rendimiento:
- Cantidad de llamadas a dibujo (hasta 3000 llamadas por fotograma)
- Mallas de subpíxeles (20.000 polígonos produjeron 10 píxeles)
- Complejidad de los sombreadores de píxeles (la operación de relleno de pantalla completa simple puede tardar hasta 500 microsegundos)
Figura 1. Assassin's Creed* Rogue configurado con la máxima calidad
Figura 2. El color y los detalles se reducen con la configuración media
Figura 3. En la calidad baja, se nota que hay menos color, profundidad y detalles
Simplificación de sombras
La primera etapa de pipelines de representación gráfica fue la generación de sombras en cascada. Debido a las restricciones que impone el motor del juego, no pudimos reducir la cantidad de cascadas, por eso nos quedó solo una opción: dar a los usuarios la posibilidad de desactivar las sombras por completo. Aunque en las pruebas descubrimos que esta solución traía algunos problemas: el nivel de diseño cambiaba sustancialmente con esta opción de optimización.
Figura 4. Falta de detalle con las sombras desactivadas
Figura 5. Diseño original con las sombras activadas
Al tener en cuenta los cambios en el nivel de detalle, tuvimos que forzar la aparición de sombras en niveles que traían problemas incluso con la calidad más baja. Utilizamos la técnica de mapas de sombra única en cascada con un filtro de tolerancia de rendimiento para habilitarlos.
Figura 6. Al usar mapas de sombra simple, comienzan a aparecer los detalles con la calidad de gráficos más baja
Detalles de la malla del océano
La segunda optimización más importante fue ajustar el nivel de detalle de la malla del océano.
La única cuestión delicada en esta parte fue mantener la proporción de los triángulos para evitar que se observaran temblores en la lejanía.
Vínculos de consulta
Otros vínculos