Como la única línea de código antiguo durante seis meses volvió locos a los desarrolladores de MMORPG


Muy a menudo, los desarrolladores de juegos pueden escuchar una frase muy simple: es sorprendente que los juegos generalmente salgan. Los juegos son monstruos complicados e indomables conectados por una especie de cinta eléctrica digital. No es de extrañar que se desmoronen.

Aliens: Colonial Marines fue problemático por muchas razones, pero rápidamente se convirtió en un hazmerreír cuando aparecieron clips virales similares en los que los xenomorfos deambulaban sin sentido por los niveles. Este mes, el desarrollador del mod descubrió que la razón del comportamiento estúpido de los "alienígenas" de la IA fue un error en el código del juego. (Al respecto había un artículo sobre Habr.) ¡Vaya! Pero este no es el único caso este año cuando el juego resultó ser humillado debido a un error tipográfico en el teclado. A principios de 2018, los fanáticos descubrieron que la IA de Civilization VI estaba atacando sospechosamente una religión: resultó que la palabra "ceder" en el código estaba escrita como "yeild" .

Por lo tanto, no es sorprendente saber que en el desarrollo de juegos está lleno de esos momentos.

Lea Miller trabajó durante varios años como diseñadora en un ex desarrollador de juegos MMO Mythic Entertainment. Ha participado en secuencias de comandos, contenido y diseño de sistemas para Dark Age of Camelot y Warhammer Online: Age of Reckoning . En el momento del lanzamiento, el estudio comenzó a recibir quejas de los fanáticos: el juego parecía lento e insensible. Los jugadores no podían determinar cuál era exactamente la razón.

¿Fue solo ... una sensación?

"El equipo de desarrollo revisó el sistema de batalla para que se sintiera más rápido y buscó operaciones ineficaces del lado del servidor que pudieran eliminarse", dice Miller. “Pero de todos modos, las críticas fueron demasiado vagas, nadie podía decir exactamente cuál era el motivo. ¿Era esto una falla en el diseño general del juego? "Se hicieron muchos cambios para mejorar la experiencia de juego, y aunque muchos de ellos fueron mejoras reales, la raíz de todos los problemas no se pudo solucionar".

imagen

Warhammer Online no reunió una gran audiencia y, como resultado, se cerró en 2013.

Al excavar el código durante seis meses, el equipo de desarrollo no pudo encontrar una solución.

Uno de los programadores relativamente nuevos estudió el código de Age of Reckoning y descubrió algo extraño. Todavía tenía una línea del estudio MMO anterior, Dark Age of Camelot . Ella estaba manejando jugadores en un dailap. Sí, en dailap. Dark Age of Camelot se lanzó en 2001, en una era en la que la banda ancha todavía no era el estándar. En ese momento, los jugadores tenían que asegurarse de que nadie levantara el teléfono, de lo contrario la conexión se rompería. (El día que mi familia compró un módem de 56K fue mágico).

"Trabajó en la compañía recientemente y no estaba familiarizado con el código", dice Miller. "Y quizás por eso estudió este fragmento con más cuidado que los otros anteriores".

Después de eliminar la línea, el problema desapareció. El juego se volvió suave nuevamente.

Entonces que paso? Las computadoras son poderosas en estos días, e Internet es rápido. Pero al comienzo de la era MMO, todo era diferente, es decir, los juegos tenían que comprometerse.

"Solo había una línea en el código de red Dark Age of Camelot que ralentizaba artificialmente la frecuencia de transmisión de un cierto tipo de datos por parte del cliente y el servidor", explica Miller. “Supongo que el objetivo principal de esto era optimizar la carga de la red, pero tal vez era parte de un sistema diseñado para hacer que los jugadores que se conectan a través de Dailap sean competitivos en PvP. Este retraso fue casi invisible para los jugadores en Dark Age of Camelot , porque el combate del juego se ajustó al ancho de banda estándar y al poder de procesamiento de esa época. Solo un porcentaje muy pequeño de jugadores tenía sistemas capaces de procesar datos más rápido de lo que fueron enviados y recibidos ".


A diferencia de Warhammer Online, Dark Age of Camelot todavía está a flote.

Durante el desarrollo de Dark Age of Camelot, su código de red también evolucionó y participó en funciones tales como administrar valores de latencia máxima, iniciar sesión en servidores y otras tareas. Después de una década de Dark Age of Camelot , Mythic decidió portar el mismo código a Age of Reckoning .

Al final resultó que, rompió la funcionalidad en un lugar completamente inesperado.

Cuando Mythic solucionó el problema, la mayoría de los jugadores habían regresado a World of Warcraft . Este error no fue la única causa de los problemas de Age of Reckoning , pero contribuyó a ellos.

Miller me escribió cuando le pedí públicamente a Twitter que contara otras historias horribles, incluso si los ejemplos no eran solo sobre absurdos como los errores tipográficos. La discusión coincidió con las discusiones en otros círculos después del incidente con los marines coloniales , y me gustaría compartir las historias más destacadas.


Brian Sharp: Literalmente, cada vez que escribo la palabra "a c quired", experimento un flashback postraumático con Deus Ex 2, en el que erróneamente nombramos la carpeta de recursos AquiredDataText, y no podía cambiarle el nombre. Tuve que escribir adquirido durante tres años seguidos.


El truco de Dempsey: justo antes del lanzamiento de Red Dead Redemption: Undead Nightmare, el iterador de script de cebo zombie dinamita descomentó la línea que dirigió a los actores directamente al cebo. Por lo tanto, de repente comenzó a trabajar en el propio Marston (el personaje principal).
¡Un giro inesperado de la trama!


Matt Lacey: lancé un juego de PSP (es decir, sin la capacidad de parcharlo), que se bloqueaba por completo si el año era bisiesto ...


Ailey: los errores tipográficos que permanecen en el código para siempre son INCREÍBLEMENTE comunes. Además, a menudo son difíciles de eliminar, porque para no agregar nuevos errores, debe cambiar el nombre de todo de una sola manera. Es por eso que en el software médico en el que trabajo, la palabra Su rig cal se usa en todas partes (en lugar de Su rgi cal).


Andrew Eike: Una vez que estaba en una demostración seria, hice clic en un botón con las palabras "ahora verás una bola azul", y apareció una enorme bola verde. Olvidé aplicar la función. Traté de chatear este archivo, pero nadie lo compró.


Dolph Ziegler: Hace unos días, @cukiakimani me informó que el juego Semblance de repente comenzó a funcionar a 19 cuadros por segundo.

Resultó que una línea de mi código devora 41 FPS. Creo que esto es absolutamente asombroso.


Intentando lo mejor: tenía un proyecto que debía completarse antes de la medianoche, pero no funcionó correctamente. Solo quedaba una hora, había estado esperando al asistente del profesor durante tres horas y estaba listo para llorar. Finalmente, el asistente vino, miró mi código durante medio minuto y me dijo que cambiara una variable en una línea. Todo funcionó a la perfección.

Me gustaría destacar un error tipográfico que acaba de volar mi cerebro .

Cuando era niño, estaba obsesionado con Super Mario 64 . Este fue el primer juego que jugué en japonés, gracias a la tienda de importación, ubicada al lado del cine, a la que solíamos ir. (¡Se llevaron dinero de las personas durante una hora jugando una copia importada del primer juego de plataformas en 3D sobre Mario! Y valió la pena). Cuando finalmente logré obtener mi propia copia de Super Mario 64 en casa, fui una de las muchas personas que recolectaron 120 estrellas y búsqueda Yoshi se preguntó por qué es tan increíblemente difícil nadar a través de los anillos submarinos. Y la razón fue encontrada!


Vincent Kinian: Este error se puede ver en varios juegos sobre Mario. En Super Mario Bros. Se suponía que Lakitu arrojaría tortugas espinosas directamente al jugador, pero esto no sucedió debido a un error tipográfico en el código. Y existe este error en Super Mario 64: https://t.co/GddMkpMZh4 .

Impresionante No está claro cómo existen los videojuegos.

Source: https://habr.com/ru/post/es418829/


All Articles