Previously, I had finished the engine refactor and wired up func_guntarget. I mentioned that I had two things left: fixing the decal system so that decals stick to moving objects, and adding a health system. This time around, I’ve done both of those things, as well as messed around with Box3D to add physics to my engine.
The shooting gallery uses a new type of target I’ve added, a func_guntarget_breakable, that behaves much like the func_guntarget except that when it “dies” it cannot be resurrected and becomes a dynamic physics object. This allows me to have the target “shot down”, which I thought was a fun bit of interactivity. This required adding the Box3D library to integrate physics, which went quite well!
Here’s a small demo of what the shooting gallery looks like right now.
At this point, I have most of what I need to put together the rest of the shooting gallery. Time to have a bunch of targets moving around, and keeping track of the player’s score. I may end up looking into camera shake for weapon effects, as well as adding a proper HUD.