I was always curious as how to, fundamentally, this functionality is implemented in games. Regardless of whether you use raycasts or a physics shape + collision, there still is some backend system that has to register "hits", hit info, etc. and dish it back out to be processed, damaged applied, enemies killed, and such.
Is there a cookie-cutter way to do such a thing? Or does every one, from indie to big name AAA studios, just reinvent the wheel everytime they need a gun to fire at other entities/actors/whateveryoucallthem?
I haven't done as much research into the topic as I should have, but when I was writing Weaponwerks and my other little libraries to have complex weapons systems in first person, I kind of got stuck around the whole "oh hey I can shoot pretty bullets with effects and ricochets, but how do I make them actually do something in a neat, organized, OO, expandable way?".
Any suggestions, tips, advice?