-
-
Notifications
You must be signed in to change notification settings - Fork 470
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
Zeekling behaviour improvements #2624
base: master
Are you sure you want to change the base?
Conversation
Co-authored-by: Tobias Markus <tobbi.bugs@googlemail.com>
Co-authored-by: Tobias Markus <tobbi.bugs@googlemail.com>
src/badguy/zeekling.cpp
Outdated
|
||
return false; | ||
// FIXME: Give the actual object that hit the raycast, or at least the hitbox |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In which pull request should this function appear?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@MatusGuy If you have to change a different function to solve this issue, you could do it in another PR and this one would be marked as conditional.
src/badguy/zeekling.cpp
Outdated
// Do not dive if we would not descend faster than the player. | ||
float relSpeed = vy - player_mov.y; | ||
if (relSpeed <= 0) return false; | ||
const Vector& plrmid = get_nearest_player()->get_bbox().get_middle(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That name is not very verbose.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
player middle. i thinks its pretty ok. what are your suggestions
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
player_middle
, player_center
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
sure
src/badguy/zeekling.cpp
Outdated
@@ -204,7 +183,7 @@ Zeekling::active_update(float dt_sec) { | |||
break; | |||
} | |||
|
|||
BadGuy::active_update(dt_sec); | |||
BadGuy::active_update(dt_sec); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why the indentation?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
soz qt creator messed up
Depends on #2631 |
Can you fixed unused fields? |
will in the next commit |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Initial review:
- Zeekling seems to dive way to early when standing still.
zeekling_dive_too_early.mp4
- In some instamces they could clearly dive at me but they don't.
zeekling_no_dive.mp4
- Zeekling should not need to dive at Tux when not higher than Tux himself (or below two tiles above the ground). It looks rather goofy
zeekling_same_height.mp4
- You can crash the game by doing this:
zeekling_crash.mp4
- Also, I personally think that after they reached their lowest diving position they should begin moving back up pretty soon after, if not immidiatly. Right now it takes way too long and makes it look rather stiff and clunky
You can make Zeekling bonk his head weirdly which screws with his recovering and decreases his x-velocity zeekling_bonk_slow.mp4 |
Thanks for testing rusty, i wouldve never found these on my own.
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.
Huh. I'll turn on drawing for the detection line.
It does actually do this but it looks like I didn't make it inclusive (doesn't handle same y position)
Wtf.
Alright I'll tweak it later
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:
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.
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 |
Same.
Could you rephrase this or explain in more detail?
I think so too. Remind me how you were gonna use zeekling in the new story mode? |
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 :/
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. |
94023dd
to
0fd1cee
Compare
idea is to make it swoop a bit up then go down, make it feel a bit nicer