Resolver errores en el desarrollo del juego es complicado. Resolver errores en el desarrollo de juegos cuando su juego es en realidad media docena de juegos, transportados a PC desde tres consolas diferentes a lo largo de dos décadas, es muy complicado. Ese es el amplio impulso de la última actualización de la comunidad Halo: Master Chief Collection, que entra en detalles extensos y raros sobre el proceso de corrección de errores en un gran juego. Es una lectura interesante que es sorprendentemente fácil de entender, incluso si no eres un desarrollador de juegos, y sirve como respuesta directa al desafortunado error multijugador con el que se lanzó Halo 2.
“Estos lanzamientos han sido, y continuarán siendo, una experiencia de aprendizaje para nuestro equipo”, escribe el productor senior Michael Fahrny. “MCC es un producto AMPLIO y puede ser muy difícil asegurarse de que todo esté al 100% donde debería estar, a veces las cosas se perderán. Nuestra promesa es que reaccionaremos a situaciones como estas lo más rápido posible. “Estamos evolucionando constantemente nuestro proceso para adoptar nuevas formas de ser más eficientes con nuestro desarrollo y para dar a nuestro equipo de prueba la confianza de que están obteniendo el tiempo que necesitan para garantizar que la cobertura adecuada esté ocurriendo”.
Entonces, ¿qué pasó con Halo 2? La publicación primero pasa por los pasos generales de encontrar y corregir un error, y cómo cada departamento en un gran estudio de juegos juega un papel. Eso incluye al equipo de la comunidad, que interactúa con los jugadores y recopila información sobre los problemas reportados, un equipo de soporte dedicado que toma los problemas reportados y los analiza, probadores de garantía de calidad, diseño, producción e ingeniería. Se necesita mucha gente y un proceso notablemente complejo para identificar un error y solucionarlo.
El modo multijugador para PC de Halo 2 presentaba un error que no había aparecido en la Xbox, que podría causar teletransportación de proyectiles y muerte instantánea. Fueron malas noticias. Y si destila la causa hasta la explicación más básica, todo ese caos fue causado por un solo número: -1.
Aquí está la explicación más compleja, si puede seguirla:
“El problema estaba relacionado con el código de interpolación que se agregó bastante tarde y que solo se compila en las compilaciones de PC, y sin querer la compilación del servidor dedicado. Las compilaciones de Xbox no compilan el código de interpolación. Un cambio para la interpolación fue en una función que obtiene la cámara posición de un bípedo. Los jugadores controlan bípedos. A lo sumo, hay cuatro jugadores locales, o “usuarios”. Esta función se modificó para que se actualizara y leyera de los datos de interpolación para el usuario que controla ese bípedo. Sin embargo, no era manejando el caso en el que el usuario que controla el bípedo no existía en esa máquina. Por lo tanto, el índice de usuario para bípedos no locales sería -1, lo que causó que se escribiera y leyera una memoria completamente diferente en el estado de interpolación. , esto se complica aún más por el hecho de que esta misma ruta de código es utilizada por la función que crea los proyectiles de un arma. Debido a esto, el juego necesita saber a dónde apuntaba la cámara del jugador. d jugadores remotos, todavía se toma la misma ruta de código pero usando el estado de disparo de arma predicho del jugador remoto. No todas las armas se disparan de la misma manera predictiva, por lo que algunas armas causarían daño, mientras que otras no.
“La solución aquí fue una, no compilar el código para el servidor dedicado, sino también dos, proteger contra los casos en que el índice de usuario era -1”.
Sin relación con este error en particular, el ingeniero Sean Cooper ofrece una visión interesante del desarrollo sobre el proceso de reestructurar el código de red de Halo 2 para que funcione en la PC, donde los discos duros y SSD de diferentes velocidades causarían problemas de tiempo de espera.
Pero sobre las novedades: las pruebas de Halo 3 deberían comenzar “dentro de las primeras semanas de junio” e incluirán Forge y Theater, así como cinco misiones de campaña y muchos mapas y listas de reproducción para varios jugadores. También hay algo de movimiento en otros juegos en el MCC, incluida la adición de su sistema de Desafíos, correcciones de audio para Halo Reach, correcciones de errores alrededor del desgarro de la pantalla y enlaces de teclas secundarias. Todas esas cosas se están acercando al lanzamiento y deberían estar en un próximo vuelo o lanzamiento.
También hay un par de nuevas adiciones a la etapa de “iteración de diseño” que me entusiasman, incluido un navegador de juegos personalizado y un juego cruzado de PC / Xbox. La iteración de diseño significa que todavía están muy lejos, pero cualquier paso hacia un navegador de juegos personalizado en PC es un paso que estoy feliz de ver.