[GAME] Space Raiders

Hello,

I added a few things of my own in my version of ‘Laser Defender’, ‘Space Raiders’ .
I have introduced a difficulty progression system in the game, in which the enemies get tougher with every wave.
Here are a few extra things I added…

  • Enemies firing rate (probability of shooting) will increase every wave.
  • Enemies laser speed will increase with every 2nd wave.
  • Player will be given extra Health(+300) on every 5th wave.
  • Score Value for enemies will increase with every wave
  • Once you reach wave 10, we have to face a new class of enemy which will take 3 hits to kill. (Before wave 10, it takes 2)
  • Once you reach wave 20, another new class of enemies will be introduced, which will take 4 hits to kill

Initially, I was myself unable to go beyond wave 7 or 8, so I reduced the difficulty a bit and was able to manage upto wave 15.

Let me know how far you can go, so that I can alter the difficulty even more.
Please also let me know if you encounter any bugs

Here’s the link:

https://gamebucket.io/game/ce32b496-3942-42cd-a1b7-f1fbcc4467e5

(Might take a bit to load, it was 16 mb )

And in the end I really wish to thank the teachers, and everybody connected with the course, you people taught me a lot.

Edit: There some issue in which the keyboard sometimes doesn’t respond to the game but the mouse does, I tried refreshing the page once or twice and it disappears, the game works completely fine.
(This issue occurs only when played in browser, and that too only sometimes)

I found a few “bugs” in your game that were bugs in the original code from the course.

  1. Player fire rate is limited when holding down Space, but not if you tap Space. I tried solving this with a float adding up the time between shots. It has its own issue though. If you release and hold Space within the time between shots it won’t start shooting again. Not sure if anyone can figure out a fix.

    void Update () {
    lastfire += Time.deltaTime;
    if(Input.GetKeyDown(KeyCode.Space)){
    if(lastfire >= firerate){
    InvokeRepeating(“Fire”, 0.00001f, firerate);
    lastfire = 0f;
    }
    }

  2. The other “bug” in you game is that you are counting waves based on the course’s AllMembersDead method. But since you are also using the course’s SpawnUntilFull method, if the player kills an enemy before the SpawnUntilFull is completed the AllMemberDead method never gets called. Meaning the player can kill more enemies in Wave 1 than total enemies. So the player can get a high score without reaching a high wave count. As an example, here is a pic of me getting 4200 points (84 enemies killed) on wave 1.

Consider making the method to increment the Wave look at score instead of AllMemberDead. Or you could change SpawnUntilFull to a SpawnFullWave and to spawn a full wave instead of going until NextEmptyPosition is null.

  1. The position or size of the score text box is too small. After 100,000 points it starts cutting off a number. Might want to resize it a bit to make sure the score can go high enough. Though if you fix the bug of killing more enemies per wave than the total wave size, that might not be an issue as much.

The next three aren’t really bugs, but suggestions to improve the game:
4. The sound balance is a little off. The player firing sound is much loader than the other sounds. Try balancing those a bit in the next build.

  1. The hit detection between the enemy lasers and player ship feels off. I think your collider on the player is a little too big.

  2. There is no sound or visual queue for when the player gets hit. Since the player can take multiple hits, consider adding a particle effect or sound, so the player realizes they got hit.

Taking advantage of the bugs I found. I got to Wave 32 with a score of what I think is 5,320,000, but I am not sure.

Privacy & Terms