Okay. Where do I start?
First off, please don't take this the wrong way, but your game has a couple of fairly nasty gameplay flaws. I don't want to just hurl destructive criticism at you, so I'll explain those in a bit.
The GOOD parts:
- I like the ship design. Very retro, very cool.
- The boss movement AI is fairly well-tuned, neither idiotic nor too smart to be beaten.
- Your extra powerups (+score, weapons, health) are well-done, although they could use some sprucing up in the visual department.
- The game runs very smoothly - no tearing or jerking, at least on my machine. (Consider making an FPS counter?)
The UGLY parts:
- No explosions. Consider doing a simple particle system for explosions; it works wonders.
- The quantization issue, as mentioned by another player. (This gives me headaches. Please fix it.)
- Enemies don't move horizontally enough. The game degenerates, in the later stages, into a "zone-defense" game because the player can keep the enemies out of a particular "no-fly zone" by means of overwhelming firepower. If some enemies swooped quickly across the screen before opening fire, you could force the player out of their safe area.
The BAD parts:
- Enemies come in very haphazard waves.
I understand it's random, but consider implementing a limited formation system, e.g. occasionally randomly spawn FORMATIONS of enemies (say a 5-ship arrowhead formation) rather than individuals. The human mind thrives on recognising and adapting to patterns, and this is very much true for games. As you've probably noticed, most shooters have enemies which spawn in specific patterns and formations.
- Your ship's weapons are broken.
My mouse hates you.
Implement a rapid-fire system at least, so I can just hold the button down. At the higher levels, the optimal strategy seems to be "spray and pray" anyway, so players are NOT going to be taking carefully-considered shots. Also, it's too easy to box the bosses in and finish them off, at least up till level 14-15 or so. (I suicided on level 15; it wasn't that the game was too easy, just boring for the reasons I'm mentioning here.)
I would suggest that you implement a dual-weapon system and give most enemy ships a certain amount of HP:
The main weapon is a rapid-firing laser or something similar. It just projects a beam up to the top of the screen that hits anything in its path, but only drains a miniscule amount of HP. In other words, you need to sweep the laser across a target 2 or 3 times, or hold it on them for a short time, to destroy them.
The secondary weapon is rockets or torpedoes, which behave much like the player's current shot. However, the torpedoes only have a finite number of shots before they have to reload - in other words, after the player fires (say) 8 shots, they have to wait a second or two before they can fire again.
In this way you can make the boss fights more interesting by preventing the player from completely boxing the bosses in. The player can tackle regular enemies by using the laser sweep and well-timed torpedo salvoes. You could map the two weapons to the same button, or map (say) the torpedoes to the RMB.
- Difficulty and pacing are very poorly done.
First, let's talk pacing. The GOOD thing you did with pacing was to wipe out all onscreen bullets when the boss goes down. However, you probably need to do a bit more to modulate the tempo of the game. I would suggest that you also destroy all onscreen enemies when the boss dies, and start a timer for e.g. 2-3 seconds during which no enemies spawn. (During this time, it would be cool if you displayed a little placard in the centre of the screen saying "LEVEL 2 - GET READY!" or something.) This presents the player with a definite arc of tension in each level, starting with the small enemies and ending with the boss fight.
Now, difficulty. Skilled or semi-skilled players are going to be extremely bored with your game in levels 1-9, and may not stay long enough for it to get (somewhat) interesting. I faced the same issue when designing my own shooter "Uplift" (now defunct - I'm working on a new game!), and the solution was to implement a risk/reward system.
What do I mean? Well, to keep the skilled players interested, you have to make it so they'll do risky but optional things that require more skill in the early stages, so it'll be more difficult for them but not for the unskilled players. A very rudimentary version of this is present in your game, in the form of the power-up ships, but it's not extensive enough to be anywhere near sufficient.
Let me just describe what I did with Uplift. I had two avenues of risk/reward in the game.
1. Powerups. In Uplift, every enemy drops powerups. The player has to collect tons of these to power up his weapons (64 for maximum power, to be exact). However, when the player's gun power is above 32, it slowly decreases at a rate proportional to its current level. So to maintain your gun power at a high level, you need to keep on flying into danger to grab powerups. Furthermore, when the player's gun power is above the maximum level, all the score he earns is multiplied (>95 gives X2 score, >111 gives X4, >119 gives X8, with the power capped at 127). Maintaining your gun power is crucial to high scores in Uplift; an unskilled player could survive with a gun at level 70 or so, but would get a much poorer score than a skilled player who keeps on flying into areas of heavy enemy fire to grab powerups and maintain his gun power at 120+.
2. Point-blank bonus. Uplift awards the player bonus score multipliers depending on how close he is to the enemy when he destroys it (again, from X2-X8). Naturally, flying close to the enemy without crashing requires more skill, but gives greater rewards.
An analogous mechanic is the "chain" mechanic in Ikaruga, or the formation-destruction bonus in Galaxian.
One thing you could do for similar effect would be to give the player an increasing bonus for every enemy he destroys, with the caveat that the bonus resets or gets lower if an enemy manages to escape off the bottom of the screen.
In summary, please fix the weapon and movement controls, and give the player more interesting things to do at the low levels.
Also, it would be interesting if the bosses could fire diagonally once in awhile, to keep the player on their toes.
I hope that wasn't too harsh; I'm just trying to suggest ways to make your game better.