- El popular shooter cooperativo Helldivers 2 redujo su tamaño de instalación en aproximadamente 85 % con la última actualización
- Con el apoyo de Nixxes Software, logró recortar el espacio de 154GB a 23GB al aplicar deduplicación de datos del juego
- La estructura grande original se debía a la eliminación de duplicados de datos para optimizar para discos duros mecánicos (HDD), pero se confirmó que el beneficio real en tiempos de carga se había sobreestimado
- En mediciones recientes, incluso los usuarios de HDD (11 % del total) solo vieron un aumento de unos pocos segundos en el tiempo de carga de misiones
- La nueva "versión slim" mantiene la misma experiencia de juego que la versión anterior y conserva el progreso y el historial de compras
Reducción drástica del tamaño de instalación de Helldivers 2
- Arrowhead Game Studios logró reducir el tamaño de instalación de Helldivers 2 de aproximadamente 154 GB a 23 GB
- Un ahorro de 131 GB de espacio de almacenamiento
- Esta optimización se realizó con la colaboración de Nixxes Software
- Nixxes es conocida como el estudio desarrollador de portados a PC de los principales títulos de PlayStation de Sony
- A través de esta colaboración se aplicó tecnología de eliminación de datos duplicados
Eliminación de la optimización para HDD y su impacto en tiempos de carga
- La estructura inicial de gran tamaño existía para mejorar la carga en discos duros mecánicos (HDD)
- Se utilizaba una estrategia de guardar datos idénticos en múltiples ubicaciones para reducir la latencia de carga en HDD
- Sin embargo, el equipo de desarrollo verificó que la estimación basada en datos de la industria anterior era inexacta
- En mediciones reales, la proporción de usuarios de HDD es de alrededor de 11 % en cifras recientes
- Incluso para esos usuarios, el tiempo de carga de las misiones aumenta solo en unos pocos segundos como máximo
- El equipo explicó que “la mayor parte del tiempo de carga se debe al proceso de generación de niveles, y ocurre en paralelo con la carga de activos desde disco”
Enfoque de la versión slim
- La ‘versión slim’ está disponible a través de la actualización beta de Steam
- Ofrece una experiencia funcionalmente idéntica a la versión anterior
- Se mantienen progreso, contribución de guerra y compras
- Los participantes de la beta pueden hacer opt-out en cualquier momento
Significado desde la perspectiva del desarrollo de juegos
- Este caso se considera un ejemplo de ahorro de espacio de almacenamiento en juegos de PC
- Eliminó la duplicación de datos ineficiente que era un problema común en muchos juegos AAA de gran tamaño
- También sirve para recordar a otros estudios la necesidad de optimizar el espacio de almacenamiento
Información adicional
- Helldivers 2 es un shooter cooperativo que, con su última actualización, mejoró la eficiencia de espacio y la accesibilidad
- Tom’s Hardware presentó este cambio como un desarrollo positivo para los jugadores de PC
2 comentarios
Es lamentable, pero qué bueno que al menos lo arreglaron. Parece que debe de haber más casos así, solo que no se han dado a conocer.
Comentarios de Hacker News
Según los datos que publicaron recientemente los desarrolladores, incluso para los usuarios de HDD de Helldivers 2 (11% hasta la semana pasada), el tiempo de carga de las misiones solo aumentaba unos segundos en el peor de los casos.
La mayor parte de la carga se debía al proceso de generación de niveles, que al parecer ocurre en paralelo con la lectura de assets desde el disco.
Aun así, cuesta entender que el tamaño de instalación superara los 150 GB, y sigue quedando la duda de por qué se permitió esto cuando esa optimización era posible.
La mayoría de los usuarios no revisa con detalle el espacio en disco requerido antes de comprar un juego, así que casi no afecta las ventas, mientras que corregirlo sí requiere recursos de desarrollo.
Si hubieran tenido que asumir costos de almacenamiento en la nube por 150 GB por usuario, lo habrían resuelto de inmediato.
El verdadero cuello de botella se hacía evidente rápido al medirlo, y resolverlo también era sencillo.
Pero ese tipo de trabajo es aburrido y cuesta dinero, así que dentro de la organización solía tener baja prioridad.
Probablemente exista un círculo vicioso: como el juego ocupa demasiado, lo instalan en un HDD secundario en vez de un SSD.
Muchos desarrolladores optimizan más por intuición que con datos reales.
Como las consolas se construyeron asumiendo SSD, no había datos duplicados.
Los 154 GB de la versión de PC fueron el resultado de una duplicación masiva de assets, y al inicio estaba más bien entre 40 y 60 GB.
Luego siguieron desarrollando sobre un engine descontinuado (Bitsquid/Stingray, enlace de Wikipedia) y fue creciendo poco a poco.
Calculan que en los últimos 2 años se desperdiciaron al menos 10 millones de dólares en recursos de hardware por este problema.
El estudio, en la práctica, les trasladó ese costo a los usuarios para ahorrarse unos cientos de miles de dólares en costos de ingeniería.
Pienso que la única forma de evitar este tipo de desperdicio es una cultura que valore la calidad del software.
En lo personal, como tenía una unidad de 2 TB para juegos, no me preocupaba mucho por el espacio.
Desde la perspectiva del consumidor, algunos dudaban de que ese concepto representara un costo real.
Otra persona añadió que “al final solo es la molestia de tener un juego menos instalado”.
Titanfall en 2014 fue un caso parecido.
De sus 48 GB totales, 35 GB eran audio sin comprimir, supuestamente como medida para CPUs de doble núcleo (artículo relacionado).
Decodificar MP3 casi no carga la CPU, y el formato de audio de Titanfall (OGG a 160 kbps) además era compresión con pérdida.
Esto se siente parecido a cuando en una cuenta de AWS limpias recursos sin uso y ahorras 10 mil dólares al mes.
En un mod reciente de Monster Hunter: Wilds, al contrario, se usó el enfoque de guardar las texturas ya descomprimidas para reducir un cuello de botella de descompresión en GPU (enlace al video).
Yo mejor ya me voy a limpiar mi cuenta de la nube también.
Daba curiosidad saber qué optimización se había hecho exactamente.
Como el HDD no tiene una disposición física constante, puede que reducir tiempos de búsqueda mediante duplicación ni siquiera sea tan efectivo.
También es posible que simplemente se hubiera desactivado por error alguna opción de “deduplicación basada en hash” durante el build.
Tras eliminar duplicados, el tamaño de instalación bajó mucho, y los archivos de actualización incluso llegaron a ser más grandes que el juego completo.
Ahora que el SSD ya es lo normal, da la impresión de que fue un esfuerzo excesivo por optimizar para HDD.
La idea es incluir de forma duplicada los recursos comunes necesarios para cada stage y leerlos de una sola pasada.
Es una estrategia de sacrificar espacio por ancho de banda, una técnica que ya se usaba desde la era del CD.
Hace poco descargué Hunt: Showdown: pesaba 70 GB, y un mes después una actualización volvió a descargarse con el mismo tamaño.
Parece que procesaron el update como una sobrescritura completa.
Tener que volver a bajar decenas de GB es realmente ineficiente.
Es el tipo de problema que la mayoría de los juegos ya había resuelto incluso antes de que Steam se volviera tan grande.
Helldivers 2 está hecho con un engine antiguo (basado en Bitsquid), pero demuestra que no hace falta tecnología de punta para hacer un gran juego.
La comunidad incluso ha tenido que organizar campañas para pedir correcciones.
Si no hubieran usado un engine sin soporte, probablemente habría sido mucho más estable.
Antes trabajé optimizando un juego y logré reducir su tamaño a una cuarta parte en runtime, pero como por fuera se veía igual, al productor no le impresionó nada.
Me pregunto si esta vez también hubo resistencia interna.
Me pasó que Steam detectó poco espacio en el SSD y usó el HDD como caché, y por eso reinstalar todo resultó más rápido que actualizar.
Era absurdo: 5 minutos de descarga y luego 8 horas de actualización.
Ojalá este update mejore ese tipo de problemas.
Como había que volver a descifrar desde el disco archivos ya cifrados, aumentaba la carga de acceso aleatorio.
Daba curiosidad saber si en PC realmente se usaban esos archivos duplicados.
Parecía dudoso que el acceso al sistema de archivos fuera lo bastante limitado como para decidir cuál copia era más rápida en un HDD.
Así se logra lectura secuencial sin búsquedas en HDD.
Es una técnica que existe desde los tiempos de Crash Bandicoot, y que se haya optimizado para HDD en 2024 probablemente solo se deba a limitaciones del engine.