En este video aprenderemos la razón por la que se normalizan los vectores en los videojuegos, además de como normalizar un vector con GDScript y Godot Engine
Para mover a nuestro personaje en alguna dirección, usamos vectores y para mostrar la dirección del movimiento de un personaje, podemos usar un plano cartesiano como el siguiente.
Por ejemplo, en la imagen anterior tenemos varios vectores de 2 dimensiones, que indican como que se podría mover nuestro personaje.
Vectores en los motores de videojuegos
Como nota adicional, debes saber que en los motores de videojuegos, el eje Y, está invertido.
Esto significa que en lugar de tener el lado positivo arriba, lo tenemos en el lado de abajo. Y el lado negativo, lo tenemos en la parte de arriba
Aquí tienes un ejemplo, donde a los vectores de color rojo, solo les cambia el símbolo negativo en el eje Y.
Error de tamaño con Vectores en diagonal
Hasta aquí todo parece muy simple, pero si quisiéramos movernos una unidad en diagonal, veríamos lo siguiente
Como puedes notar, las direcciones en diagonal que deberían medir una unidad parecen más grandes. Y para demostrarlo, podemos usar un círculo como el siguiente:
Y como puedes ver, las líneas en diagonal, si son más grandes que las otras
Esto puede ocasionar que nuestro jugador o nuestro enemigo, se mueva más rápido en diagonal.
Esto puede generar frustración, en casos donde el enemigo persiga al jugador, y lo atrape fácilmente, porque el enemigo es más rápido. Ya que por cada vector con movimiento en horizontal o vertical, el tamaño aproximado del vector en diagonal es de 1.41
Así que se podría decir, que en diagonal un objeto se mueve un 41% más rápido
Para evitar este tipo de problemas, podemos normalizar el vector, para hacerlo podemos usar fórmulas muy complejas, pero Godot incluye una forma para hacerlo de una manera muy fácil, como se muestra en el video.
Comentarios sobre ¿Por qué se normalizan los vectores en los videojuegos?