Nuestro objetivo en Conqueror's Blade es crear un mundo en el que puedas cumplir tus sueños de conquistar tierras y alcanzar la victoria en las batallas. Por eso hemos creado áreas enormes, muros zigzagueantes y batallas en las que miles de soldados, cargan, colisionan, lanzan flechas y disparan artillería.

La dificultad de las batallas multitudinarias

Los mapas gigantescos, los numerosos personajes y los efectos especiales requieren una gran cantidad de cálculo en el backend del juego. En estos tres años desde que lanzamos el juego, hemos seguido implementando nuevos contenidos, unidades y mapas más amplios, además de mejoras gráficas. Todo esto supuso demasiada presión tanto en el software como en el hardware.

Las interfaces de unidades, héroes y mapas están conectadas a complejos sistemas. Cuando todo funciona a la vez en el fragor de la batalla, provoca una gran tensión en la CPU. Hemos trabajado mucho para permitir el máximo número de algoritmos posibles para procesar en paralelo y sacarle el máximo partido a las CPU multinúcleo para mejorar así los FPS. Esto ha llevado a que el juego utilice demasiado la CPU y tensione la capacidad de renderización de la GPU. A esto hay que añadir la enorme cantidad de texturas de alta calidad que hay que procesar, lo que significa que a la mayoría de los jugadores les queda poca memoria en la GPU. Por otro lado, a medida que mejoran la interfaz del juego, el combate y los efectos de escena, las GPU afrontan mayores exigencias durante el renderizado. Los juegos que usan un gran número de texturas de alta resolución también requieren una mayor memoria de vídeo. Estos factores llevan a que los juegos requieran más recursos computacionales por parte de la GPU y más memoria de vídeo durante la operación. Por eso, en el futuro desarrollo del juego, prestaremos más atención a la optimización de la GPU para garantizar experiencias de juego más fluidas.

Además, las escenas grandes y los números ingentes de personajes añaden más presión al uso de la memoria. Muchas veces tenemos que aumentar nuestro consumo de memoria en favor del rendimiento de procesamiento. Sin embargo, tenemos que admitir que nuestra actual estrategia de gestión para la optimización de algoritmos tiene algunas limitaciones, y éste es uno de nuestros objetivos principales.

A medida que seguimos creando y añadiendo nuevos contenidos, también recibimos más comentarios sobre caídas de fotogramas, retrasos y problemas de rendimiento. Sabemos perfectamente lo importante que es el rendimiento. Pero aún así, debemos intentar encontrar el punto medio donde se encuentran el rendimiento y la calidad de los gráficos.

Vamos a profundizar en lo que hemos hecho para mejorar el rendimiento y nuestros planes de futuro.

Lo que hemos hecho en Eternal

Todas las acciones de cada unidad, ya sea moverse, atacar o usar habilidades, ocupan recursos del sistema basados en la calidad de sus efectos especiales. Cuando entran en juego los efectos especiales, el grado de sobrecarga de los sistemas depende del número de partículas que incluya. Por eso el número de partículas es la manera más intuitiva de medir el impacto del rendimiento de los efectos especiales. Reduciremos el número de partículas de efectos especiales, que originalmente era demasiado alto, a uno más razonable sin comprometer la experiencia general de juego, lo que mejorará el rendimiento.

Unidades y combate

Muchos jugadores han reportado haber perdido fotogramas cuando la milicia zykalia lanza sus cartuchos explosivos, por lo que el efecto especial de la habilidad utiliza demasiadas partículas.

Para mejorar el rendimiento en todos los aspectos sin descuidar los efectos visuales, en Eternal hemos reducido el número de partículas en los efectos de muchas habilidades, incluidas las explosiones. Esto ha mejorado directamente el rendimiento. Este es el número de partículas de algunas habilidades antes y después del cambio.

  • «Degollamiento» de los silahdars: 410 partículas (antes 1200)
  • «Golpe mortal» de los silahdars: 890 partículas (antes 1120)
  • «Último bastión» de la guarnición de veteranos: 420 partículas (antes 1120)
  • «Lanzar granadas» de los granaderos Shenji: 210 partículas (antes 580)
  • Milicia zykalia: 118 partículas (antes 310)
  • Cañón de metralla (raro): 2700 partículas (antes 6400)
  • Frenesí de los Berserkers: 370 partículas (antes 1050)
  • Los efectos especiales de las unidades afectadas por «Dios de la guerra» de la guja: 240 partículas (antes 410)

Clima y objetos

El gran número de objetos de cada mapa ayuda a la inmersión y afecta a las decisiones estratégicas. Todos los muros, obstáculos y plantas dan vida al mapa. Como es lógico, los números elevados de objetos y las grandes concentraciones de unidades son muy exigentes, lo que resulta en una baja velocidad de fotogramas en muchas batallas.

Para remediarlo, hemos hecho mejoras en la gestión del rendimiento de los objetos dinámicos en las zonas que suelen ser el escenario de grandes batallas, lo que reducirá en gran medida el retardo. Esto llevará a una velocidad de fotogramas más estable en estas circunstancias.

Futuras optimizaciones de rendimiento

Ya hemos realizado mejoras de rendimiento en muchas partes del juego, lo que ha aumentado ligeramente los FPS en general. Como es lógico, aún sigue habiendo áreas problemáticas, muchas de ellas en puntos clave, algo que afecta negativamente a la experiencia de juego.

Estamos realizando pruebas a gran escala en un esfuerzo por hacer cambios más específicos y vamos a hacer lo siguiente:

  • Optimizar los algoritmos de las interfaces para evitar usar los más complejos que reducen el rendimiento y empeoran el uso de la memoria. Esto incluye el minimapa, las barras de habilidades y la información de la unidad.
  • La fidelidad del renderizado afecta al aspecto de las cosas en el juego y, en la mayoría de los casos, el renderizado de distintas capas no tiene por qué tener el mismo nivel de fidelidad. Por ejemplo, cuando luchas en los muros de A en Fuerte amurallado, no necesitas ver perfectamente la bandera de la base, ya que eso empeora el rendimiento. La fidelidad actual de renderizado no cubre todas las situaciones, sin embargo, por lo que añadiremos más capas según la distancia de los objetos al mapa. Por ejemplo, puede darse un grado de fidelidad 1 a los objetos que están a 100 m de distancia, 2 a los que están a 50 m, 3 a los que están a 10 m y 4 a los que están a 5 m. Esto reducirá los cálculos de renderizado y el uso de la GPU.
  • Volver a crear el código de la ropa y las simulaciones físicas para optimizar el rendimiento de módulos más pequeños como el pelo, las borlas de las lanzas, el dobladillo de las túnicas, etc.
  • Seguir reduciendo el número de partículas de los efectos para equilibrar mejor los gráficos y el rendimiento.
  • Distribuir mejor la calidad de la textura para encontrar el equilibrio entre eso y el rendimiento para reducir así el uso de memoria.
  • Mejorar la configuración de los gráficos añadiendo más opciones y configuraciones, y reconocer mejor el hardware para mejorar la configuración predeterminada.

Todas las mejoras mencionadas son complejas y llevarán tiempo. Y cuando se añadan más contenidos, aparecerán nuevas variables en la ecuación. Aún así, nos gusta hablar de estos temas con vosotros. Llevamos tiempo intentando solucionar estos problemas y recibiendo preguntas sobre ello, y queríamos responder con acciones y resultados concretos. Sabemos que no será rápido solucionar los problemas de rendimiento, pero iremos haciéndolo poco a poco. ¡Es un cambio a largo plazo!

También queremos invitaros a todos a ayudarnos. Estamos pensando en testear los resultados de las optimizaciones a través de pruebas alfa y beta. Publicaremos más información sobre esto muy pronto. También os contaremos cómo evolucionan las optimizaciones de rendimiento en futuras publicaciones.