Pyre
Arch-Supremacy Member
- Joined
- Jan 1, 2000
- Messages
- 22,610
- Reaction score
- 239
https://forums.robertsspaceindustries.com/discussion/comment/2071853/#Comment_2071853
You just saw a PART of the damage system in the video. There are other layers like laser marks / burns, bullet / armor hits (achieved with decals + height maps) .
Something that people may not have picked up is that while we have discrete states of damage for every part each state has multiple pieces (panels etc) that can break off. At the beginning of the state all those pieces are attached to the base damage geometry and then are broken off if there is a laser / projectile hit in their vicinity. So between the projectile hit decals, bits of the geometry breaking off near the impact point it will definitely look like the ship is responding to exactly where you are hitting.
Transitions between states - which is flexible in number of states per part as it really depends on the size of the part and how much fidelity you need so the progression looks right (and available artist time) - is more absolute (i.e. when you go from damage 25% to damage 50% the same thing happens although the impulses of the detached geometry is random), so the wing will break in two or sheer off when you hit 50% damage (although if enough damage is done it will skip a state, which will have the effect of feeling / looking different).
We're also accurately tracing all projectile hits so if a bullet breaks through the shield and armor it's path will be traced inside and if that projectile collides with an internal component it will inflict damage.
Every ship system has a physical location and collision geometry even if it doesn't have render geometry (which is the case with an internal system). If that system is damages or destroyed it affects the ship on a fully systematic way. The obvious answer is the power plant - that gets damages (and doesn't blow up) its power output will decrease or stop. Every system has a power input and if its no longer receiving power will cease to function or in the case of reduced power either function at less power or not at all (depending on the device). Of course if you have some batteries / capacitors then the systems hooked up to the batteries will have some reserve power before running into trouble. A less obvious illustration is the ships main computer which provides CPU cycles for the ship's avionics (you can think of this computational power instead of energy power). If ship's computer is destroyed or damaged the targeting computer wont be able to resolve targets / function (as a targeting computer needs power, CPU cycles and a working radar). All ship systems either produce / supply some form of consumable (power, CPU cycles, heat, fuel) or use it. Heat is the negative consumable (you want to dispose of it not store it) - most weapons and some systems generate heat and if you don't efficiently deal with it (or your cooling vents get damaged) you'll risk damaging your ship & systems and at the very least increase your heat signature which makes you a much easier target for another ship's radar / targeting computer.
This is all built in ships with a plug and play system so we just create item "ports" on a ship and plug weapons, radar, power plants, engines, thrusters, fuel tanks, batteries, CPU (more cores means more cycles), targeting system, navigation computer, jump drive, cooling vents / radiators etc in and they hook up the various "pipes" that carry power, CPU cycles, fuel or heat.
Each of these items have their OWN damage states (for the ones that you can see)
So you can see there's a level of fidelity in what we are doing that I haven't seen before in a game and the video today just showed a window into part of the things we are doing to graphically show damage...
On Snowdrop - its a really pretty looking engine and I showed it to the team the moment it was demoed at E3 as I was very impressed. Having said that its not really do much more or different than CryEngine already does - the "procedural" damage that is demonstrated in the video has been something you have been able to do in CryEngine for years (bullet hit decals, breaking a plane of glass, puncturing tires and the car drops onto the rims). Its very well done (beautiful art & lighting) but I didn't see anything that we don't have the tech for in SC and that we are not planning to do (well I guess you cant shoot tires out on a ship but you could on a buggy!) Its been my experience that the very high end engines - CryEngine, Unreal 4, Frostbite all are pretty much equivalent on feature sets and capabilities - its more about how good you artists are and your programmers are in finding cool ways to show of the features of the engine.
Last note (in my wall of text) -
I've known about the BeamNG folks for a long time and talked to them as early as Dec 2012 about working on Star Citizen. I even have a prototype test they did with a Hornet flying in space using their system, crashing into asteroids! The problem with their approach (and soft body physics in general) is that it is really computationally / simulation heavy - its great for demo videos or something like a car game (there's a reason why Forza or Gran Turismo cars always look so good its because they're usually simulating less stuff than you would in a FPS like Crysis 3). Between the network bandwidth issues and client rendering / simulation issues (simulating softbody physics on 50 ships and having a frame rate that is above the single digits) a full softbody system isn't practical for SC just yet even on the high end PCs we're hoping everyone will have!
That doesn't mean that I am against trying to do a streamlined version for damage modeling - I was hoping to get the BeamNG guys to do some R&D on a stripped down system that just focused on the damage modeling / deformation (not so much the full physical simulation of every hinge etc) for SC but at the time we talked they had other commitments (like finishing university) and wanting to work on their car game so we never ended up working out a deal - which doesn't mean that I wouldn't revisit this as they are super talented but right now it looks like they are doing well and living their dream of building their own game (and who am I to stop them?)
This doesn't mean that we don't have procedural damage modeling via deformation in our R&D task list for the SC Graphics Engineering team (which is 4 programmers internally at the moment). We need this solution for capital ships as you want to see large hulls indent or buckle from hits / collisions and if we do something that we're happy with (and meets our performance criteria) we'll probably also apply back to the smaller ships adding just another level of detail!
So I guess the TL;DNR version is be patient grasshoppers!