Remember My Scars!

“Out of suffering have emerged the strongest souls; the most massive characters are seared with scars.” ~ Kahlil Gibran

While we all would like better damage modeling, I'm actually pretty happy with the damage "decals" we get in battle. The problem is that this visual damage magically disappears the second we enter supercruise. This is especially jarring on a ship like the Mamba where we can witness this from the cockpit. It's borderline buggy IMO.

All I ask is this - let us keep those damage decals until we repair our ship. When I pull into space dock, I want people to see my battle scars. These are not something to be ashamed of, but rather proud of. Now if you'd like to go the extra mile, you could have these decals be removed incrementally with incremental hull repairs. For example, if I repair 90% of my hull damage, 90% of the damage decals are removed, leaving 10% still visible.

Source: https://youtu.be/OnpQgeAmhnc?t=113
 

Deleted member 182079

D
Would ne nice: yes. But it would require remodelling all ships. That's a lot of effort for what it would do. But the suggestion here, with the damage decals staying after zoning, i am all for it.
Would be nice for sure - what would be even nicer would be to fix all the glitchy cockpit issues first (Adder & Vipers landing gear, Hauler gaps in the canopy, FGS paint job, etc.).
 

Craith

Volunteer Moderator
Yes, persistent scars on the ship.
I'd even say don't remove them when fixed, only change them to look freshly repaired/welded. Only when the paint gets renewed they should disappear.

It can be for your ship only (afaik damage decals gets not transfered to new people joining an instance, they only see the damage that happens afterwards), or get loaded over time (to not increase instancing times).
 
I like the idea, but I wonder what the memory or network overhead would be though.

Each decal occupies a co-ordinate on the ships skin- multiply that by hundreds, each needing a layer (i.e. new over old), blending, orientation, x / y (or other projection method) and that it has to hold its history to be fixed in repairs, and recalled quickly in instances. Not to mention it has to be kind to ship kits that seem to have separate UV mapping methods. I think we will never see extensive ship damage models because of ship kits- but I hope I'm wrong.
 
I like the idea, but I wonder what the memory or network overhead would be though.

Each decal occupies a co-ordinate on the ships skin- multiply that by hundreds, each needing a layer (i.e. new over old), blending, orientation, x / y (or other projection method) and that it has to hold its history to be fixed in repairs, and recalled quickly in instances.
The location of damage decals on our ship require a trivial amount of memory, less than the textures themselves. As for instancing, that's already in the game - heck, I've gotten more scars from wings of gankers than I have NPCs, and the network handled it all just fine, LOL.
 
I like the idea, but I wonder what the memory or network overhead would be though.

Depends on which version you refer to. The one from Old Duck: not worse than now. We already do have these damage-decals added to the ships. Fly a hybrid tank in a RES, wear it down to like 20% hull, then go to the outside view. There's plenty of dents, scratches and burn marks on the ship.

When somebody enters the instance later and then checks your ship, he also gets your damage status and that there are damage markings on the ship. (That much I confirmed with friends. I did not check if the markings are the same. ) What I also have not checked yet is what happens if you have damage and relog. I would suspect that the damage decals will be gone after this, but can't back this up with actual knowledge.

So from what I see, there's actually only a few things missing:
  • The handover of damage decals from normal flight to supercruise and back. (No network traffic at all, no extra memory use. It just needs to save a few bytes in memory instead of clearing it up when switching the instance. )
  • Storing damage decals on server side. (Minimal network use, one or two packets. Minimal harddisc use on server side, only a few bytes. Depending on how you implement, it's a few bytes per ship or, see "optimization" only a few bytes per account. )
  • Retrieving damage decal status from the server when logging in. (Minimal network use, only one or two packets. No additional memory use. )
  • Optimisation: no need to store damage on additional ships. Ships which are stored loose their decals, free service of the station. (Else you have a few bytes per stored ship, this way you have a few bytes per account. )

Once you go for the suggestion of Craith, things will get much more complicated. If a ship only gets rid of the decals when the paintjob is fixed, it'll give people the possibility to stack damage decals like crazy. This might even affect performance of GPUs which are already operating close to their limit. But as long as hull repair (or the ship being stored) removes the decals, your hull health puts a limit on how many of them you can have and memory and GPU useage should be under control.
 
Depends on which version you refer to. The one from Old Duck: not worse than now. We already do have these damage-decals added to the ships. Fly a hybrid tank in a RES, wear it down to like 20% hull, then go to the outside view. There's plenty of dents, scratches and burn marks on the ship.

It was the simple decals for overhead. I wondered as there must be a reason why they get wiped on changing instances, as like you point out they exist already.

It would be great if by using the new network optimisation software they can do this.
 
It was the simple decals for overhead. I wondered as there must be a reason why they get wiped on changing instances, as like you point out they exist already.

I would guess the reason for them being wiped is very simple: nobody ever put into the requirement document that they would have to persist after switching instance. So nobody ever implanted and tested that functionality. I mean, we do know that ships are not "moved" from one to the other. As NPCs show us all of the time, they get despawed in one place and spawned again in another. The same probably is true for player ships. Only those parameters which the game considers important enough to keep are transferred over. Decals were not on the list.
 
The location of damage decals on our ship require a trivial amount of memory, less than the textures themselves. As for instancing, that's already in the game - heck, I've gotten more scars from wings of gankers than I have NPCs, and the network handled it all just fine, LOL.

What cautions me is the P2P issues that we get with multiple instances sharing information between each other incorrectly. Yes they are decals and not something that makes your ship go boom, but in an instance of 32 you are having to exchange 1024 x (amount of decals applied x position / orientation / blending / order / history) so I'd love to see a beta with this persistence switched on.

Maybe FD fear persistent genitalia burnt onto your hull, or branding a trader like a steer :D
 

Craith

Volunteer Moderator
Depends on which version you refer to. The one from Old Duck: not worse than now. We already do have these damage-decals added to the ships. Fly a hybrid tank in a RES, wear it down to like 20% hull, then go to the outside view. There's plenty of dents, scratches and burn marks on the ship.

When somebody enters the instance later and then checks your ship, he also gets your damage status and that there are damage markings on the ship. (That much I confirmed with friends. I did not check if the markings are the same. ) What I also have not checked yet is what happens if you have damage and relog. I would suspect that the damage decals will be gone after this, but can't back this up with actual knowledge.

So from what I see, there's actually only a few things missing:
  • The handover of damage decals from normal flight to supercruise and back. (No network traffic at all, no extra memory use. It just needs to save a few bytes in memory instead of clearing it up when switching the instance. )
  • Storing damage decals on server side. (Minimal network use, one or two packets. Minimal harddisc use on server side, only a few bytes. Depending on how you implement, it's a few bytes per ship or, see "optimization" only a few bytes per account. )
  • Retrieving damage decal status from the server when logging in. (Minimal network use, only one or two packets. No additional memory use. )
  • Optimisation: no need to store damage on additional ships. Ships which are stored loose their decals, free service of the station. (Else you have a few bytes per stored ship, this way you have a few bytes per account. )

Once you go for the suggestion of Craith, things will get much more complicated. If a ship only gets rid of the decals when the paintjob is fixed, it'll give people the possibility to stack damage decals like crazy. This might even affect performance of GPUs which are already operating close to their limit. But as long as hull repair (or the ship being stored) removes the decals, your hull health puts a limit on how many of them you can have and memory and GPU useage should be under control.

I don't meant that you should be able to get more scars than now (even now there is a limit, if you go over it, the oldest scars will disappear), so it wouldn't increase the load more than they currently do. I think it is feasible to store this data clientside, so if you play on different computers you will lose it (like visited stars), or need to synchronise the file. Of course serverside is better, but an easy solution increases the chance for it to be implemented.

Transmitting the current scars to other players is the same thing, actually - they usually are not able to see them due to distance and speed apart from deliberately looking for them (like decals), so it is not a high priority that it gets synced (which does add some overhead to the instance-handshake). Still, might be feasible to sync that 1 second after you enter the instance - but again, better to get the feature at all.
 
I don't meant that you should be able to get more scars than now (even now there is a limit, if you go over it, the oldest scars will disappear), so it wouldn't increase the load more than they currently do.

Hmm. I didn't know there was a limit. It shows that I didn't spend much time testing around how my ship gets beaten down. It only inevitably happens due to the mediocre pilot it has, I sometimes admire the battle damage, then rush of to get it fixed.

If there's already a limit in place, your suggestion basically boils down to almost exactly the same (very low) resource need as the one form Old Duck. Either would be nice.
 
Transmitting the current scars to other players is the same thing, actually - they usually are not able to see them due to distance and speed apart from deliberately looking for them (like decals), so it is not a high priority that it gets synced (which does add some overhead to the instance-handshake).
Don't NPC "scars" share between players in a wing? I can't remember now... I thought for sure though I could see the battle damage to an NPC caused by another player. If this is the case, then sharing "scar data" can't be the resource-intensive process that some fear it to be.
 

Craith

Volunteer Moderator
If I am not mistaken, it works the following way.

Let's assume 3 CMDRs, Old Duck, Sylow and Craith Rhandir (Names chosen at random. Any resemblance to actual CMDRs, in Open or Solo, or Private Groups is purely coincidental.):

  1. CMDR Old Duck is flying his eagle in a HAZ-RES, and is currently working on an anaconda. He has already taken down its shields and is drawing nasty things with his beam lasers.
  2. CMDR Craith Rhandir jumps in, and, expertly, crashes his eagle into CMDR Old Duck's, taking out the shields. Both continue shooting their beams (because they let you draw stuff) on the anaconda's hull (dealing not a lot of damage, so might take a while). The anaconda gets a few hits in on both CMDRs, and since CMDR Old Duck's shields are down, makes a few puncture holes with its pulse turrets. Then his shields recharge.
  3. CMDR Sylow jumps in. CMDR Craith Rhandir's shields drop, he gets hit a few times, but together they manage to take out the anaconda's power plant. For some reasons the NPC completely forgot to set up power priortities, and doesn't know about rebooting, so the three CMDRs fly around and inspect the battle damage everyone, while drinking Ceremonial Heike Tea.
CMDR Old Duck sees some punctures on his ship, some punctures on CMDR Craith Rhandir's ship, and some of the battle damage of the anaconda. The nasty things he drew at the beginning are partly erased, because the maximum numbers of battle damage was reached and the oldest ones started to disappear.
CMDR Craith Rhandir sees the punctures on his ship, the hits on CMDR Old Duck, but nothing of the nasty stuff on the anaconda, since this was created before he joined the instance. all the later damage decals show up for him.
CMDR Sylow only sees the damage on CMDR Craith Rhandir's ship, and the last few hits on the anaconda, but nothing else, since he was not in the instance when the damage happened.

I guess (haven't checked myself) that battle scars are totaly client side, and might differ between the ships, since some minor lag might make that beam hit a few meters to the right on one of the computers.
 
Back
Top Bottom