FPS games bullet methods

Hello!

I’m currently learning Unity 3d and putting together a FPS game. I have been testing some ways to simulate bullets coming out of a gun and have found advantages and disadvantages in all of them. I wanted to ask the forums for some help/ideas of how I should program the guns in my game.

Here is what I’ve tried:

Raycast hits

This is what is used in the FPS tutorial. To what I believe, this is what is used in most modern games. Stuff like ricochets and near miss ‘whizzing’ sounds are programmed in. This is probably the best method, but the most unrealistic.

Particles

This works by using a particle system to simulate the bullets. This allows for some sweet effects at not much cost, but still needs sounds programmed, since particles don’t emit sound (I think there is a way to do this with some functions to do with the particle location)

Game object

This involves a physics controlled bullet that has things like force and ricochets programmed. This allows for more ease of use, and sweet bullet-time effects, but can’t be simulated at the real speed of a bullet, since the physics get glitchy!

I would like to know what you all think is the best and solution!

Thank you,

Super Cheese

this all depends on your game itself. for example, as you mentioned, if you want good bullet time effects then game objects definately look best, but in reality, you probably wouldn’t see a bullet, so the raycast method would be sufficient. the particles would be good, if you are using this “glow-trail” (or how do you call it?) ammo.
one thing i’d like to add though, if you are using the game object bullets, personally i wouldn’t use physics calculations for them, it’s pretty much unnecessary imo, you just need to detect if it hits something and don’t need to apply gravity and collisions.

you mentioned many pros and cons yourself, it’s up to you to decide which one fits into your game.

1 Like

Thanks, I think I’ll probably be using particles then. The game is supposed to be mega-realistic, so I won’t be doing any bullet time stuff!

Super Cheese