I got 3615 on my first time.
Nice. Thanks for playing.
I really like all the different graphics, especially of enemy shots. That's the sort of touch you don't see very often. The gameplay is pretty solid too, though it seems like the player's craft sometimes coasts a little bit if you attempt to fire and quickly change direction. Is that intentional?
Do enemies start to fall to the ground to attack before splitting is introduced? I first noticed it on the splitting level, but I can't be sure. If they do both start at once, I'd recommend moving that apart, since different concepts should be introduced in different levels. And if there's anything new after splitting, I recommend moving that earlier so people actually see it, unless I just suck at this game.
Demon Attack was one of my favorite game for the Atari 2600. I tried to stay as authentic as possible to the original. The enemy types, behaviors and weapons are introduced in exactly the same sequence. The game demands a certain level of skill before revealing everything that it has to offer. A cursory glance may suggest that Demon Attack is just a Space Invaders ripoff, but in actuality, it provides a much richer gaming experience.
Finally, are you using a while/yield loop for timing? If so, try using Thread.sleep(desired frame delay) instead. Even with the code to ignore an Exception I've found that it takes less room (your mileage may vary) and, more importantly, it prevents the game from taking up 50% of CPU and needlessly spinning up the user's fan.
A link to the source code of all of my games is located at the bottom of each of the associated web pages. I am actually using yield because someone mentioned that it has more consistent timing on some machines. I never obtained any proof of that, but I felt for 4K, full CPU consumption probably did not matter.