No sé si habrá muchos autores
dispuestos a subir un vídeo de un bug de su juego, de esos gordos y
extendidos a lo largo del juego y que se puede cargar todo. Más
cuando todavía no tienes claro del todo como solucionarlo, aunque la
solución mostrada en el vídeo parece funcionar en principio.
El error sucede por el uso de terrenos.
Intento usar uno para hacer el escenario exterior, con montañas que
limiten el camino a seguir, incluso en un principio pretendí que los
precipicios fueran parte del terreno muy hondos, pero no funcionó.
Para esto hay que entender cómo funciona un terreno. Es como un
campo de alturas. Es decir un plano, y cada punto del plano tiene una
altura marcada. Así que es imposible tener una pared completamente
plana en vertical, siempre va a haber un poco de pendiente. Ya que para hacer una
pared completamente vertical necesitaríamos que un punto tuviera al
menos 2 alturas distintas. La del mínimo y la del máximo. Y eso no
se puede hacer en un terreno, incluso podríamos entrar en un debate
matemático sobre si eso haría que el terreno dejase de ser una
función. Da igual, el caso es que tu puedes hacer que un punto el
terreno tenga altura 0, y en el de al lado tenga altura 3000, pero
eso significa que todos los puntos intermedios en un sistema continuo
existen, y por Bolzano y esas cosas al final si nuestro héroe se
esfuerza al tener desnivel, a base de saltos, puede ir escalando. Y en
el caso de abismo, puedes ir cayendo poco a poco por la pared y no te
acabas de dar la hostia nunca.
En el caso de los abismos opté por no poner terreno, que cayeras al vacío de verdad. Se nota que por donde pisas es como un plano y que se acaba ahí, pero bueno, es un mundo imaginario. El problema lo tengo con el bug de la cabra montesa y que el jugador pueda escalar las montañas que suponen el límite de la pantalla e ir más allá. No hay nada que pueda generar más bugs que un jugador andando por donde se supone que no puede andar. Y además no es un bug difícil de detectar, en pruebas a puerta cerrada algún amigo ya se ha puesto a hacer de cabra por ahí.
Hay una solución que me está
tentando, y es hacer la parte externa con geometría también, es
decir, pasar de los terrenos, y crear, igual que haría con el
interior, paredes, suelos, etc, pero en el exterior. El problema es
sobre todo para texturarlo, y para colocar árboles. Los terrenos son
scripts que facilitan muchas cosas con el editor, y entre ellas están
colocar texturas unas encima de otras, y poner arbustos y árboles y
que se comporten como impostores (imágenes 2d que miran siempre a
cámara) cuando están lejos y pasen a modelos 3d cuando estás
cerca. Así que hacer un terreno relativamente complejo desde
modelado e importarlo completo en Unity puede ser mucho trabajo...
¿Y el rendimiento? Si lleva muchos
árboles o texturas relativamente complejas irá mucho peor como
modelo que como terreno. Pero yo he usado 3 hierbajos y ningún árbol
y estoy pensando en usar unos árboles algo especiales, así que lo
mismo en mi caso compensa. Me lo tengo que pensar.
Por ahora tengo otra solución, la que
se muestra en el vídeo, poner un plano transparente por la pared
para que el jugador choque contra él y no pueda escalar. El plano al
ser completamente plano y no tener pendiente hace imposible la
escalada y arregla el problema. Aunque también es un poco coñazo ir
colocando planos por todo el escenario y comprobar que no quedan
huecos por los que escalar.
No hay comentarios :
Publicar un comentario