Jump to content

Problems with Server Saves (notification would prevent)


GreenRoc

Recommended Posts

Problems with Server Saves (notification would prevent)

Foreword: This is my personal experience, a story, not an expectation for change. Just something to put some ideas into the devs minds to maybe *maybe* encourage them make productive choices (or not) as I leave my thoughts here on how I feel about how it is, and how I feel it could be better. Thanks.


Usually when the Official server saves, I deal with what happens.

But today, the official pve Pc server I play on saved around 9:54am Pacific time on december 8th 2019 caused me more of an issue than usual. Before I knew the server was saving, I moved a little to the right, left-clicked to toss out an adolescent mammoth from a cryopod, and the pod clinked on the metal ceiling pieces, but nothing was summoned, and the pod still in my hand, with the mammoth dna still showing.

another save, I thought to myself, nothing new.

But this time, instead of the tame being summoned where I wanted it, it was summoned somewhere else. while the server registered that I left-clicked during the save, the server did not register that I moved three ceiling pieces to the right. My mammoth placed almost on top of my tribemate, instead of three metal ceiling tiles to the right

I will have to recryo it to get it back into the position I wanted the mammoth at, because of the inability to ride an adolescent.

Currently typing this post while I wait for the cryosickness timer to run out, and also for the purpose of pointing out one of the many problems that come during the server save, where actions will register in the server (left-click with cryopod in hand) and some will not (strafing to the right across three metal ceiling pieces).

It is clear to me that, while my movement happened first, and the click happened after, the movement was not registered in the server, but my click was. This is so inconsistent, and has been a very minor issue (like a fly ticking me) for years.

 

There's so many different ways I can imagine this issue being avoided.
- Freeze in game action completely. Animations and player movements shoudnt happen, shouldnt be seen, a frozen scene, like the moment before meteors fall on Extinction servers.

- a text notification. Like Minecraft does.

- Register every player action during the save, or none at all.

 

My apologies if you are on mobile. It is a struggle for me to shorten my posts. I would give your finger a kiss and hug, but then, that might just make this post more awkward.

I hope that made you smile. Thanks for reading/scrolling.

 

Link to comment
Share on other sites

  • Volunteer Moderator
15 minutes ago, GreenRoc said:

It is clear to me that, while my movement happened first, and the click happened after, the movement was not registered in the server, but my click was. This is so inconsistent

Your click was not registered server-side (yet). Basically, your client predicted the move and queued an action to be networked to the server, which then rejected the move because it was unable to validate it at that time so it forced your client to put you back where you should have been and then was able to validate your action to deploy your creature when it handled the queue. Client predictions are fundamental for online games where multiple clients must keep synced with the server, and what you describe in that thread is unfortunately very common in every games I ever played.

Link to comment
Share on other sites

But server often allows impossible actions. 

I move closer to dino, open inventory and it freezes. Server save. I put stuff to dino inventory and close it. I see that my character was moved back to position from which I started moving and now it is impossible to enter dino inventory because I'm too far.

 

Oh and I still don't understand why it wasn't able to validate movement in OP's example, but allowed throwing. Shouldn't same reason that prevented movement from validating also invalidate throwing action? Imho it should queue client predictions and validate it when server finished saving (and in the same order) or drop whole prediction sequence.

Link to comment
Share on other sites

40 minutes ago, deedoubleu said:

Shouldn't same reason that prevented movement from validating also invalidate throwing action?

I agree, and partly my point. I wish it didnt validate my throwing action if it wont validate my moving before my throw.

 

1 hour ago, invincibleqc said:

and what you describe in that thread is unfortunately very common in every games I ever played.

Your post makes a lot of sense. I'm not familiar withother games that have this.
This is the only game I am familiar with where I am seeing stuff move during saves. Animations still flowing is very confusing, so many think it is lag, not server saving. But maybe Minecraft is the only one I know of that also does this, but minecraft usually modded, will show some text in chat when it is making a backup of the server.

I can imagine an option to make the animations freeze (like the freeze on Extinction that happens when the meteor shower is beginning), but I dont understand why not.

I feel it would be nice to have an option to have a display of the countdown timer before the save as an optional interface piece, much like the FPS display.
But then again, cheaters might abuse the ever living heck out of that info. Or at minimum, an option for a little bit of text, or even like a colored icon to show up to show the server is actually saving, so that way, when I move, and if I saw that notification, I would not have thrown my pod out.

I guess this is a case of the lesser of two evils... Animation freeze would be a nice indicator imo, and/or some kinda icon. I wish I could have some kinda visual, but idk how practical that is.

I appreciate the feedback. I learned something new. Thx.

 

Edit to Add:
I almost lost a Wyvern once because of this mix of validated and invalidated predictions. It failed to validate where I was, but did validate my action to land.

The fall almost killed my Wyvern. It took a while for him to heal up from that too. I had to use another Wyvern in the meantime, having to fly back home so I can go out and kill more turkeys. This is a mild problem because a large chunk of my time was wasted because of that. Having an indicator of the server saving would have prevented that wasted time.

Link to comment
Share on other sites

  • Volunteer Moderator
2 hours ago, deedoubleu said:

Oh and I still don't understand why it wasn't able to validate movement in OP's example

Because movements are more restrictive by nature to prevent cheating. Clients usually request a move every tick, but are dropped if the server was unable to handle that request in time. So, when the server lags during a save, it results into a lot of packet losses and by the time it catches up, it determines that you cannot move from your last validated point to where you are requesting to move and throw you back to your starting point (often referred as rubber-banding), etc. Of course, there is a lot more conditions that have to be met, but such concepts are pretty much the basics when it comes to prevent movement cheats such as teleport/speed hacks and whatnot in multiplayer games. If the server was just doing everything the clients tell it to do at any given time, there will be a lot more cheating around.

1 hour ago, GreenRoc said:

(like the freeze on Extinction that happens when the meteor shower is beginning)

Not sure what you are referring to here, but I assume you are talking about your screen freezing? I guess this is pretty much the same as when it freeze when you enter a cave.

Link to comment
Share on other sites

4 minutes ago, invincibleqc said:

Because movements are more restrictive by nature to prevent cheating. Clients usually request a move every tick, but are dropped if the server was unable to handle that request in time. So, when the server lags during a save, it results into a lot of packet losses and by the time it catches up, it determines that you cannot move from your last validated point to where you are requesting to move and throw you back to your starting point (often referred as rubber-banding), etc. Of course, there is a lot more conditions that have to be met, but such concepts are pretty much the basics when it comes to prevent movement cheats such as teleport/speed hacks and whatnot in multiplayer games. If the server was just doing everything the clients tell it to do at any given time, there will be a lot more cheating around.

What bothers me is inconsistency. Player movement is highly restrictive so you will always (or most of the times) get teleported back to where you was when save started, right? But when I'm flying on owl and server save starts I can disregard it even when I notice flying fish around me and when server save ends owl's position will be extrapolated and it gets teleported forward. 

Of course server doesn't have to do everything client tells it to, it should do proper backward reconciliation instead. Though I don't think it's possible with ark and how "heavy" world is. So I'm convinced ignoring actions-happened-during-save completely instead of selectively would be better. Not only allowing just half of your actions to happen will result in undesired mess 99.9% of the time, but would be even more cheat/hack/exploit proof. 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...