July 28, 2012

Dynamic Destruction

My eventual plans on destruction include terrain deformation, dynamic rule based destruction of ALL objects, and added into the rule set a kind of hierarchy stress system. Simply put if it's in the game and you shoot it it will break apart the only question being how much which will primarily be determined by velocity. More on projectiles in my next post.

My concept is that I'll be issuing a "type" to environmental objects that are given numbers based on their weight and how much weight they can sustain and overall mass which acts as a multiplier for each. Then including a top down addition of all weight to see if an object can hold it if not then it acts as a low level impact and the objects all start breaking apart to some degree. This is a far cry from some of the tech I've seen out there but sad truth is I simply don't have the skill to make the next red faction system. Though I must say that considering my mid-range talents it's not a bad concept. The great part about it being rule based is how easy it will be to update later not only tweaking what's already there but adding in new sets of rules. For example if I suddenly think of a way to add in stress or directional weight which I hope to. Why you may ask? because while an object may handle all the weight coming down on it directly it might fall over or if one side of it weighs too much and the weight isn't being calculated like it should. For in an example of this a building with half the base floor blown out is calculating the rest of the weight on the top floor then evenly distributing it among the remaining base floor evenly to see if it will stand when it should transfer most of the weight on one side to the first couple remaining pillars or more accurately most of the building weight in a steel frame structure should actually be focused on the center pillar/s. Other things to consider is that an entire building doesn't have to collapse sections of it can collapse on their own though in the existing plans this may already happen to some extent. Because it's top down each floor is calculating if it can hold what's above it, my next plan is to probably implement sectional calculations and weight distribution so that the top down is only calculated by relative location rather than as an entire floor. So while some weight will be transferred to the sections of the same floor around it most of the weight will go into the section below it. Still not as clean as it could be or as direct as directing the weight to specific supports but it should do nicely. Now that I think about it (and this is really more of a note to self situation) I could also make it so that sectional weight transference works from the outside in directing most of the weight to the central pillar which only calculates top down and doesn't spread outward...

By terrain deforming above what I meant was if you plant explosives on the ground you can make little pot holes big enough to crouch in or lay down in or if there's something beneath them then blow a hole in the ground and drop down into a subway tunnel to traverse the level.

One of my BIG hopes for the next iteration of consoles is multi screen output because I'd love to put in 4 player co-op but 4 players on one screen has always been a problem. I'd also like 4 player local competition but screen watching is equally annoying. I remember the first time I did a system link to play halo with my buddies and everybody found a way to bring an extra TV and some friends it was a small LAN party in my house. We used to do that almost every week at least once on the weekends and sadly those days are kinda gone. We still play all the time online but that's only because there's not much we can do locally anymore.  Do you remember the first time you did 4 player local? What game was it and would you be interested in seeing a return of local multiplayer?

 The Edit: In my previous post I mentioned this post, and turns out it didn't really need much revising just some spelling and continuity issues. Yes continuity, it doesn't make sense now but it would if you'd seen it. Anyway what the major update to the above system was the first implementation of the rule system. Right now it's under object interaction and it works surprisingly well I didn't think it would work so well I'd planned on switching it over to like the physics system alone, now I'm thinking the physics just might be an extension of it to handle weight transference and similar. With that in mind my estimated time for completing the system just dropped significantly here I thought it was going to take me a year or two now I'm thinking maybe by the new year or march before I have something launch ready. Not that I would launch anything by then but it's nice to know I'd have a milestone completed way ahead of schedule.

For those of you interested in the numbers. I went from tens of thousands of objects to a few hundred. I then when shooting at them managed to increase object count into the thousands rapidly without any lag. My fps were running smoothly between 42 and 46. The poly count during the object increase also increased by about 60% something I hope to reduce further. My memory usage compared to the previous method of instancing is now less than 16% of what it was, and I am still using instancing for common objects. To clarify I went from tons of bricks that were split in two into a solid wall and back but now the brick isn't split by default it splits as necessary. Right now it's only functioning on predefined environmental object types but that basically boils down to anything that's been labeled a building which works out nicely for me considering they're the focal point of what I want to destroy. Overall processing however went up from where it was something I was hoping wouldn't happen. The entire purpose of this method was to reduce memory and processing necessary right now I'm just trading off one for the other. Right now I'm thinking it's likely how much the poly count is increasing during the fracturing process. Perhaps I can reduce the poly increase and object increase for something a little more block like and see what happens.


A note on a prior post about the top down shooter spell concentration isn't gone. I've arranged it so that concentration is now in pre-defined sets. The cone, the line, the immediate area, the ball, and a larger area effect spell. The right click now makes a charge shot for each that is quite powerful and does more damage the longer you charge. The left click is still stream and does constant damage. You can increase the power of the stream from the upgrade menu. I'll talk more in my next post on the subject.

No comments:

Post a Comment