Dos métodos principales para emular el comportamiento de la bala son
- Raycast *
- Físico (objeto en movimiento con detección de colisión **)
Los métodos híbridos pueden incluir el lanzamiento de objetos con rayos de alcance limitado en lugar de la detección de colisiones o el uso de ambos.
* Raycast es un método para lanzar un ‘rayo’ o un vector en el espacio y ver si golpea algo. Así, los puntos a lo largo del rayo se verifican contra los colisionadores. Raycast puede penetrar o detenerse en la primera colisión registrada, si penetra puede registrar todas las colisiones.
** La detección de colisiones en el modelo físico verifica dos colisionadores entre sí para posibles colisiones. El colisionador es esencialmente un cuadro delimitador o una forma primitiva, a veces una forma compleja y se prueba matemáticamente si algún punto del colector se cruza con el espacio del otro.
- ¿Por qué no puede existir energía pura?
- ¿Cuál es la densidad de la arena?
- ¿Cuál es la verdadera religión científicamente?
- ¿Es la gravedad solo una teoría?
- ¿Por qué el aire es transparente?
El modelo Raycast más simple es el más común, ya que en muchos juegos las distancias son tan cortas que se considera una “aproximación lo suficientemente buena” del sistema más preciso.
Esencialmente, tiene alguna inexactitud inherente en el arma o no se simula ninguna imprecisión y luego se agrega la inexactitud al vector que se alinea con el cañón de la pistola o la cámara del jugador, que también es bastante común: no se emite el rayo de bala Desde el cañón, pero en la cámara, en algunos casos, esto tiene la ventaja de que la bala golpea lo que se ve con la cámara en lugar de golpear una obstrucción en el frente del cañón, lo que sería más realista, pero puede verse como molesto en juegos en tercera persona donde muchos la gente solo quiere golpear lo que puede ver con la cámara flotante.
Incluso con raycasts, puede haber agregado la precisión de simulación aplicando el efecto de la gravedad en cada paso de la física a la bala y esencialmente teniendo muchos pasos físicos, ¡cuanto más mejor sea la precisión de simulación de los objetos en movimiento rápido! De esta manera, puede tener una caída de bala y desaceleración como lo haría en situaciones reales y obtener una aproximación mucho más precisa de la simulación. Incluso se puede añadir en fuerza coriolis!
El físico es similar, pero intenta pensar que el juego es una situación del mundo real: si simplemente movemos el objeto, chocará con su objetivo, ¿no?
Hay problemas con esto, como la detección de las colisiones reales. Es especialmente evidente cuando dos objetos se mueven bastante rápido: en el mundo real chocaban, pero en la simulación física del juego, el primer paso es antes de que hayan chocado y en el segundo paso se hayan pasado y no chocen físicamente. ¡Porque todos los objetos se mueven uno por uno por paso! De ahí que el tamaño de paso demasiado grande en relación con la velocidad de los objetos haga que los objetos se pasen unos a otros. Lo mismo puede suceder con Raycasts, por cierto: dos objetos lanzan un Raycast y fallan, se mueven y lanzan otro Raycast, faltan de nuevo. ¡Maldita sea! ¡Habrían golpeado en la vida real!
Ya sea que esté moviendo un objeto ‘físico’ con colisionador o no, puede hacer un seguimiento de la posición de la bala en su simulación y dibujar algo en su lugar, como un rastro o alguna otra señal de que hay algo moviéndose allí, idealmente el tiempo suficiente. que conecta entre los pasos.
En la vida real, las balas nunca viajan directamente en el sentido que usted piensa. Solo viajan en línea recta en su propio marco de referencia, pero como siempre pasan a través del espacio que está siendo doblado por la gravedad, siempre, incluso en el espacio profundo, tienen cierta curvatura en sus caminos.
Al hacer un juego, debe equilibrar varias cosas, como los requisitos de recursos en el sistema, cuántas balas podrían estar volando a la vez y cuál es la precisión de su simulación.
A menudo, puede tener 99.9% de la misma precisión de simulación sin agregar realmente ningún uso de recursos notable. Algunos ingenieros también prefieren una solución simple a una más precisa, incluso si la más precisa no plantea ningún problema técnico.
En la mayoría de los casos, las balas se simulan “con suficiente precisión” para el juego. Las armas no son 100% precisas, hay retroceso y en los juegos que tratan con distancias más largas, a menudo las trayectorias de las balas están curvadas por la gravedad.
La resistencia del aire, el giro de la bala y el efecto coriolis casi nunca se cuentan. La penetración, los cambios en el poder de penetración, el daño, etc. están por todas partes si alguna vez se cuentan.
Y luego también tienes cosas como coches que explotan violentamente porque disparas contra el bloque del motor o las puertas.