Ship Shooter - Java Space Shooter Game

I just finished perfecting the AI on my space shooter game, Ship Shooter. Though a more creative title wasn’t in my changes, I did make the game flow go a lot smoother - allowing novice players to advance to the later stages of the game after two or three tries. I also beefed up the enemy AI in levels 3 and above, to give even the most coordinated players a challenge. The game is written entirely in Java using an extension to the applet class, called BufferedApplet (made by Professor Ken perlin) to ensure smooth animation. I think you’ll like this game and I’m looking for input for a future version 3.0. Let me know what you think!

Ship Shooter Arcade Game - http://www.goldenbrew.com/play_shipshooter.htm

GoldenBrew Free Online Games - http://www.goldenbrew.com
Personal site: http://homepages.nyu.edu/~edb224/index2.htm

Elliott, webmaster and developer

I played through several levels and at the end it reported that my score was 0, rating was 0.0%
I honestly didn’t think I sucked that bad!

Nice game.

Could be a bit faster for me and I would like to have some explosions when a ship is destroyed. :wink:
I like the idea with the ship damage meter and the boss damage meter. :slight_smile:

The game works well. I liked the power-ups and the motherships. The damage guages were good too.

Score 4845, Rating 60.4656% - Would be higher, but I lost half my health when the cursor dropped below the applet and I accident clicked on the taskbar & minimised the window.

A few possible improvements for adding extra polish: Maybe brighten up the graphics a bit (Look at Cas’ ultratron) and make the player and enemy bullet colours slightly more different. Some sound effects would be nice. Music would be nice, but adding tracks are a bit tricky with applets because the file tends to be big & slows down the load time. You can fetch a track after loading, but (I believe) this doesn’t get cached so increases your websites bandwidth usage. If you just want a loop, you can embed a small MIDI track on the webpage itself, which hopefully ends up in the browser cache. This works well with Internet Explorer, but PC Firefox will need the Quicktime plug in, and sometimes the music can break up a bit if the applet is running full tilt. Oddly, Safari & Quicktime on the Mac works fine.

Alan

Neat game :slight_smile:

I think adding explosion when the enemy ship destroyed is nice too.
Anyway what is rating? I got only 18.75% oh well my score is only 1500, I decide to end it because my finger is hurt clicking the mouse all the time for firing, how about auto fire? :slight_smile: with fire rate of course.

Score 12190 rating 99.9%

:slight_smile:

Cool game. Needs sound effects & explosions. Also, I would recommend being far more liberal with the distribution of the weapon powerups, those are just fun to use.

One complaint is that the mouse movement seems ‘chunky’. That is, quantized to something like 10 pixels. While I may get used to that eventually, it feels like I don’t have fine control, especially when dodging and weaving in and out of tight incoming bullets.

Some great input… I’ll def look into adding sound - its been on the list for awhile, and I like the idea of it playing on the page and not in the applet. Maybe ill have a link to another window with the sound turned on so that players can have a choice. I also may create some new types of power ups, and I agree - it’s a lot of fun to get those during game play. The split shot seems to kick a lot of ass and really help the player.

I’ve also been meaning to make all the ships gifs … or at least just the bosses and the player’s ship, because I think the game speed might decrease because there are over 150 enemy ships on screen in the later levels.

Thanks for the input so far!

I think the mouse movement clunkiness could be fixed by adding this:


public void mouseDragged(MouseEvent e) {
     mouseMoved(e);
}

Looks to me like you simply don’t handle mouseDragged so while you’re clicking to fire you can’t move.

It feels chunky with or without dragging the mouse. It just feels like the ship’s position is quantized to 10 pixel increments or thereabouts.

Nice game! Score 3885, rate 48% :slight_smile:

It’s a nice start!

  1. Sound: I’m almost hearing the sounds, my ears are fooling me…/
  2. Movement of ships: I would try to change the way the ships move. Make them spin in every direction, and randomly change the speeds of each one. Make them stop a little, aim the enemie and go for it, the turn around… it’s a lot of change but may be very cool… :wink:

Score 8330 - so many enemies I could hardly move. I really think keyboard controls would work better, coz I clicked off the window a couple of times & my mouse ran of the end of the mouse mat and hid chittering in the corner of the room and had to be tempted out with cheese.

All true (except the last bit). BTW Cheese is bad for mice

This feels like it’s half-finished … add sounds, some background graphics, make the ships look better, and add some variety to the enemies. I think it could be a good game if you worked on it a bit more.

Like a lot of games that I’ve made, I just added online scoreboards to this game! I also improved the gameplay a bit and added some new star background effects. Give it a play and add you name to the high score list!

http://www.goldenbrew.com/play_shipshooter.php

-Elliott

It would be nice not to have to enter the score and a key. you could communicate with a php script in java. :slight_smile:

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. :wink: 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.