How To Really Do High Quality Bullet Physics like in AAA Titles

Hey All

I’ve made this thread because i cant find any other post that give a good high Quality way of making bullets. they just say use RayCast’s and RigidBody’s

It’s not necessary to post about other stuff Eg Muzzle flash, recoil, zooming etc

i just want to know about the bullets and bullets physics

OK now for the actual question
what is the best way of making bullets that Have bullet drop, You can SEE the bullets as they move through the air, good hit detection and lastly but most important Performance.

Using a bullet that has a rigid-body works well for the Bullet Drop and Seeing the bullet(tracing?) but bad on performance and VERY bad hit detection

Ray-cast’s work well for Performance and Hit Detection

Is there a way to make a ray-cast that has bullet drop and you can see the bullet move.

//////here’s some examples(not my project or videos)

Like In Battlefield 4

Unity realistic bullet ballistics - YouTube (i would imagine this wouldn’t isnt to good on performance)

thanks for viewing
~Scott

You have your answer in your question :).

You tell of Rigidbody fixing one part of your issue and raycast fixing the other part. SO what you need is both.

Use AddForce to shoot the bullet and let the engine handle the trajectory. You could add a trail renderer for a nice trailing effect. Make it real short so that it does not take too much on resources.

Finally, use a raycast to check on collision:

Vector3 prevPos;

void Start(){
    prevPos = transform.position;
}
void Udpate(){
    RaycastHit hit;
    if(Physics.LineCast(prevPos, transform,position, out hit))
    {
         // hit.points is the impact point 
         // you can then check whether it is environment or else
    }
    prevPos = transform.position;
}

There are improvement to be done for efficiency like caching the transform, maybe comparing raycast and linecast (I read linecast being slower but easier to use here).