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

Zeekling behaviour improvements #2624

Draft
wants to merge 32 commits into
base: master
Choose a base branch
from

Conversation

MatusGuy
Copy link
Member

@MatusGuy MatusGuy commented Sep 5, 2023

idea is to make it swoop a bit up then go down, make it feel a bit nicer

MatusGuy and others added 2 commits September 5, 2023 13:09
Co-authored-by: Tobias Markus <tobbi.bugs@googlemail.com>
Co-authored-by: Tobias Markus <tobbi.bugs@googlemail.com>

return false;
// FIXME: Give the actual object that hit the raycast, or at least the hitbox
Copy link
Member Author

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?

Copy link
Member

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.

// 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();
Copy link
Member

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.

Copy link
Member Author

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

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

player_middle, player_center?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sure

@@ -204,7 +183,7 @@ Zeekling::active_update(float dt_sec) {
break;
}

BadGuy::active_update(dt_sec);
BadGuy::active_update(dt_sec);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why the indentation?

Copy link
Member Author

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

@mrkubax10 mrkubax10 added the status:conditional Needs a requirement to be satisfied before merging. label Sep 8, 2023
@mrkubax10
Copy link
Member

Depends on #2631

@tobbi
Copy link
Member

tobbi commented Sep 8, 2023

Can you fixed unused fields?

@MatusGuy
Copy link
Member Author

MatusGuy commented Sep 8, 2023

will in the next commit

@Rusty-Box Rusty-Box added this to the 0.7.0 milestone Sep 27, 2023
@Rusty-Box Rusty-Box added this to In Progress in Rooted Forest Overhaul Sep 27, 2023
@MatusGuy MatusGuy self-assigned this Nov 17, 2023
@MatusGuy MatusGuy removed the status:conditional Needs a requirement to be satisfied before merging. label Dec 2, 2023
Copy link
Member

@Rusty-Box Rusty-Box left a 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

@Rusty-Box
Copy link
Member

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

zeekling_bonk_slow.mp4

@MatusGuy
Copy link
Member Author

MatusGuy commented Dec 3, 2023

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.

@Rusty-Box
Copy link
Member

Rusty-Box commented Jan 27, 2024

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

@MatusGuy
Copy link
Member Author

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?

@Rusty-Box
Copy link
Member

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Rooted Forest Overhaul
  
In Progress
Development

Successfully merging this pull request may close these issues.

None yet

5 participants