watch:
http://www.youtube.com/watch?v=SsViAvVYoMQwhat I noticed:
-muzzle flashes were clearly images, and didn't have any glow around the edges or semi-transparency anywhere. Movie muzzle flashes aren't simply just images slapped onto the end of a gun; you have to remember that since this is an explosion its not gonna be opaque around the edges.
-your images have a black tinge. Use an alpha layer and key the color black (or whatever is the background of those images) to the alpha so it reduces opacity based on the amount of black. This would also help fix most of the first point's issues.
-Recoil. The video I linked above handles the description it really well; it was way too exaggerated in the first (which is for humor), while in the second is nearly nonexistant. however when comparing to the video above, remember that rifles fire over longer ranges and so have a larger gunpowder casing, which means more recoil.
-scale the muzzle flash image, and use rotoscoping (found in another tutorial on the channel that posted the video above) to box out any edges of the gun that shouldn't have the muzzle flash over it.
-in the first video its rather clear you threw the gun because you let the front end go the second you shot the gun. Hold onto it next time as if you really needed to keep a grip on the gun, and didn't expect such a large recoil.
-lighting. don't overdo it and light up the whole room. notice how they do it in the video; its liberal, and covers mainly nearby faces, and certainly doesn't cover the entire wall or w/e. they also adjust the intensity of the lighting based on distance from muzzle.
general rule of thumb: if one or two frames of the video, pre-rendering, looks non-realistic, it's gonna look bad after render.