ddnet
ddnet copied to clipboard
Decouple ninja skin from frozen states, and add options for freeze/deep freeze skins
I know cl_show_ninja exists, but we should offer more settings, since we are already adding settings for aspects of the client that have not changed for a long time. Here's some suggestions:
cl_freeze_skinfor using a skin other than x_ninja to show frozen tees- An option to show a tee's original skin while frozen, like
cl_show_freeze_skin 0(this could cause confusion with live freeze states, but could be disambiguated with settings likecl_live_freeze_skinandcl_show_live_freeze_skin). - The ability to use a separate skin for deep freeze (
cl_deep_freeze_skinandcl_show_deep_freeze_skinrespectively)
Ninja would still show as x_ninja, unaffected by these settings. We could go further by adding a skin setting to match the others, like cl_ninja_skin, but I think this setting is unnecessary since players are already acquainted with changing the x_ninja skin themselves.
Adding more settings and complicating the code is not worth, you can just change the .png files.
@edg-l still does not acknowledge that the freeze skin and ninja skin are not interchangeable and there's no option for deep freeze, I don't see it as being "worth it" or not, just a completely different change than what you're suggesting
I think deep freeze skin is a good idea, it feels like a very unintuitive mechanic with how small a visual difference there is. I think if we want to minimize additional configs we could just implement a separate freeze,deep freeze, and live freeze skin then let users change the .png files, but add cl_deep_freeze_skin and cl_live_freeze_skin which work the same as cl_freeze_skin does now.
Instead, we could try to come up with a better graphic for freezing a tee (and deep and perhaps live freezing it). The current graphic is unintuitive for newcomers. This could be seen when watching and talking to new players playing the tutorial.
There's probably even an issue about it already.
This still does not address the fact that despite how many things are being made accessible from the console, we still have these random reservations about manually changing filenames (change sounds, change x_ninja, change editor entities) and it does not make much sense to me. Even if we do add deep_freeze.png or something like this they still will not be able to change it in game, which is essentially half of this issue description. If we require splitting the two ideas into separate issues we can, but I'm mainly just lost (we already have player_skin and dummy_skin client-accessible)
What do you mean with, you are not able to change it in game. You can change it in your user config directory, should be enough for a change that you do once. An Assets tab would be cool, but is a lot of work currently, (the code needs to be refactored to make it easier to add a new tab). Also an Assets tab for sounds will maybe come, there is an Issue open for it.
Currently we have no own graphics for freezed players (nore special handeling, the server sends that the tee is a ninja thats it... nothing more, additionaly the server ignores inputs). Thats why a setting for a freezed skin is useless. We first must build and agree on a new form of how freezed players are displayed, and then we can think about customization options.
Sorry, a couple years late in responding to this 😅
@C0D3D3V You have a great point there in the last paragraph. I'm renaming this since I was naive in assuming it was possible client-side. Of course, care would need to be taken to provide x_ninja.png for older clients that expect it and cl_freeze_skin / cl_deep_freeze_skin / cl_live_freeze_skin settings otherwise. Expected behavior includes fallback to cl_freeze_skin if cl_deep_freeze_skin is 0 and fallback to x_ninja.png if both are 0. Default values would depend on community preference for deep freeze. I think live freeze is already represented well enough since it's already apparent that they cannot move and the particles show, so default value should be 0