pastthepixels / InfiniteShooter

A simplistic shooter made with the Godot engine.
https://pastthepixels.itch.io/infiniteshooter
GNU General Public License v3.0
18 stars 3 forks source link

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

Closed Frizy13 closed 2 years ago

Frizy13 commented 2 years ago

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.

pastthepixels commented 2 years ago

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:

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 commented 2 years ago

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 commented 2 years ago

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 commented 2 years ago

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.