AscensionGameDev / Intersect-Engine

Intersect provides a complete game development suite for creating 2d mmorpgs with no programming experience required!
https://www.freemmorpgmaker.com/
Other
223 stars 360 forks source link

Client/Editor triggering speedhacking protection during normal use #353

Closed WeylonSantana closed 4 years ago

WeylonSantana commented 4 years ago

Describe the bug I upgraded to version 0.6.2.439 and so any character in my game, new or old, doesn't walk. They are always teleported to where they were.

I know it's not a common event (because I have several) for 2 reasons: 1 - I turned them off, to see if it was up to them. 2 - Events teleport to a specific place, I used shift + right click to teleport, and this new location becomes the place where I cannot leave.

The customer log adds a new line to each attempt to walk the game, which consists of "received epp: 2100641", I don't know if it affects anything.

In the second video, I asked a friend of mine to join the game and for him to try to walk, the same thing happens. In my view, the character remains stationary, but he is there, walking and returning to the same place.

Remember that this is for an online server. Accessed via public ip and not locally. I can't say if it has to do with the internet, but when the internet here is slow, messages sent by chat take time to appear in the game, I sent messages and everything was ok.

Version Encountered 0.6.2.439

To Reproduce Steps to reproduce the behavior: walk

Expected behavior walk

Screenshots Video 1 Video 2

Logs logs.zip

Operating System: Windows

Cheshire92 commented 4 years ago

There's some new packet options regarding latency and accepted delays, could you try raising these values and starting the server again to see if this makes a difference?

The netcode regarding movement changed a fair bit to try and stop invalid packet delays and speedhacking. Maybe these default values are stopping you?

jcsnider commented 4 years ago

Please send us server logs.

WeylonSantana commented 4 years ago

error.zip

jcsnider commented 4 years ago

Added more logging. Please try 0.6.2.440 and give us server logs when that one breaks. @WeylonSantana

440 is building now and will be available in a moment.

WeylonSantana commented 4 years ago

logs.zip @jcsnider

jcsnider commented 4 years ago

@WeylonSantana can you please try this build for me and let me know if the same error occurs? https://www.ascensiongamedev.com/resources/filehost/d8554892e06f466d9ab0d1f8f554ef61.zip

WeylonSantana commented 4 years ago

@jcsnider Should I replace the files as if it were an update patch?

jcsnider commented 4 years ago

Yes

WeylonSantana commented 4 years ago

Okay, I'll answer you in a few minutes. If the same error occurs, will you want to log again?

WeylonSantana commented 4 years ago

@jcsnider I'm sorry for the delay, I had problems with the server, part of the night. So, there it is. I cannot say that the problem is 100% solved, but it is 99%. Every time I start with the character only in the first step, I return back, as has happened, but after the first step, I can walk in the game normally, leave and enter the game a few times and every time only the first step happens. to return back, it is almost imperceptible.

logs (1).zip

jcsnider commented 4 years ago

Thanks Weylon. I saw that a few times in my testing and thought I had it resolved. At least we're close.

I will fix that tomorrow and we can wrap this one up.

WeylonSantana commented 4 years ago

Okay then. Thanks for your time and attention to this.

jcsnider commented 4 years ago

@WeylonSantana can you try this build for me?

When your character stutters on the first step can you send me whatever is logged in the server console? https://www.ascensiongamedev.com/resources/filehost/532108d51c9c9ca670ec313e6c5d192d.zip

WeylonSantana commented 4 years ago

@jcsnider here's what we got I would like to make a special comment: I tested walking and attacking simultaneously, and I tested gaining levels and walking simultaneously. He is retreating as he walks to the end of the attack sprite, or the level up message goes away, trying to force the player to retreat. I do not know if you came to testing, but happened to me, but no log is generated. Only on the first step does a message appear on the server and log.

logs.zip

jcsnider commented 4 years ago

@WeylonSantana can you try this build and tell me if it's better?

https://www.ascensiongamedev.com/resources/filehost/d7820eceda32863fb547e19aa5be3d83.zip

WeylonSantana commented 4 years ago

This latest version that you sent is much better. The error in the first step still happens, but not always. I logged in about 5 times and it happened 2 times. My ping was at 93 (if that information is relevant). The same is true for my friend (whose ping was around 45), the first step error happened with the first log in, but when he left and logged in again it didn't happen anymore. He made 3 attempts.

There is something relevant about attacking and walking as I mentioned. In the view of those who attack and walk: the client or server is forcing him to go back, but nothing appears on the server side. In the view of a third observer: the player attacks, remains stationary while the animation of the attack occurs, and then walks again. In the video you will see these two perspectives.

edit: I don't know if all this has to do, but the player is no longer able to carry out any attack on npc or another player. If you make attacks, in your view you are attacking, but in someone else's view you are standing still, no damage is taken from the npc or another player, even if equipped with weapons or accessories.

https://www.ascensiongamedev.com/resources/filehost/9eb476decfcece5d6d9ff7af2a7cb179.mp4

Finally, when opening the client, the server reports the same error with a final "client.pingpacket" different from "client.movepacket"

Attached: video + log.

logs.zip https://www.ascensiongamedev.com/resources/filehost/a797c11b9af49d24fc0e514c5f5a6eae.mp4

jcsnider commented 4 years ago

So it seems as if the client has always allowed the player to move while in an attack timer.. so I fixed that, but the default values might need some tweaking lol.

I think I fixed the stutter step at login maybe. Can you check this one out? https://www.ascensiongamedev.com/resources/filehost/0445cc00d2931c32be5fe6e9e6dc2c37.zip

WeylonSantana commented 4 years ago

@jcsnider Sorry for the delay.

In my report for that version you sent it is:

For me, it's much better, it's getting better and better, I tested it 6 times, closing and opening the client every time and only once did the bug in the first step happen. At other times it happened to return back (sending debug on the server), but it didn't happen very often, it is more and more rare, I walked large amounts of maps.

For my friend (who has better internet than mine), the first step bug also happened 1 time, and not often happened to return back while walking.

We are not yet able to attack the npcs in the game with normal or armed attack, or each other (maybe all entities?).

The server always appears debug with ending "Packet [Intersect.Network.Packets.Client.PingPacket]" when we open the client.

For this version I have only 2 special notes to comment. 1 - The client generated a "silent error" in one of the tests, generated an error log, but nothing happened in the game, I was able to walk and talk in the game normally, but the error is there. 2 - The server crashed at some point, I don't remember which one, the log is together [[Error] Received unhandled exception from Thread Pool Worker], you'll see.

but the default values might need some tweaking

I agree with you. I liked to stop when attacking, but I believe that many people will not.

Attached: my client's logs (so you can see if the "silent error" interferes with something). And the server's (the image shows the point where it crashed)

logs client.zip logs server.zip

jcsnider commented 4 years ago

@WeylonSantana how about this one? https://www.ascensiongamedev.com/resources/filehost/28eb28e66c014fb45858c30e89c360e6.zip

WeylonSantana commented 4 years ago

@jcsnider this time it got much worse. I have no words to explain the situation why I didn't understand what happened or what was happening, so I recorded my screen and asked my friend to record his screen.

my screen: https://www.ascensiongamedev.com/resources/filehost/ae808cf3ade8b66375a48e6e8fcfd0e3.mp4 his screen: https://www.ascensiongamedev.com/resources/filehost/1a3575e38dee55db64a01fa19353e928.mp4

logs: logs.zip

From what I understand, there is no bug in the first step, but we are not walking in the game, I do not see him walking and he does not see me walking, and in our clients we have the illusion of walking. Events that teleport what is played in touch do not work. (like the one in the house), maybe because the server doesn't recognize that we are there. attacking monsters still doesn't work.

jcsnider commented 4 years ago

@WeylonSantana got a few lines of code out of order. Here's another if you don't mind giving it a try: https://www.ascensiongamedev.com/resources/filehost/1c6d06906ff7e667d2257c9e320a857c.zip

WeylonSantana commented 4 years ago

@jcsnider this version is 99% ok. There are only 2 current problems. I believe there are two small problems.

1 - Remember the setback when taking the first step? Well, it still happens, but it happens only on a very specific occasion: when opening the client. When the client is opened, when logging in, in the first step there is a step back to the place where it was originally. After that, there are no setbacks, even logging out and logging in several times. But always, when opening the client and logging in for the first time, the first step goes backwards and it is almost impeccable. 2 - I can attack monsters again, they recognize my place in the world and attacking them works again. However, for every 10 consecutive uninterrupted attacks (approximately), one attack does not work (the damage does not appear or decreases the monster's health). This is approximately the chance that the attacks are failing, 1 attack fails every 10 consecutive attacks.

ps: This version is so good that currently (during this week), I will be on a network where the connection is slower, and this report above was using this current connection.

I am giving my report now, because I have no access to the server logs, I will only have it at night or maybe tomorrow.

WeylonSantana commented 4 years ago

logs.zip

Server logs

jcsnider commented 4 years ago

@WeylonSantana see how 0.6.2.445 works for ya: https://www.ascensiongamedev.com/topic/4232-prerelease-builds/?do=findComment&comment=48738

WeylonSantana commented 4 years ago

@jcsnider I really liked this version. I am going to give two opinions at this point. 1 - For me, speaking for myself, the bug is 100% fixed. This is the point. It's okay with me. I tried to walk in several places, there was barely even a setback and if there was one I didn't notice. No attacks were lost, I killed several npcs and all attacks resulted in damage and the monster's health decreased. Yes, everything is 100% ok for me.

2 - Now judge for yourself: a - As I told you, the attack bug is 100% fixed and that is a fact. But as for walking, I realized the following: Try to log into the game, after loading the map (around 5-10 seconds), walk. You will notice that everything is normal. Do this several times.

b - Try to log into the game again, several times, and before any map is loaded starts to move (while the screen is still black), the server will force the player to stay at the point of origin until the maps are 100% loaded (after 5-10 seconds). Only then does he walk normally in the game.

I'm sending a video for you to analyze. https://www.ascensiongamedev.com/resources/filehost/e30afce1acc3c1094f47198d9fc5516b.mp4 In the log in at 00:08 and 00:32 of the video, I wait to load the map within the time I mentioned. Everything happens normal. At 00:50 in the video you will notice that it happens again (in my opinion the map was being loaded or screen been recorded). At the log in at 01:15 and 01:35 of the video I am holding the walking button while on the black screen. At 2:00 in the video I wait again to test if the theory is still right. 2:20 happens the same as in 00:50. At the end of the video, the client closes because of that "queue empty" error that I reported once here. (edit: this packet drop happens much more often when I'm recording the screen, without recording, everything seems normal, except in the situation above that I mentioned)

Everything I explained above, for me is normal, since always when I make Heroes, there were always these little chokes when loading the map and it was something that never bothered me. Maybe it's even because of my machine that it's not powerful. So in my opinion it is 100% and you can close the bug. But this is something that you decide.

jcsnider commented 4 years ago

Just released one more update to this which is in 0.6.2.447. Might not be absolutely perfect but it should be close. Gonna close this chain for now. If we have a lot of unacceptable stutters we can do more checks on login to make sure times are synced up before showing the world or something.