
Aunque he mejorado algunos aspectos en la jugabilidad, me he centrado sobre todo en la creación automática de terrenos con zonas rocosas, acantilados de diferentes alturas y árboles. Todo de forma aleatoria después de facilitar parámetros como: cantidad de acantilados, altura mínima/máxima de acantilados, distancia entre ellos, cantidad de zonas rocosas, cantidad de árboles...
Además, tuve que pensar en algún sistema para controlar el orden de dibujado de todas las instancias, ya que la profundidad juega un gran papel. Implementé distintos algoritmos para ordenar las instancias según su profundidad.
Algoritmo bubble sort
Con el algoritmo bubble sort de orden n*n, el juego se ralentizaba una barbaridad. Hablamos de ordenar al rededor de 1000 instancias. Imposible de jugar.Algoritmo merge sort
El algoritmo merge sort es de orden n*log n, por lo que acelera un poco el proceso. Pero lamentablemente, a pesar de ser mejor, el juego seguía sin ser jugable.
Solución
Usar el algoritmo merge sort para el ordenamiento, pero ordenar solamente las instancias necesarias. Por ejemplo, ordenar una lista auxiliar donde se meterán solo las instancias visibles para el usuario (o aquellas a una distancia mínima del jugador principal etc.).
Simple, fácil y efectivo.