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

Feature request: Add some changes to the mechanics of the game's bosses #3

Closed
Frizy13 opened this issue Jul 7, 2022 · 4 comments
Closed
Assignees
Labels
enhancement New feature or request
Milestone

Comments

@Frizy13
Copy link
Contributor

Frizy13 commented Jul 7, 2022

Is your feature request related to a problem? Please describe.
It seems that the boss mechanics don't change at all with different game difficulty choices. The boss will be the same whether on "Medium" or "Nightmare" difficulty.

Describe the solution you'd like
I suggest changing maybe his health, frequency of his shooting or speed of moving through space depending on the chosen game difficulty.

Additional context
Perhaps the difficulty of regular opponents will also have to be adjusted to the selected one.

@Frizy13 Frizy13 added the enhancement New feature or request label Jul 7, 2022
@pastthepixels
Copy link
Owner

Yes! So. Sorry if this'll be a giant wall of text, but it was actually on my mind for a quite a while.

Difficulties and Bosses

So essentially, there are 3 different kinds of bosses in the game. But there's a problem to them--they actually vary in difficulty (with the multishot/triangle type being the most difficult), and this is because of the amount of lasers they fire. So you could end up getting the most difficult boss type in the game on level one!
I also agree that bosses oftentimes don't take much effort to kill, and there isn't much challenge to them. So one of the things that I think would be beneficial besides increasing their health/damage more per level/global difficulty would also be to give them better AI. That's why I think this fits best for the next version of InfiniteShooter -- because it could be used an opportunity to not only make bosses more difficult by adding more health/damage, but also by making them more difficult by giving them a better AI.

A summary of InfiniteShooter's difficulty as it stands

Each enemy starts off with a different kind of health, damage, and speed. Speed doesn't matter though; it never changes. Now, for each level, the health/damage of enemies all go up by a consistent amount of points specificed in GameVariables.gd, health_diff or damage_diff. But as the player, you need to upgrade your ship so you can kill enemies in the same amount of hits in level 2 as it takes in level 1. If you collect all the coin crates, you get all the coins specified in coins_per_level, and you use those to upgrade your ship. Now here's where things get complicated:
You have a target health/damage upgrade, but also coins_per_upgrade, which is how much coins you need to spend to reach the target health OR damage upgrade (so right now, 1400 coins to get 48 health or to get 10 damage/shot per level). So these three variables can be adjusted to change the rate at which you upgrade to match with the rate enemies get more difficult.

Difficulties and Enemies

So, I should begin this by stating that I never actually playtested other difficulties in the game. Um...
Anyway, there are a few main variables to deal with when adjusting the difficulties of enemies, in GameVariables.gd:

  • difficulty_health: How much more health each enemy starts off with (you'll need more shots to kill enemies on average)
  • difficulty_damage: How much more damage each enemy starts off with (enemies on average will kill you faster)
  • And the three I talked about earlier, health_diff, damage_diff, and coins_per_upgrade.
    Essentially, these can be adjusted in set_difficulty() to make the difficulty of the game vary.

Enemy AI

It's something I've been thinking of for a while, after hearing that Tyrian does it. Essentially, if you set your difficulty high enough, you would start to get smarter enemy AI which adds to the difficulty. This is what I'm thinking of for InfiniteShooter 0.5.0, but I haven't planned at the moment as to what that would look like.

TL;DR

Wow, that was a wall of text! Essentially, there are a few variables that can be messed with in GameVariables.gd, but I'll probably have this happen for InfiniteShooter 0.5.0 since it impacts the gameplay of InfiniteShooter. Since it would be for the next release, work can also happen to improve enemy AI. Plus, as I've found out in the highest difficulty mode, it's not health or damage that really makes things difficult. It's how much lasers are on the screen at once.
But I think I'll get to work on 0.5.0 sometime soon, because I'm a bit tired from playtesting InfiniteShooter (on normal difficulty, of couse). Lastly, sorry for making this extremely long!

@pastthepixels pastthepixels added this to the v0.5.0 milestone Jul 7, 2022
@pastthepixels
Copy link
Owner

On second thought, actually, I think InfiniteShooter needs some balancing for 0.4.1. I'll change the milestone here and make another issue instead for better enemy AI.

@pastthepixels pastthepixels modified the milestones: v0.5.0, v0.4.1 Jul 12, 2022
@pastthepixels pastthepixels self-assigned this Jul 12, 2022
@pastthepixels
Copy link
Owner

I also made a quick spreadsheet which can be used to help adjust the health of enemy ships/bosses. Anything in blue can be adjusted, and it should show some information like how much shots it takes to defeat different enemy/boss types. I'll probably upload it to InfiniteShooter-Assets too should anyone need it in the future.

infiniteshooter-balancing.ods

@pastthepixels
Copy link
Owner

Just balanced out the other difficulties and added some different mechanics to bosses for v0.4.1. I tried it out and everything seems alright, but let me know if some of the balancing needs to be tweaked any further. Other than that it's set for InfiniteShooter v0.4.1 which I'm planning on releasing some time this weekend, so I think it's safe to close this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants