Greg's Destruction Playground

that flamthrower is rad!

Great work. Will you release any demo to try this?

You are very proficient at destroying things! Ha ha… Seriously though, the first demo of the fire burning down the building is incredible! I’d like to see more like it deployed in games.

Thanks I’m still playing around with destruction in general. Trying some more advanced patterns with PhysX Labs and tweaking them for good enough replication. I’ll have to come to replicating fire destruction. I will post a new video very soon.

By the way in the Flamethrower video I was still using the default fire PS but I’ve tweaked it to prevent it to lag things out. Using GPU sprites helps a lot. I also made a kind of Rail Gun which can pierce a hole into a long destructible (or set of them). But that seems to get PhysX unhappy after playing for a bit with that and it starts removing things on its own.

You might find this interesting:

http://jflevesque.com/2012/12/06/far-cry-how-the-fire–and-spreads/

Article on fire propagation in Far Cry 2.

This is pretty awesome! I love the Hungry Chunks video. Do you think you will be uploading a project soon for the community to play around with? Thanks! :slight_smile: :smiley:

Thanks for the good link :). I really appreciate I hadn’t seen that yet. I haven’t read it all yet but I will. I’ll just note that I’m not sure it is still relevant with PhysX and APEX. Actually what I was doing first was to simply create a RadialForce and enlarge it as time goes. That’s what I used in my previous videos with fire. Now I switched to a different version which is: I spawn an actor responsible for dealing damage tothe destructible over time and it simply keeps damagin all the chunks. Why does that work fine ? Because the chunks are only the pieces that are resulting from a fracture. So saying it is tweaked correctly to fracture little by little if I cut out one small piece and it remains close to others long enough amage will be applied onto that piece. Radial and very localized damage but big enough to light up the neighbouring chunks. If a chunk falls to the ground and is close enough to its parent it will damage its parent at that location, until it fractures a piece of it that will then take fire. Same applies if a chunk falls next to (or is close enough to) another flammable destructible. I’m showing this in the following video even if it might not seem very easy to see.

Destructible Replication #3

@
I think I will start making some tutorials later. But not just yet.

In my next video I will show in more detail what I can do. The wooden destructibles catch fire according to their physical material that must have a surface type set to Wood and to the DamageType given. I’ll be adding a key bind to switch fire mode between normal bullet and fire bullet to show the difference. You already saw that firing on a concrete pillar doesn’t light it up.

I’m not sure if relevant , because as said before that UE4 doesn’t exactly support networked destruction too well but https://developer.nvidia.com/apex-destruction
Shows Hawken and a few others capable of doing this in a MP setting with decent looks however i’m not sure how accurate the destruction is compared to something like DICE has with Battlefield - i would be MOST interested if anyone has an idea to get something similar to Bf :stuck_out_tongue:

Hey, great videos. Have you tried serializing chunks to disk? E.g. save/load system, or interactive level “editing”? I think it would be really nice feature to have, however so far I was not able to find any nice way to do it :frowning:

I’m not sure to see why you would do that. Since chunks come out of physics they are pretty random. What’s the point of reading them back at some point ? Breaking the destructible will always give you different chunks.

By the way I’ve got another video here. Haven’t done much for quite some time but I decided I would advance with fire propagation. So here’s the first step torwards it. I think I’ll make a dedicated thread for this soon though.

Fire Propagation - Part 1: Propagation on Ground

TODO - Ground propagation

  • detect ground physical material to check for flammable (seems that I always get the default phys mat when testing against the landscape)
  • ensure better positionning of everything
  • improve randomization of spawn
  • increase and randomize fade in / out of fire effect
  • increase performance of fire effect
  • fade in / out opacity of ashes decal outwards
  • give normal map to ashes decal
  • animate emissive of ashes decal
  • any suggestions ?

TODO - Other

  • handle flammable objects
  • handle flammable destructibles
  • handle players

I just realized that my code was already good enough to do something I hadn’t really thought of yet. I mean yes I had but I did not intend to do this right now. But as it is already working well enough I decided to give it a video too.

So I can already have the fire propagate well enough in trees for example but I haven’t yet thought of something to make them look different when burnt. Anyways this thread is supposed to be more about destructibles so I won’t give this too much effort right now.

Fire propagation in Trees

We’re gonna need more marshmallows!

Some people just want to watch the world burn :stuck_out_tongue:

Do you plan on sharing this code or Blue prints. Just curious :smiley:

Static Fire Propagation with Destructibles
By static I mean that this uses the previous solution which uses only world cells for fire. Thus location doesn’t change. It’s cheap but is not very good for dynamic objects of course. Still I wanted to see what it could do with some destructible settings and a little hut made by Cattar, a friend of mine.

Been watching this thread silently for a while. Looking really sweet Greg!!

Thansk a lot for the feedback :). I’m currently trying to get a good complete C++ solution for this but it takes time as I’m still quite new at the engine. I keep finding out and understanding new things every day. I hope I can post more stuff soon :).

Looks awesome. I love how the flames interact with the branches and leaves (or pine needles.) Wish list: scorched earth and tree assets that morph into charred black remains with no leaves and only a few, smoldering branches (that don’t disappear over time) -if this hasn’t already been mentioned and/or if it is even possible.

Thanks. I play Far Cry 4 regularly and keep watching how it goes there. I’m still trying to get a fully functional and dynamic system first. Like flammable floor should burn but any prop in contact should take fire eventually and propagate to itself and even to other props. Static, physics, skeletal AND destructibles intended in addition to landscapes. Destructibles would work kinda differently but should still be as dynamic. In that I mean if a player comes holding a flammable prop in his hand close enough to a burning prop that one in his hand should catch fire. I kind of got that sorted but it doesn’t work properly yet. To make sure it remains as dynamic as possible I’m using the built in collision and damage systems. But I’m getting issues where sometimes fire “cells” do not damage themselves for example, thus making it impossible for them to propagate further as propagation would come from receiving damage (aka burning). Meaning every flammable (virtual cells included) should be both flammable AND fire damage dealers.

Now concerning the additional features to make this look more realistic please fell free to post all your suggestions ! I’m really open to them because I’m not an artist and thus I don’t know the best ways to accomplish good looing things. Please point out some features or options (this or that checkbox) if you think of any that could help :).

Will keep posting progress videos as more interesting things come to life.

PS: any test assets will be greatly appreciated. Won’t be used in paid projects and will be duely credited in any resource I post including them (video, screenshot, …). I’m so not a modeler, animator or even texture guy. Same goes with particle systems etc… i’m still using pre-made assets partly modified for performance. So if you think you could and would like to help with that I would be very happy :slight_smile:

I’m pretty sure that any destruction involving changing collision is pre-animated. Any debris chunks that are driven by physics are not replicated to other clients. I remember seeing a video for BF players warning people to not assume that certain types of cover are actually there (according to the server).

So basically you shoot a wall in a certain area and there is code that tells the server “collision mesh X has been destroyed”, and that gets replicated. The collision mesh is hidden though so you don’t see anything–you just notice that bullets can travel through the wall now. Your client then breaks apart the mesh and creates little pieces of debris which you can actually see (either pre-animated, physics-driven, or a combination of both), and that part is client-side only.

I’d expect that having destruction that looks good and is replicated nicely is actually quite challenging. DICE does a pretty good job so maybe they make it look easier than it actually is :stuck_out_tongue:

Hey Greg, in reference to your small arms fire destruction; could you please share any code / blueprints? or at least explain the process of doing it because I’m trying to re-create a similar situation without replication but can’t seem to have pieces break without the entire mesh collpasing

Thanks