I modified a few things in my game this weekend. I made the black hole much smaller at the game start — it was radius 12, now I have it at radius 1. This allows for a quite a few more waves. I also have single-shot/manual fire implemented.
Currently the game increases the wave number every 10 radius of the black hole.
OK, after thinking about it this weekend, along with playing with the game a whole bunch tonight, my first iteration of the powerup system:
First – the powerups will have variables to track whether they have yet to spawn, whether they are currently “in play” (i.e. flying around), whether they have been caught by the player (and thus “active”) or whether they were eaten by the black hole (and thus not consumed by the player – with no chance to be picked up/consumed). If a player misses a powerup, when it dies, it will “release” itself to be re-spawned ASAP.
To start —
1) Player starts having to manual fire a low level bullet.
2) At radius 5 a random asteroid upon generation is given the “autofire” powerup.
3) If player catches this, they then receive a “spreadshot” powerup at radius 15.
4) At 25 they receive a non-spreadshot medium bullet, then spreadshot again, then eventually a non-spreadshot heavy/fullpower bullet, then spreadshot again.
This comes after testing out various scores after various point in the game with different powers/spreads of bullets. I’m not sure the exact points, of course, but I think this is the route I’ll go. I could also do autofire->bullet up->bullet up-> spread -> spread -> spread. The issue there is that at that point when I get the spreads, the earlier levels benefit more from a lot of low-level spread due to how I have the scoring implemented. If I wait on spread until much later, the benefits don’t come as much and the game is WAY harder later (I could tweak other things, of course).
The only issue is that I think if a player has a spreadshot, they want to keep a spreadshot, and it sucks to lose it to revert to a single-fire medium, even though the medium is stronger.
What I *did* notice, however, was that when it switched from spread to single fire yellow, I have it set to increase the fire rate on the single shots (technically, I reduced the fire rate of the spread shot to compensate for the increase in bullets). So, psychologically, when I switched I did do a little mental perk of “oh, I’m going faster shooting now!” So even though I lose a spread shot, it did have a little compensation to make up for it. I might even tweak it so the fire rate is faster yet (as it doesn’t feel much like a boost to the overall power)
Those are the main weapon powerups I have available at this point in code (just in terms of ability to turn them on/off – again – not spawning any powerups)
I also have a health-up icon ready to be used for a powerup.
The other thing I plan on doing is figuring out how to have a “comet tail” effect on asteroids that do have the powerups, so players know which ones to aim for to get the powerup. I goofed with some particles tonight, but need to figure out how to get the tail blowing backwards consistently.
I’m still quite new and learning all the issues surrounding vectors and transforms and such, and even though unity has nice things such as “transform.forward” and “transform.up” for example, it’s still just a bit confusing to me, because I think sometimes thinks aren’t exactly up or down, but in some range between them all.
Regardless, my next goal is to implement a structure/system for keeping track of the spawned powerups. Once I get that, I can work on spawning them at various points in the game and checking if they’re already in effect or not and if so, remove them from the spawn-pool so I can go to the next powerup. And if they haven’t been caught, then try to respawn again until the player gets it.
I also think I’m going to go back and re-add the heartbeat effect as well as a breathing effect (maybe). The breathing I’m imagining long deep shallow breaths that mostly stay long and deep, unless an asteroid gets quite close, and if it hits, a “panic” response of hyperfast breathing and rapid pulse effect that will slow down a bit over time.
I played a bit with a camera shake effect script and it wasn’t quite what I was looking for. I’ll figure something out. I may not want to put it in, but I think I would like to see how it would look when the ship is hit and the camera shakes from an overhead view. I also want to figure out how to add a slowly breaking glass effect.
So many little things, in theory each of these shouldn’t take much more than a week on any single feature (going at a relatively slow pace), but each one for me is learning something new about how to implement a new thing (camera shake, cracking glass effect (and maybe a fogged-glass effect if I can add that, too)) but for now, keep pushing on the basics.