Asteroids Revenge
Left mouse click to shoot forward.
Right mouse click to shoot backward.
WASD or arrow keys to move.
Movement speed and score multiplier both decrease as hp increases.
Score multiplier increases based on killstreak and how quickly you kill enemies overall.
Enemy attack speed increases and background asteroid speed decrease as score multiplier increases to make the difficulty dynamic.
Asteroid and enemy spawn rate increase as killstreak increases.
Crashing into enemies grants 40 points while killing any other way grants 10 points.
Thanks for playing!
Comments
Log in with itch.io to leave a comment.
God it's this game addicting. Great Game! Sure, the graphics are not a great, but believe me when I say that it is well made (and trust me, I[m saying the truth, since I was going to upload exactly the same theme to the jam XD, tho with a different kind of gameplay). My only criticisms are that the combo systems are kind of inconsistent and that the win condition score was set too high (I'm addicted to the game and I haven't reach it yet xd).
Apart from that, great job!
Thanks you so much for the feedback!
The technique I used to win was:
-Constantly maintain a killstreak by getting a kill at least every 1.5 seconds (if enemies shoot each other or a background asteroid crashes into them it still counts as a kill). The killstreak is needed because it increases score multiplier, but more importantly it increases the spawn rate
-Making enemies shoot each other is super good because your HP doesn't go down so it allows you to play much more aggressively like by pressing Right-Mouseclick to boost into enemies
-In the first few seconds, mostly use your projectiles to get kills as fast as possible. If your score multiplier is only around x8 to x25 you won't get that many points anyway, so the important thing it to kill enemies as fast as possible to get your score multiplier closer to around x100
-After that, try to get more points by crashing into enemies. Crashing is worth 4x as many points, so this will allow you to accumulate points faster
-Finally, now that your killstreak accumulatedPoints is getting high, and enemy attackspeed should be high if you have been killing enemies fast enough, there should be a ton of enemies shooting really fast, so you can get a ton of points by making them shoot each other , plus a lot of extra points by crashing into enemies which is also easier since the asteroid spawn rate went up. If you are doing well, your score multiplier can regularly get to around x300 - x600 in the late game.
All of the art and sound effects came directly from retro Asteroids lol, and the text was just the default Arial font because I'm lazy when it comes to graphics XD.
I finished the game during the 1 hour extension period lol, so I didn't have that much time to fine tune the difficulty. I ended up distracted having a ton of fun trying to reach the difficult goal instead of seriously playtesting to find out what the goal should be, so I just quickly adjusted the level timer from 30 seconds to 38 seconds hoping that would be enough. Feel free to set a personal goal of like 50,000 or 100,000 if 200,000 is too high, or just have fun ignoring the goal (the Victory screen is just a blank screen with "YOU WIN!" in Arial font so you're not missing much XD.) I thought 200,000 would be an okay, difficult challenge to get because I was getting points super fast towards the end because accumulatedPoints (accumulatedPoints is the killstreak points you see above your character) increases the enemy and asteroid spawn rate by a ton, which in turn makes it easier to accumulate points and the score multiplier is also influenced by accumulatedPoints.
void Update()
time -= Time.deltaTime;
if (time <= 0f)
Spawn();
time = .3f / (1 + (accumulatedPoints / 32000f));
if (time < 0.12f)
time = 0.12f;
I made it so the score multiplier is based mainly on the ratio between enemies currently alive and background asteroids, so as more enemies spawn your score multiplier goes down if you don't kill them, whereas it will gradually go up as the number of background asteroids increases. I definitely should have made a normal, easier to understand system for the score multiplier. I ended up with this super weird code for the score multiplier after some testing because I couldn't decide which variables I wanted the score multiplier to be based on, so I made it based on everything lol.
ratio = (1f + (lives / 30f)) * ((float)asteroidPickupCount / enemyCharacterCount);
scoreMultiplier = (float)Mathf.Pow((ratio + 0.333f) * (0.5f + ((30 - lives) / 30f)), 3) * (1 + (accumulatedPoints / 24000f));
I wanted the game to be very difficult but very short, so you can replay it tons of times to get better, but because the points are so exponential it would be satisfying when you get a really high score when you were getting low scores earlier. I was worried that if I made the timer too long it would be less replay-able and if I made the points goal too low, you miss out on the super satisfying moment when your points are going up at a ridiculously higher rate, so I think I ended up making the difficulty of reaching the goal way too high, especially with the only playtester, me: really good at games, the developer, and enjoys nightmarishly difficult goals. Also, since I just was reusing a lot of code from the enemy spawner from a different game I was making, you need to get a little bit lucky with enemy and asteroid spawns even if you play perfectly.