@alejandropascua la programación es algo extremadamente complicado sobre todo a estos niveles.
Los bugs son fallos de código y esos fallos pueden multiplicarse cuanto más complejo sea ese código.
Como no se puede tener todo en cuenta ni asegurarse que está todo perfecto, cuando hay cientos de variables y comprobaciones, puede ser que alguno de los caminos hasta llegar a una acción, no se haya comprobado.
Hacer una misión antes que otra, el orden de una conversación, etc.. En un juego de mundo abierto tan libre es muy fácil que tomes un camino que no te deje continuar por que el código no encuentra la variable que necesita para reproducir el script (evento).
En juegos lineales es mucho más fácil.
Luego hay bugs raros que no se sabe bien por que suceden, tema de milisegundos, colisiones, etc..
Para resumir, en un mundo abierto:
- Si hago X e Y para llegar a Z, funciona bien.
- Si hago Y y X para llegar a Z, funciona bien.
- Si hago Z e Y para llegar a X, bug.
Para encontrar el bug los devs deben reproducir el camino que ha hecho el jugador para saber por que sucede el bug.
Es muy complicado se explicar, para entenderlo bien necesitas conocimientos de programación.