The destruction in the example you've linked seems to be done on a single cube, and the game level is built from these cubes. If this would be extended to a comprehensive set of elements and tiles then we could have destructible buildings. However doing things like Red Faction did would require using CSG. It could work, but I have not tested it. I have seen 3D modifiable voxel-based terrain done in Godot 3 a long time ago, so that would also be possible (digging tunnels etc).
At one game studio I worked on a game that had destructible buildings, though I worked as a sound designer and 3D artist, not programmer. I did have a bit of a look into how the destructibility was implemented. It wasn't based on dynamic mesh generation, but pre-determined destructive points. You could make some holes in buildings but it wasn't exactly where you hit as it had to snap to the nearest predetermined destruction point. When enough of the building was destroyed, it all fell down into rubble. The also was a hierarchy of destructibility so that if you destroyed support for a different part of a wall - it'd break too. Destroyed walls wouldn't create rigid bodies, only particles. So no moving rubble, which would impede player movement and cause performance issues.
Terrain was done with a heightmap and explosions would just dig holes in it (no voxel terrain).
All of this I find exciting and fun to tackle but the reality is Liblast would need at least one consistent, dedicated contributor who'd dive into this and work with me on a weekly basis - do research, prototype, implement and maintain it.
It's because there's a lot of work to be done with the basics of the game and until that is done I won't be able to focus on such a huge undertaking - if I did the game would not be ready for a 1.0 release in 2023 and I aim to do that (minimum viable product). Being stuck in development hell for half a decade due to feature creep is not something I want to endure.
So I am open to try and test fully destructive levels, but I can't directly do it.
I also think it is something that can be added even after 1.0 - however it would cause massive gameplay changes, interacting with other game systems like responding to weapon damage, changing collision of objects, updating navmeshes (for bots) and handling lighting which I think would unfortunately have to be fully dynamic (and hence - very expansive, contradicting one of the key goals of the project) or very ugly.
This would need a lot of prototyping and development. The game as it is designed now is something I can finish even myself in a reasonable amount of time. Fully destructible environments in a fast-paced multiplayer game presents so many challenges and unknowns that without a dedicated developer it's not feasible.
So if anybody wants to give this a shot - let me know! 🙂
I don't expect someone like this will come around though - and if they do, they'll probably do some basic work and disappear after 3 weeks, or 2 months tops never to be heard from again, or they will not be able to dedicate more than 2 hours per month, which is not enough to get something of that magnitude done. That's just how it is - nobody gets paid to work on this, and not that many skilled and experienced people have time to do hobbyist projects like this. I have not met someone with the same drive for this project that I have yet - which is completely understandable - I am very thankful for all the contributions which are helping the game immensely, but this feature is just too big for me to believe someone would just come around and take responsibility for it.
But there's no harm done - I don't see a reason why this couldn't be done later as separate game mode or a mod or update. That would present extra challenges in itself, but for sure way less than implementing full destructibility in the first place.
Heck - I will work to make Liblast capable of being modded to support something like this!
I think your ideas for the story however are very useful as stripping it down will indeed grant a larger creative license to make interesting environments, like in Unreal Tournament.
I'll have to do another story rewrite with this in mind, but I want to get some other thing done first.
All in all - thank you for your input!