client-server
client-server copied to clipboard
Full invisibility when covered in foliage
When player is hidden in foliage (heavy bushes or heavy grass) and cloaked at same time, the player should be completly hidden - that is - not rendered at all.
Currently, the issue is that players with lower settings get advantage of seeing cloaked players in the distance, because the vegetation simply doesn't render that far and that makes it easy to spot an enemy.
This could be fixed by adding a condition, that if player is hidden in foliage and more than let's say 30 meters away, the game would skip rendering them altogether.
I think this would at same time solve the long standing issue of cloak being kinda useless as it's pretty damn easy to spot by human đ I mean... sure, it makes sense in single-player where AI is programmed to ignore the player if cloaked, but that simply doesn't work in multiplayer. It would add a depth of sorts to the nano-suit gameplay finally, but that's just my opinion.
What do you guys think? Yes or no to such idea?
Or enable rendering of vegetations in low settings at further distance or same as high settings? It's not a big performance hit I think, we could change it with vegetation render nodes?
Vegetation has a huge impact on FPS if you are on a low end computer (like me for example). In my case higher vegetation distance easily reduces FPS from 60 to 20
I was thinking, it would be a nice way to limit those players with insane amount of fps, and make it fair for all :D
What did you change so that it reduces your fps that much?
And you would need to add some expensive calculations to see whether a player is totally hidden behind foliage, anyway?
Well, @griseraner managed to fix ghost bug, which is awesome. This sounds kind of like bringing it back. I think we need to optimize vegetation rendering, so every single bush is rendered always and on every settings. Crysis Remastered is able to render much more stuff for example.
What did you change so that it reduces your fps that much?
Vegetation render distance CVar đ. You can set metres there as far as I remember. If I set it to high value above 200m, my FPS drops making the game unplayable.
And you would need to add some expensive calculations to see whether a player is totally hidden behind foliage, anyway?
This one is cheap as hell to compute đ. There are max 40 players, let's say max 5 out of them are cloaked at any single point in time, that makes it for ~5 raycasts a second. And I think game even has a function to detect that, as AI in SP ignores you when you are in foliage (even when not cloaked). So it certainly knows how to do that.
This sounds kind of like bringing it back
No, ghost bug is clearly a bug. This one is perfectly defined behavior:
void OnUpdate() {
for(player : players) {
if(player->GetNanosuitMode() == CLOAK) {
if(GetDistance(me, player) > 30.0f && InFoliage(player)) {
player->Hide();
} else {
player->Show();
}
}
}
}
Simple as that. Anyways, consider this as a discussion, maybe you have better ideas how to add more meaning to the cloak mode when playing against humans.
I recomend to change The cloak render( making IT a Little bit like wars) but when The cloaked player is affected by artificial light, it should be seen by other playere. This solution ĂŽs for multiplayer.