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

Remove "weak" hook #2148

Closed
wants to merge 1 commit into from
Closed

Remove "weak" hook #2148

wants to merge 1 commit into from

Conversation

ftk
Copy link

@ftk ftk commented Jun 6, 2019

This fixes #541
Depending on the order of character spawn, players have stronger or weaker hook on each others.
The reason is that velocity calculation of characters is order dependent:
Example: player a has spawned before player b and b is hooking a:
a.vel *= friction
...
b.vel *= friction
b.vel += hookforce
a.vel += hookforce

b has spawned before a:
b.vel *= friction
b.vel += hookforce
a.vel += hookforce
...
a.vel *= friction

@ChillerDragon
Copy link
Contributor

I know it is clearly a bug.
But... can we please keep it? :)
Imo it is a nice feature to boost players that survived longer a little bit by giving them a slightly stronger hook.

@fokkonaut
Copy link
Contributor

For ctf this isnt even noticeable chiller

@notiv-nt
Copy link

awful for ddrace,
Should be optional

@heinrich5991
Copy link
Contributor

This doesn't fix the issue completely, it just makes its impact lower. The order of players still matters with this, because SaturatedAdd is not commutative. If you want to fix the problem, you first have to sum up all the speed deltas acquired in the tick (which is commutative) and then cap the speed with SaturatedAdd.

@ChillerDragon
Copy link
Contributor

@notiv-nt I don't think making it optional is the way to go. I like that teeworlds physics are pretty consistent even over mods. And introducing such a config in vanilla seems wrong. As @fokkonaut said it is barley noticeable in vanilla and even if it can be seen as feature.

@Dune-jr
Copy link
Member

Dune-jr commented Jun 23, 2019

Most physics were designed to be tuneable.

@ChillerDragon
Copy link
Contributor

@Dune-jr yes a tune would be fine. But tunes are not normal configs. They only work on modded servers. Im not sure how this fix could be implemented as a tune. But imo adding it as a normal config results in more harm than value.

@Dune-jr
Copy link
Member

Dune-jr commented Jun 24, 2019

I mean, I don't think this is a controversial setting in vanilla, mods can set tunings however they want so where is the problem?

@ChillerDragon
Copy link
Contributor

@Dune-jr the nice thing about teeworlds is that the core physics are perfect. And they work well unchanged in all kinds of modifications. So if a player knows how to play the game he can easily switch between gametypes. It just feels good/right to have them the same. It holds this small communitys together. It is nice to trains specific skills in modifications and use them in vanilla for example. And since decades of ddrace maps depend on this "bug" the most popular modification is forced to reimplement that and thus would differ from vanilla. Which is sad.

Plus I never saw anyone complaining about it in vanilla. So why change it?

@notiv-nt
Copy link

notiv-nt commented Jun 24, 2019

Because there is no an explanation for this feature?, and the reasons why it exists at all

Depending on the order of character spawn

Rly? it depends on the order of user spawn? Even with a difference in 1ms?

it is a nice feature to boost players that survived longer a little bit by giving them a slightly stronger hook

in the context of dm and ctf its ok, but what about ddrace? No one plays it?
in teeworlds, ddrace has been around for a long time and most of them play on it, so you can take it as default gametype, so: I just want to go through the map, give me a normal hook, why do I have it worse than others? What is the reason then?

Do I need to create this issue in every mod in which it is not needed?

@ChillerDragon
Copy link
Contributor

@notiv-nt

in the context of dm and ctf its ok

Nice to see that you agree on that point.

Rly? it depends on the order of user spawn? Even with a difference in 1ms?

I don't get the "1ms" part. Everything in teeworlds depends on difference in time intervals of ticks. It makes sense that only one tee wins the game if both have score 9 out of 10. And both would have killed each other with the shot they fired but one tee was 1ms faster. Do you want both tees to win?

ddrace [...] so you can take it as default gametype

I wouldn't see ddrace as default gametype. But don't get me wrong I support ddrace.

I really don't think this is the place to go into depth of mods.. so feel free to ignore the following text:

ddrace has been around for a long time

And that is the point. In that long time every bug has been used as a feature in a map. Players are nostalgic and we still play maps in 0.6 that came from 0.5 and we will continue playing those maps in 0.7. But for these maps to work ddrace 0.7 has to add the weakhook agian. Because some parts require weak hook. Since it is a 2+ player game you always have a weak and a strong in your team. Sometimes you have to use brain to see who has to do what part.

I just want to go through the map, give me a normal hook, why do I have it worse than others?

Its not you rushing alone through a map. DDrace (dummy drag race) requires a team to finish the map (usually). Thus your team has no worse conditions. It has enough weak and strong tees to finish the map like everybody else. You can't have a team of only weak or strong tees if your team is bigger than 1 tee.

Do I need to create this issue in every mod in which it is not needed?

If a mod really suffers from weakhook and it has no benefit. Than this can still be changed in a mod.

@oy
Copy link
Member

oy commented Jun 24, 2019

Hard to make that configurable.

@notiv-nt
Copy link

Well, maybe it should be mod based?

@oy
Copy link
Member

oy commented Jun 24, 2019

It's not possible to mod the physics properly. That would be lots of work.

@fokkonaut
Copy link
Contributor

@ChillerDragon what I meant with "its barely noticable in vanilla" is that you can just keep it in teeworlds, so that ddrace doesnt break. It was an argument for not removing weak Hook

@Stitch626
Copy link

I'd be very pleased if we finally get a fixed hook. Yes, the weak/strong hook in ddrace is a thing, but who cares? Simply fix the maps or continue as it is right now (modded in the server, custom client). Whats the problem?
Another idea could be to implement three ways or so, and switch between them - which would be a bit messy from code perspective. This would allow the server to choose between modes. If you place it in its own function its fine I think.

@ChillerDragon
Copy link
Contributor

@Stitch626 could you explain why weak/strong hook bothers you? :)

@oy
Copy link
Member

oy commented Aug 2, 2020

fixed by #2478

@oy oy closed this Aug 2, 2020
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

Successfully merging this pull request may close these issues.

Different hook strength
8 participants