In the Blender Game Engine (BGE), I want the player to be able to "dig through" an object. In other words, the player can shoot a cylinder at a large cube from their perspective, and in its wake, the cylinder projectile leaves a hole through the cube.
Here's the shooting of the cylinder itself using WASD-style controls and firing with a left mouse click:
and I want the result to look something like this (made outside of the game runtime using a boolean difference):
The most obvious-seeming way is to use a boolean difference-operation - in fact, that's how I generated the second image above. However, I tried using a boolean difference modifier and then running the game, and it doesn't seem to work - as you can see in the first image above. Anyway, according to this answer, a live-updating boolean operation might just not be supported in BGE.
So does anyone have any ideas for an alternative way to implement a similar functionality, given the limitation in BGE? My best guess is somehow having python detect the collision, and modifying the mesh on the fly, but I have no idea if that's even possible. I'm relatively comfortable with python though, so if you have an idea of how to approach it, please do give me a hint. Or, if there IS a way to implement boolean operations live, while the game is running, I would love to hear it.
edit: This is different from Make modifiers update in the game engine. That question's only answer is predicated on there being a pre-meshed hole/feature in the larger object (water) that follows the boat around as a child. In that method, the mesh isn't modified at all during game runtime. It's a clever work-around, but it doesn't work at all in my case. In my case, the user needs to be able to create a hole (or more than one!) in any orientation and position he/she desires.