Jump to content
Talyarin

Cancelling animation

Recommended Posts

Hiya! I've no clue where to put this, since I'm not sure how big or important it is. I will also point out that I have searched this forum for about 20 minutes, coming up fruitless on whether somebody already asked about this, so if it has already come up, sorry.

It's just very frustrating to die while executing an animation, especially if it's because some person turns a corner the very second you've executed the animation (either opening a door, unlocking a door, opening a wooden container, etc). Is cancelling animation something that should be implemented? I'm not asking for full control of the gun or something, just asking for the ability to search for cover during the very unfortunate event of a random scav/player turning a corner that is 20 metres away... At least put a buffer on the character to be unable to shoot while they're running away from a cancelled animation.

Yes? No? Pointless?

  • Like 2

Share this post


Link to post
Share on other sites

They are waiting to start to open a door then they make the move on you. They should do something about this ... canceling animation at a click of a mouse or key from keyboard.

Share this post


Link to post
Share on other sites

Breachable doors you can sprint into = Pure badass-ery lol

running into doors would be good to have, but obviously for ones that are push doors lol

Share this post


Link to post
Share on other sites

With the doors it might be a networking replication problem. I don't know for sure, but it's possible, that door states are stored on the server as a bool - opened, or closed. In short, they can't be 'partly opened'.

This creates a problem: if you let players interrupt animations, they will quickly figure out where the 'trigger' is, as in 'how long do I need to wait before cancelling and still open the door?'. Since the door can only be 'opened' or 'closed' on the server, there will be a point at which the value changes.

This would be greatly influenced by ping, too, so sometimes it won't be reliable, but for the most part you could figure it out in a way that makes everyone just skipping the animation.

You could counteract that by only switching the value when the animation is complete, but that would result in a lot of bug reports of "I opened a door and it closed on me", or even worse: "I opened a door and can't go through!" if the server doesn't check the door state constantly (which you don't want to do for networking performance reasons).

Edit: Clarification, in the second example (door opened, but you can't go through), your client thinks it opened the door, but the server didn't catch that due to desync, so on the server the door is closed, and since your client thinks the door is open, so you don't have the prompt to open them. You could probably fix this by 'closing' them and opening again, but that's not ideal.

Edited by lordzelmer
Added clarification

Share this post


Link to post
Share on other sites
22 hours ago, lordzelmer said:

With the doors it might be a networking replication problem. I don't know for sure, but it's possible, that door states are stored on the server as a bool - opened, or closed. In short, they can't be 'partly opened'.

That is honestly quite genuinely a really fascinating explanation and it really makes sense. 

A minor issue, though, is that I think already, due to desync/connection issues, doors are occasionally "Partly opened", that is to say on your client the door is open, but on the server it's not. Usually a side effect of that is your character being unable to use anything, since the server claims you're still trying to unlock a door, but your client is claiming the door is already unlocked.

On the locked door on third floor of Factory I was trapped in that state of immobility, where I could move into the room, but my arms were absolutely useless. I panicked, since I literally couldn't defend myself at that point, so I forcibly closed the game, and reloaded everything. Because the client claims I was inside the locked room by the time I forcibly closed the game, the server seemingly responded with "I mean, there's no logical flaw in that, let's put her inside the locked room", but I noticed that when I approached the locked door, it was still locked.

22 hours ago, lordzelmer said:

This creates a problem: if you let players interrupt animations, they will quickly figure out where the 'trigger' is, as in 'how long do I need to wait before cancelling and still open the door?'. Since the door can only be 'opened' or 'closed' on the server, there will be a point at which the value changes.

I absolutely agree, that is an issue that could be game-changing. I kinda compensated for that by saying you couldn't use your guns while cancelling an animation, that is to say put a little cooldown on actions after cancelling, but that's a minor fix considering if you're in a group - and who are we kidding, you most likely are if you want to survive - a teammate can immediately approach the door and unlock it. 

That, and what you mentioned yourself about connection issues around unlocked doors randomly closing in your face, but I would say, doesn't that issue already exist on the underground section's locked extract door on Factory? There's this little invisible wall that makes it hard to enter/exit the extract section, which has got me killed beforehand by someone hurling a grenade at me while they were extracting, and I was stuck on that invisible wall trying to run for cover.... Whether it's due to a misplaced invisible wall or connection issue I'm not sure.

  • Like 1

Share this post


Link to post
Share on other sites
14 hours ago, Talyarin said:

On the locked door on third floor of Factory I was trapped in that state of immobility, where I could move into the room, but my arms were absolutely useless. I panicked, since I literally couldn't defend myself at that point, so I forcibly closed the game, and reloaded everything. Because the client claims I was inside the locked room by the time I forcibly closed the game, the server seemingly responded with "I mean, there's no logical flaw in that, let's put her inside the locked room", but I noticed that when I approached the locked door, it was still locked.

Yeah, that seems to be consistent with how I think it works. Due to miscommunication, your client thought the door were opened, but it didn't reach the server. I don't know if 'use' prompts are sent by the server or are wholly on the client side, but I think they are client-side, makes more sense.

The immobility state seems to indicate that: player character is switching between states while playing, and if an action is executed (like opening doors), it would wait on the server response to stop opening and resume normal operation. If the server didn't get the action request, it couldn't send back the message to switch back to 'normal' state, thus making your character unusable.

The funny part is, that reconnecting is the best thing to do - server needs to send ALL the data back to you about your player, so the states get reset and you can resume playing.

This could be mitigated by checking periodically, but it makes for a really spaghettified code, less performance and bigger cost, and barring extreme circumstances, shouldn't be needed.

15 hours ago, Talyarin said:

I absolutely agree, that is an issue that could be game-changing. I kinda compensated for that by saying you couldn't use your guns while cancelling an animation, that is to say put a little cooldown on actions after cancelling, but that's a minor fix considering if you're in a group - and who are we kidding, you most likely are if you want to survive - a teammate can immediately approach the door and unlock it. 

Pretty much, yeah.

15 hours ago, Talyarin said:

That, and what you mentioned yourself about connection issues around unlocked doors randomly closing in your face, but I would say, doesn't that issue already exist on the underground section's locked extract door on Factory? There's this little invisible wall that makes it hard to enter/exit the extract section, which has got me killed beforehand by someone hurling a grenade at me while they were extracting, and I was stuck on that invisible wall trying to run for cover.... Whether it's due to a misplaced invisible wall or connection issue I'm not sure.

I think door collisions are overall not very well polished, there are multiple doorways on Customs that you can't go through crouched at all. It seems more like a collision problem rather than networking.

I think that, because player movement is (most likely) on the client side. Server just checks if it makes sense. So, if, for some reason, your client didn't load walls, you could walk through most of them without problem (that's how hacking works, by removing or changing things on the client side). If it was done in a 'safe' way, you would have a delay between your key press and your character moving (equal to your ping). Same would be for shooting, and believe me, it's horribly unresponsive to do it this way, even on low (<50ms) ping.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×