supertux
supertux copied to clipboard
Zeekling behaviour improvements
idea is to remove the randomness and make the movement smoother
fixes #533
Depends on #2631
Can you fixed unused fields?
will in the next commit
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
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.
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
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?
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.
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.
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.
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
But if you go in the same direction, you will be interfering with zeekling's trajectory, which will hurt you.
So this isn't really a bug, but a feature.
@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 i think the red line is a question mark
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.
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.
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.
Also: "also sometimes it just straight up doesnt dive at all when tux is obviously within reach"