supertux icon indicating copy to clipboard operation
supertux copied to clipboard

Zeekling behaviour improvements

Open MatusGuy opened this issue 2 years ago • 17 comments

idea is to remove the randomness and make the movement smoother

fixes #533

MatusGuy avatar Sep 05 '23 12:09 MatusGuy

Depends on #2631

mrkubax10 avatar Sep 08 '23 20:09 mrkubax10

Can you fixed unused fields?

tobbi avatar Sep 08 '23 20:09 tobbi

will in the next commit

MatusGuy avatar Sep 08 '23 20:09 MatusGuy

You can make Zeekling bonk his head weirdly which screws with his recovering and decreases his x-velocity

https://github.com/SuperTux/supertux/assets/20615048/a4918e0e-21cc-48c9-8159-37a423ce0a36

Rusty-Box avatar Dec 02 '23 17:12 Rusty-Box

Thanks for testing rusty, i wouldve never found these on my own.

Zeekling seems to dive way to early when standing still.

My original idea was to not make zeekling as dependant on player velocity, because the old one tried to predict where you were gonna be using the velocity. Looks like the way I'm doing it will require me to find a way to depend on velocity, but this time, control it a bit, and make it not as unfair as the old one.

In some instamces they could clearly dive at me but they don't.

Huh. I'll turn on drawing for the detection line.

Zeekling should not need to dive at Tux when not higher than Tux himself

It does actually do this but it looks like I didn't make it inclusive (doesn't handle same y position)

You can crash the game by doing this

Wtf.

Also, I personally think that after they reached their lowest diving position they should begin moving back up pretty soon after

Alright I'll tweak it later

You can make Zeekling bonk his head weirdly

This is because the red line below the zeekling didn't touch the ground. Looks like I'll have to put it in the edge of the bounding box.

MatusGuy avatar Dec 03 '23 14:12 MatusGuy

Damn, I am scratching my head on this one. It is more consisten but at the price of accuracy. I don't know how to approach this issue yet. The only quick thoughts I have been juggling around are:

  • Drastically decrease the wind-up time and motion between flying and diving.

I feel like this delay between the actual attack had forced us into this weird velocity calcualtion causing to either attack too early or too late. If it could attack faster we might be able to decrease the gap.

  • Increase the actual diving speed

Controversial but something that might help if it's done carefully, lowering the chances of outrunning Zeekling before it even had a chance to strike

One of the core issues I still see is how easily one could just run past Zeekling without properly engaging. Tight and small platforms shouldn't be the only way to insure that. Even flat ground should leave Zeekling a potential threat

Rusty-Box avatar Jan 27 '24 16:01 Rusty-Box

Damn, I am scratching my head on this one. It is more consisten but at the price of accuracy

Same.

Drastically decrease the wind-up time and motion between flying and diving.

Could you rephrase this or explain in more detail?

Tight and small platforms shouldn't be the only way to insure that. Even flat ground should leave Zeekling a potential threat.

I think so too. Remind me how you were gonna use zeekling in the new story mode?

MatusGuy avatar Jan 27 '24 16:01 MatusGuy

Could you rephrase this or explain in more detail?

So right now, I think the time it takes for Zeekling to charg up for their dive and them actually diving down takes way too long which I believe makes it so easy to out run them. This whole "calculating the players walk speed" is trying to work aorund that but to me the core issue should be fixed instead. If that actually fixes it, that is :/

I think so too. Remind me how you were gonna use zeekling in the new story mode?

A mix of both. Zeekling tries to "snipe" you out of the air during platforming thus you must take great care when to do your jumps to not get hit mid-air but also across relatively even stretches of land here and there.

Rusty-Box avatar Jan 27 '24 18:01 Rusty-Box

From what I understand, Zeekling is not supposed to be placed in areas with flat surfaces. Zeekling works best when placed in sections with small platforms, where it's tricky to run right past it.

I'd wait for Rusty's input.

MatusGuy avatar Jul 21 '24 19:07 MatusGuy

In my opinion it should work in any case. Also, when going in the same direction it is going in, it works. So that seems like a bug.

Vankata453 avatar Jul 21 '24 19:07 Vankata453

If you run straight ahead while ignoring the zeekling, you stay out of its trajectory. But if you're big tux, you will get hit because of your bigger hitbox, unless you slide at the last minute.

Small Tux's hitbox is one of its advantages. You can die in one hit and get a more limited moveset but have more chance of survival.

  • Black - ground
  • Red - Zeekling
  • Blue - Tux's direction
  • Green - Tux's destination

image

But if you go in the same direction, you will be interfering with zeekling's trajectory, which will hurt you.

image

So this isn't really a bug, but a feature.

MatusGuy avatar Jul 21 '24 20:07 MatusGuy

@Vankata453 Wait, what is the "bug" in question? I'm confused here. He seemed to work fine on my end. Is his diving curve messed up? What does the red line mean you drew on your screenshot?

Rusty-Box avatar Jul 21 '24 20:07 Rusty-Box

Rusty i think the red line is a question mark

MatusGuy avatar Jul 21 '24 20:07 MatusGuy

Small Tux's hitbox is one of its advantages. You can die in one hit and get a more limited moveset but have more chance of survival.

Yes, but it seems like it's hard to die as small Tux. Personally I like how the old zeekling, regardless of direction, always poses a threat to the player and your task is to be careful around it. Additionally, if you want to kill it while on smooth terrain as small Tux, I don't think you would be able to, because you're not able to jump that high, according to my testing.

Is his diving curve messed up?

The diving curve simply poses no threat to small Tux when the directions of Tux and the zeekling differ.

What does the red line mean you drew on your screenshot?

Just a question mark, you can ignore it.

Vankata453 avatar Jul 21 '24 20:07 Vankata453

Additionally, if you want to kill it while on smooth terrain as small Tux, I don't think you would be able to, because you're not able to jump that high, according to my testing.

I don't get this one? Are trying to kill it when it flying in the air? Just wait for it to come down.

The diving curve simply poses no threat to small Tux when the directions of Tux and the zeekling differ.

They do not pose as much of a threat on flat ground but why would they have to. Even as Big Tux a simply slight is all you need and you are in the clear. Flat ground has already several enemies and obstacles that you can use to enhance difficulty. Zeekling is an airborne threat trying to snipe you during platforming and are much more efficiently used on less flat ground that rquired tight platforming. Like how a Haywire is pretty much uninteresting on an empty flat long surface or a chasing fish pretty easy to dodge in a large, open pool of water, even Crushers are very harmless on flat ground, as you can just run straight and they will never harm you unless they are like one tile above Tux - certain enemies have circumstances they perform better in or worse. It comes up to the level designer to create a proper enviornment to bring the best out of each element used in it.

Rusty-Box avatar Jul 21 '24 21:07 Rusty-Box

Okay, did some platforming testing. Now that you explained it it makes sense. It seems challenging enough when platforming and also the reason that it doesn't catch Tux when directions differ is now clear too, seeing MatusGuy's response.

Being used to the old zeekling, I just didn't initially expect this. Only count on the code-side of my review then.

Are trying to kill it when it flying in the air?

I was trying to kill it as small Tux while running in the other direction. Seems like, however, just standing there without moving makes it drop on Tux, giving you the chance. It is speedy though, so the player should react fast on that.

Vankata453 avatar Jul 21 '24 21:07 Vankata453

Also: "also sometimes it just straight up doesnt dive at all when tux is obviously within reach"

weluvgoatz avatar Jul 26 '24 23:07 weluvgoatz