Ya hemos hablado sobre los tipos de testing que se usan en los videojuegos. Ahora, analicemos aquello que confunde a los PM, hace sonrojar a los desarrolladores y estresa a todos los miembros del equipo de producción: los bugs. También vamos a clasificarlos y mostrarte algunos ejemplos.
Al ser sistemas tan complejos, sería extraño que los videojuegos no se vean afectados por algunos bugs. Los bugs son errores comunes y muy diversos. Ahora que conoces mejor los tipos de testing específicos que se llevan a cabo en el marco del desarrollo de videojuegos, es probable que ya hayas notado que existen muchos otros bugs además del “Error 404” o “El juego dejó de funcionar”. Analicemos los más comunes en la industria de los videojuegos.
Entre los bugs visuales podemos mencionar los artifacts, la falta de texturas, el clipping y el culling, el screen tearing, el Z-fighting, etc.
Estos son algunos ejemplos de bugs visuales:
Artifacts: se trata de todos los bugs visuales que no entran en otras categorías.
Falta de texturas: los ingenieros de videojuegos suelen agregar un “stub” que aparece por defecto con textura a cuadros. Aunque el stub no es necesario, las texturas que faltan son visibles a simple vista gracias a esta práctica.
Falta de textura y un buen ejemplo de una textura a cuadros para reemplazar el archivo perdido
Z-fighting: surge cuando varias primitivas se ubican a aproximadamente la misma distancia de la cámara. Todas tienen casi los mismos valores en el Z-buffer que gestiona la profundidad. En estos casos, puede que las primitivas se muestren de forma parcial y una encima de la otra.
Screen tearing: es un efecto visual que muestra información de varios fotogramas en una única imagen.
Culling y clipping: son bugs vinculados al renderizado y el funcionamiento de la pipeline de gráficos. Cuando dos objetos se cruzan, uno puede opacar la geometría del otro y ocultarlo a simple vista. En esencia, el culling consiste en eliminar lo invisible. En este caso, el juego ni siquiera intentará recuperar ese segmento. Existen varios tipos de culling, por ejemplo: rustrum culling, backface culling, occlusion culling y depth culling.
También vale la pena mencionar un bug similar: los problemas de colisión. En los videojuegos, el clipping está asociado a los algoritmos que responden a la interacción de dos geometrías adyacentes o superpuestas (detección de colisiones). Y para identificar este tipo de bugs, existen modos de visualización especiales.
También podemos describir este tipo de bug con el término “oclusión”, es decir, la superposición de un objeto con otro que, en principio, no estaba prevista (o al menos, eso creo).
Los bugs de audio producen efectos bastante básicos, pero no menos molestos: no se pueden reproducir los SFX, la música o el diálogo, no se activa o se pierde el audio, la mezcla deja mucho que desear porque el sonido es demasiado bajo o alto, o se producen distorsiones e interrupciones.
Los bugs de diseño de niveles incluyen paredes invisibles, agujeros en los mapas, puntos de atascamiento, etc. También deberíamos incluir en esta categoría los problemas con la malla de navegación o NavMesh. Por ejemplo, los muros invisibles pueden ser tanto un bug como una característica. Antes limitaban el movimiento del personaje del jugador y no le permitían ir más allá de lo necesario. Ahora, los diseñadores de juegos intentan no crear “muros u obstáculos invisibles”, sino limitar la capacidad de movimiento con la ayuda del diseño de niveles. Por ejemplo, se puede ubicar un obstáculo infranqueable, una barricada, montañas, puertas de ciudades, etc.
Los agujeros en el mapa suelen ser causados por la falta de ajuste de los planos de los objetos. Son lugares en los que el usuario puede salirse del plano de los desarrolladores y del área de juego (el clásico “Out of bounds” o “Fuera de los límites”).
Los bugs del NavMesh suelen estar relacionados con la reconstrucción de niveles o la generación automática de mallas. Por ejemplo, se dan cuando mueves un objeto pero el NavMesh se mantiene igual. Como resultado, tus NPC “caminan a través de los muros” o cualquier otro objeto que no pueden esquivar y se quedan allí (se trata de un punto de atascamiento).
Bugs de inteligencia artificial (IA):
- Los NPC no se mueven.
- Se atascan.
- No siguen al jugador.
- No se puede interactuar con los objetos de la manera deseada.
- Los NCP hacen algo que no estaba previsto.
Al haber una parte del motor responsable por la física, también hay bugs vinculados con ese tema. Puede tratarse de cualquier cosa: objetos que levitan, física irreal, aceleración por encima de lo normal y objetos que vuelan en el espacio debido a la adición de vectores al procesar los contactos. Existen memes sobre los bugs de este tipo en varios juegos, como GTA 5 o Cyberpunk 2077.
Los bugs de estabilidad y rendimiento incluyen el congelamiento, los choques, las pantallas negras, la imposibilidad de cargar un nivel, la carga visible para el usuario de modelos de alta poligonización o de cualquier objeto, la disminución de los FPS, la carga extremadamente lenta y el congelamiento de la microcarga durante el juego. La instalación lenta del juego y la incapacidad de ejecutarlo en una PC con los requisitos mínimos permitidos son otros de los bugs de esta categoría.
Perdón, no te reconocí… Tu rostro aún no se cargó del todo.
Los bugs de compatibilidad también son bastante comunes. Por ejemplo, suele ocurrir que en algunas tarjetas gráficas se producen errores (por ejemplo, en los requisitos mínimos posibles o en las nuevas tarjetas gráficas en el mercado), los controles de mando no funcionan, el juego no se inicia en una versión específica del sistema operativo, los auriculares inalámbricos emiten el sonido en mono, etc.
Todos conocen las dificultades de los juegos en línea:
- Mala conexión
- Retraso en la carga de los videos
- Jugadores invisibles
- Errores en los puntajes
- Imposibilidad de reconectar (si es que existe esa función)
- La pérdida de paquetes durante el juego
- Las discrepancias en los cálculos de información deducida por el servidor y el back end.
Además, si la conexión es inestable, algunos elementos de la interfaz pueden utilizarse varias veces, algo puede no cargarse y “desaparecer”, etc. Sin embargo, estos bugs de la IU no afectan demasiado la experiencia de usuario del jugador.
Los bugs de localización y cumplimiento están relacionados con la normativa local. Incluyen la localización de la publicidad y contenidos que pueden estar permitidos en algunos países pero no en otros. La manipulación de la fecha en el dispositivo y la incapacidad del cliente de gestionar el servidor también entran en esta categoría. Nadie ha anulado los bugs “clásicos” de localización e internacionalización.
Está bien. Mezcla todo lo que está almacenado en tu juego porque… ¿por qué no?
¿Eso es todo?
Claro que no. La lista podría seguir, pero estos son los bugs más frecuentes. ¿Con qué bugs te has encontrado mientras juegas o desarrollas videojuegos? Me encantaría que conversemos sobre este y otros temas en los comentarios. También te invito a descubrir el Gaming Studio de Globant.