**DESTINATARIOS:** Usuarios de Arma 3
**RESUMEN OPERATIVO:** Análisis de las recientes mejoras en multihilo para una experiencia de juego más fluida

Bienvenidos a esta inmersión técnica sobre las optimizaciones de rendimiento de *Arma 3* introducidas en la actualización 2.20. Antes de ceder la palabra al autor real de este blog, quería compartir unas palabras sobre el estado actual del soporte continuo (Live Ops). Sí, *REPception* ya es una realidad.
Doce años después de su lanzamiento, seguimos publicando actualizaciones gratuitas para la plataforma. Cuesta creerlo, ¡pero estamos seguros de que coincidirás en que es algo fantástico! Gracias al continuo apoyo de la comunidad y al compromiso de Bohemia Interactive, seguimos ofreciendo mantenimiento limitado. El equipo operativo se puede contar con los dedos de una mano, pero detrás hay una red más amplia —Publicación, QA, Localización, Legal, IT, entre otros— que hace posible seguir adelante. Algunos planes a largo plazo mencionados en anteriores SITREP siguen en marcha. Su progreso ha sido más lento, en parte porque aún no es necesario avanzar a la siguiente fase del ciclo de vida de *Arma 3*. Incluso en este punto, rumbo a *Arma 4*, *Arma 3* aún tiene mucha vida.
Si has estado atento en nuestro servidor de Discord (#perf\_prof\_branch), quizá ya hayas probado las optimizaciones lanzadas a la rama principal en la 2.20. Tal vez incluso hayas disfrutado de los intensos monólogos del programador "Dedmen" sobre bugs, soluciones, correcciones y otros temas técnicos. También puede que te preguntes por qué estas mejoras llegan ahora. Dedmen lo explicará más abajo. Ya no hay plazos ni prisas en *Arma 3*, lo que permite experimentar con más profundidad. Tampoco hay decenas de commits diarios. Trabajamos sobre el legado de gigantes, desde las primeras líneas del motor RV escritas por Ondřej Španěl.
Dicho esto, quiero felicitar a Dedmen por su impresionante trabajo. Ha conseguido cambios arriesgados y de bajo nivel que pocos habríamos imaginado a estas alturas. No todos verán la misma mejora de FPS, pero lo importante es jugar: la mayoría de usuarios reportan una experiencia mucho más fluida. Gracias a todos los que colaboraron probando la rama de perfiles.
Basta de preámbulos. Vamos con el núcleo del Informe de Operaciones.
— *Joris-Jan van 't Land, jefe de proyecto*
---
### Aclaración: no se "añadió" multihilo en la 2.20
El motor RV ya tenía soporte multihilo desde *Arma 2*. Lo que se ha hecho es **revisar a fondo el sistema** y aplicar **optimizaciones clave**.
El objetivo era mejorar los picos de lag y subir los FPS mínimos. El FPS máximo podría incluso ser ligeramente inferior en sistemas muy potentes, pero la experiencia general es **mucho más estable y fluida**.
Esto se puede comprobar con gráficos tomados con *CapFrameX* usando el benchmark *YAAB* de Sams. Los tiempos de fotograma son más consistentes y hay menos picos.
>
#### Recomendaciones de parámetros:
* **`-cpuCount`**: No hace falta usarlo, el motor detecta los núcleos automáticamente. Solo úsalos si quieres limitar manualmente.
* **`-enableHT`**: No tiene efecto si usas `-cpuCount`. Suele rendir peor. Haz pruebas.
* **`-exThreads`**: No usar. Si tienes 4 núcleos o más, el juego ya los usa todos.
* **Afinidad del proceso**: Si usas herramientas externas que limitan núcleos, debes indicar ese número con `-cpuCount`.
---
### Adiós al 32-bit y compatibilidad con Windows 7/8
La versión 2.20 es **la última con soporte funcional para 32-bit**. A partir de ahora, todo el desarrollo se enfocará en 64-bit.
La mayoría ya usa 64-bit, pero si aún estás en 32-bit, recomendamos cambiar. Mantendremos una rama congelada "Legacy 2.20", pero no será compatible en multijugador con versiones futuras.
También dejamos de dar soporte a **Windows 7 y 8**, igual que Steam.
---
### Nuevos requisitos mínimos y recomendados
Se han actualizado los requisitos de sistema en Steam para reflejar la realidad actual del hardware. Los mínimos anteriores eran demasiado bajos para una experiencia aceptable.
---
### Cambios técnicos en el sistema de trabajo (job system)
El sistema de trabajos anterior funcionaba bajo el modelo "Fork-Join": todas las tareas se dividían en bloques paralelos, se ejecutaban, y luego se esperaba su finalización. Sirve para cosas simples (como partículas), pero no para tareas más complejas.
Ahora se ha integrado el **sistema de tareas de Enfusion**, el motor de *Arma Reforger* y *Arma 4*, que usa **gráficos de dependencia**. Así se pueden ejecutar tareas distintas en paralelo respetando sus restricciones.
#### Ejemplo: simulación de partículas
Antes, los núcleos quedaban ociosos esperando. Ahora se pueden hacer:
* Sonidos y partículas "seguras" en paralelo.
* Cuando acaban los sonidos, ejecutar IA o partículas programadas.
* Presentar el fotograma mientras tanto.
#### Con el nuevo sistema:
* Más núcleos activos.
* Mejor uso del tiempo.
* Menos esperas y picos.
---
### IA y paralelización mediante corrutinas
La IA es compleja y muy costosa en rendimiento. El reto es que **usa scripts**, y estos **no pueden ejecutarse en paralelo** fácilmente.
La solución ha sido usar **corrutinas**, que permiten **pausar** y **reanudar** simulaciones, como ya hace *DayZ* con sus animaciones.
Ahora se pueden:
* Separar partes paralelizables (como escaneo de objetivos).
* Ejecutarlas como trabajos independientes.
* Reanudar la simulación después con los resultados.
Esto se aplica también a:
* **Explosiones**: comprobación de línea de visión ahora en paralelo.
* **Eventos complejos**: se "rebotan" entre hilos seguros y principales solo cuando hace falta.
---
### Limitaciones y riesgos
No todo se puede paralelizar:
* **Scripts** son impredecibles y peligrosos para multihilo.
* Mods pueden romper lo que sería seguro en el juego base (por ejemplo, generar unidades durante escaneos).
* **Simulación de objetos** es el mayor potencial, pero también el más difícil: miles de líneas de código entrelazado con scripts y eventos.
---
### Conclusión
El nuevo sistema:
* Mejora FPS mínimos y reduce stuttering.
* Aumenta la estabilidad general.
* No hace milagros en escenarios muy saturados de scripts o mods.
El futuro de *Arma 3* sigue vivo. A pesar de los recursos limitados, el equipo sigue avanzando. Optimizar cada rincón es difícil, pero posible.
Gracias a todos los que han probado estas mejoras y han aportado feedback.
---
**Dedmen**
Programador, Bohemia Interactive
https://dev.arma3.com/post/oprep-perfor ... ons-in-220