Mejoras al sistema de combate

 Creo que ya he dicho por acá que siempre debes estar dispuesto a tirar código a la basura si encuentras alguna forma mejor de hacer las cosas. En estos días he estado trabajando en rehacer un viejo proyecto de unos amigos en Godot (originalmente fue creado en un motor desconocido: Engine001). El proyecto que recibí tenía algunas cosas generadas con IA que he tenido que sustituir, porque no se integran en un todo coherente. Sin embargo, algunas ideas sí vale la pena recuperarlas e incluso llevarlas a The Key of the World, en especial el sistema de armas cuerpo a cuerpo.

Mi sistema actual depende de colisiones entre el arma y el objetivo, lo cual no está mal y creo que se ha utilizado en otros juegos, pero que es propenso a todo tipo de problemas, como doble golpe, o que vayas por ahí meneando una espada y causes daño a los NPCs. Requiere un cuidadoso control de cuándo funciona la colisión y cuándo no. Pero gracias ala propuesta de la IA, Gemini, creo, he encontrado un método un poco mejor. En vez de un collider en el arma, se usa uno delante del personaje. Cualquier otra entidad que entre en ese collider, se convierte en el objetivo, u objetivos. Para causar el daño y disparar cualquier efecto visual necesario, se utiliza una pista de llamada a procedimiento, que llama una función en un punto determinado del animación de ataque. Ojo con esto, porque es necesario guardar la animación en un archivo aparte y además activar la opción Keep Custom Tracks, o cada vez que se reimporte el modelo, perderás cualquier cambio local en la animación.

Aún no he implementado el sistema en The Key of the World por falta de tiempo, pero espero hacerlo a lo largo de la semana próxima. También trataré de hacer un breve video (¡en español y con ilustraciones!) explicando el sistema, que de más está decirlo, es engine agnostic. O sea, que puedes aplicarlo en cualquier motor de juegos.

No hay comentarios:

Publicar un comentario