Luke Haslett's Portfolio
Game Development Blog
In Diablo, scenes are populated with assets that are destructible when a character either comes into contact with them, or they’re hit by a character’s attack. Destroying a responsive environment like this is generally fun, but the player can also find that items and currency will drop, which may persuade them to seek out the destruction for loot.
Also, this visual feedback is more interesting to the player, especially as a passive interaction while the player moves through the environment, so I decided to include the feature in my game.
UE4 actually already contains a powerful tool to turn static meshes into destructible meshes, and provides dozens of settings to tailor them to the designer’s needs. I took advantage of this and created destructible meshes from various Infinity Blade assets that would look right for the map.
Next, I wanted it so that once a mesh’s destruction had been triggered, there would be no collision with the character, otherwise the player may sometimes clip up into the air or get stuck. I tried several approaches with this that kept crashing the engine for reasons unknown, other than I’m building the entire project using visual scripting over C++. But I found a solution by changing the chunk thresholds, and it performs how I want it to.
Finally, I duplicated the process for several iterations on pots, barrels, crates and boxes, and have the following result: