Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extrapolationless server #1479

Open
snapoli10 opened this issue Oct 12, 2021 · 6 comments
Open

Extrapolationless server #1479

snapoli10 opened this issue Oct 12, 2021 · 6 comments

Comments

@snapoli10
Copy link

Is it possible to detect players' extrapolation in a VPS server? I literally don't know anything about how to create and manage one, but if it was possible to do that, I would give my best to try.
My goal would be to forbid extrapolation in the server, either players' extra value gets set to 0 automatically, or if a higher value is present, a kick occurs. I've heard somewhere that it may not be impossible and it would be similar to how the kickrate limit works. Another hypothesis was that if players' extra value was different from the host's game-min.js, a desync would occur, or something along those lines.
I know it is still hackable by hardcoding via custom js, but at least not many know how to do it yet.
Please, for the sake of old times, fun, and a fairer game, we must find a way to forbid this cancerous command...

@Obsesiff66
Copy link

50 percent of Haxball players are toxic and 50 are normal players.50 percent of the players who play normally, 30 percent use less or more extrapolation, this feature provides a strange advantage to those who use it.I don't think you can remove this code, the game won't let you do something like this.If you remove 30 percent of them already actively using it, your room will not be full.Because you already get used to the extra after a certain limit and you can't do without it, you play very badly when you turn it off, you can't get used to the mechanics.I would say you can write to Basro, but writing does not bring much results.I'm really trying to remember what it was like before using extras in Haxball but I can't think of anything, extrapolation became so popular after a while that it was very difficult, very difficult to steal in the opponent's penalty area. now to steal, pretend to hit and the goalkeeper lies on his side.And the goal.As I said, if you can do it, it's a great success, but someone must hold your hand.It's like something magical I've even been against shutting down as it was a part of HaxbalI think you can do the things you dream of, be easy in your work, this is my opinion. By!

@snapoli10
Copy link
Author

50 percent of Haxball players are toxic and 50 are normal players.50 percent of the players who play normally, 30 percent use less or more extrapolation, this feature provides a strange advantage to those who use it.I don't think you can remove this code, the game won't let you do something like this.If you remove 30 percent of them already actively using it, your room will not be full.Because you already get used to the extra after a certain limit and you can't do without it, you play very badly when you turn it off, you can't get used to the mechanics.I would say you can write to Basro, but writing does not bring much results.I'm really trying to remember what it was like before using extras in Haxball but I can't think of anything, extrapolation became so popular after a while that it was very difficult, very difficult to steal in the opponent's penalty area. now to steal, pretend to hit and the goalkeeper lies on his side.And the goal.As I said, if you can do it, it's a great success, but someone must hold your hand.It's like something magical I've even been against shutting down as it was a part of HaxbalI think you can do the things you dream of, be easy in your work, this is my opinion. By!

Thank you for being the only one to care at least one bit to leave a reply.
I have been trying to fight this extrapolation issue for a very long time, but no one really cares, because as you said, a big part of this toxic community now plays with this cheat and likes it. Their excuse is that this command does not make you stronger, does not gives you advantages, and is a legal command. But they talk without knowing the real story.
This command was not created to be exploited by people to become fake pros but as a cure to input lag, which I even doubt it is. Soon people realized how op this command was, with the possibility to see many more ms in the future than needed (up to 200... why that much?), which allows you to predict the ball direction and win contrasts more easily. Moreover, the possibility to perform easier and 100% accurate rockets every time, at an unnatural speed, and to stay in the corner for a long time performing your fake trickies. And much more. Is this HaxBall?
By that time, unfortunately, it was already too late. We witnessed the injustice of noobs becoming fake pros and beating players with several years of experience, everything changed in so little time. No one complains anymore, and as soon as beginners discover this command, they start using it too.
I have known this game for 9 years, I think I have some rights to be annoyed by being destroyed by some idiots that would be utter noobs with extrapolation 0.
The Flash era was a paradise compared to this. Yes, there was (and still is) macro, but macro can be somewhat easily contrasted by experienced players, and let's be honest, it's not that useful at high levels. Especially now, with the kick rate limit. But the gameplay was really different. It was certainly not this cumbersome. People were more creative, tried to rely more on passing and teamwork, which is the real point of this game. It was very, very hard to build some serious skills, master rockets, fakes and every small finesse of the game mechanics.
As you said, trying to contact Basro is useless: the only thing he keeps saying is that the only way to revert this is with a time machine because even a potential fix could be easily exploited. But he is to blame because when he realized that this command was being misused and tried to limit the maximum to 50, fake pros went cry to him because they were being forced to show the world how noobs they really were, and he was a coward and set the limit back to 200 again.
I do not care if my room would not have many players, I just want to create a little corner of paradise, for old players that once abandoned this game because of this nightmare, and for fair players that don't want to make their game laggy and shaky and unenjoyable just because they can't compete otherwise.
I very much doubt I will be able to make it, but I'm currently trying to experiment with some headless host Javascript settings. Let's see what I can find.
Thank you for taking the time to read this, I hope I am not alone in feeling this way. Just know that any help would be very much appreciated.

@snapoli10
Copy link
Author

snapoli10 commented Oct 14, 2021

As expected, I concluded that it seems impossible to forbid extrapolation, even by hardcoding.
However, I did discover that the headless host API includes a "setPlayerAvatar" function, which allows overriding what would be a personal setting (made with /avatar). I tried very hard to understand how this function behaves and how it concretely changes the avatar but wasn't able to solve it.
So, in the end, I'm going to kindly ask @basro: is it not possible to add a "setPlayerExtrapolation()" function to the headless host API, in order to directly set the player extrapolation value to 0, to be used either onGameTick or on a specific interval? This way, the need for a check on the (potentially hardcoded) user's value would disappear.
It may not be of much use, but it is the only thing left to be in complete control of all the game functionalities. And who is this function going to harm, after all? Hosts can still decide whether or not to use it, and I'm pretty sure I'd be the only one to use it anyway. Not to mention it would finally end the debate on this matter.

@snapoli10
Copy link
Author

Up.
@basro This simple API function could solve one of the game's major problems, please consider it.

@saviola777
Copy link

It's a client-side feature, it cannot be set with the headless host API. As has been said in several extrapolation issues before. The avatar is sent to the host and shared with other players, that's why it's possible to set it in the API.

But it would be simple to change the client to display a different avatar. And in the same way, it would be simple to override an extrapolation value set by the host.

The only way to remove extrapolation is by inventing a time machine and preventing it being added in the first place. :D Sadly we're stuck on the extrapolation timeline.

@snapoli10
Copy link
Author

snapoli10 commented Oct 17, 2021

It's a client-side feature, it cannot be set with the headless host API. As has been said in several extrapolation issues before. The avatar is sent to the host and shared with other players, that's why it's possible to set it in the API.

But it would be simple to change the client to display a different avatar. And in the same way, it would be simple to override an extrapolation value set by the host.

The only way to remove extrapolation is by inventing a time machine and preventing it being added in the first place. :D Sadly we're stuck on the extrapolation timeline.

Hello, thank you for the reply and apologies for my little knowledge on the matter.
Someone mentioned that it would be fast and easy making a dedicated Electron app for the game, to solve input lag problems and the need for extrapolation. Would there be any problem with that?
I have another question, it just came to me. These may sound like shallow ideas, but anything is worth a try at this point, one of them might end up being useful. How about implementing a native room command, one that can only be used by admins or the room founder, which allows to enable/disable the extrapolation functionality for that room only? Meaning that the extrapolation command won't work anymore in that room, and is treated like 0 by default. For example: /extrapolation_on /extrapolation_off
@basro @saviola777

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants