Captain Starfire's Great Escape! by jonnopon3000
This is my first ever Ludum Dare compo entry, and my first real game of its type using the Java language.
You'll need Java installed to run it.
It's a wave-based stationary survival game, with the goal to move through waves of enemies by shooting at them.
Note: The story (detailed in game intro screens + death screen + win screens) is the important part of the theme integration.
::-- You must survive 20 waves to escape the onslaught --::
-----------------------------------------------------------
IMPORTANT:
I've seen the comments about the playability and bugs, so here's some warnings/tips before playing:
1. Due to the way it's coded, bullets are only destroyed when they exit the screen or hit an enemy. Firing loads of bullets can lag the game. Fire in single or double bursts for best gameplay - as few bullets as possible at a time.
2. Bullets have faster speeds when you fire with the cursor more towards the edge of the game field - to avoid the bullet clean-up problem mentioned in number (1), try to fire as far out as possible (again, in single or double bursts).
3. Also due to the coding, only the most recent bullet fired will have collision. This can cause problems in clean-up (for example creating a bullet shield at slow speed means those bullets will not be cleaned up as they will not get to the edge of the screen or hit an enemy) and may confuse gameplay. For the best advice, I'd say that sticking to single or double shots will help in all cases (again).
TL;DR:
Fire as few bullets as possible, aiming as close to the edge of the screen (or the enemy you wish to kill) as possible, to get best performance and (hopefully) enjoyment.
-----------------------------------------------------------
Please do feed back. It's a .jar file so feel free to download whichever "platform" you like.
I hope you enjoy the game.
- Jonno
You'll need Java installed to run it.
It's a wave-based stationary survival game, with the goal to move through waves of enemies by shooting at them.
Note: The story (detailed in game intro screens + death screen + win screens) is the important part of the theme integration.
::-- You must survive 20 waves to escape the onslaught --::
-----------------------------------------------------------
IMPORTANT:
I've seen the comments about the playability and bugs, so here's some warnings/tips before playing:
1. Due to the way it's coded, bullets are only destroyed when they exit the screen or hit an enemy. Firing loads of bullets can lag the game. Fire in single or double bursts for best gameplay - as few bullets as possible at a time.
2. Bullets have faster speeds when you fire with the cursor more towards the edge of the game field - to avoid the bullet clean-up problem mentioned in number (1), try to fire as far out as possible (again, in single or double bursts).
3. Also due to the coding, only the most recent bullet fired will have collision. This can cause problems in clean-up (for example creating a bullet shield at slow speed means those bullets will not be cleaned up as they will not get to the edge of the screen or hit an enemy) and may confuse gameplay. For the best advice, I'd say that sticking to single or double shots will help in all cases (again).
TL;DR:
Fire as few bullets as possible, aiming as close to the edge of the screen (or the enemy you wish to kill) as possible, to get best performance and (hopefully) enjoyment.
-----------------------------------------------------------
Please do feed back. It's a .jar file so feel free to download whichever "platform" you like.
I hope you enjoy the game.
- Jonno
Ratings
| Coolness | 6% | 87 |
| Overall | 2.27 | 413 |
| Audio | 2.15 | 251 |
| Community | 3.53 | 34 |
| Fun | 2.10 | 396 |
| Graphics | 1.93 | 416 |
| Humor | 2.12 | 185 |
| Innovation | 1.90 | 440 |
| Theme | 2.24 | 419 |
And I wish there was a 'Story' category, because your backstory was really well-written.
Apart from this, the story is very pleasant. I havent seen many games putting so much focus on it. Great job with it =)
Either way, thanks all for the comments on the story; it was actually the first thing I wrote to get a feel for the game before writing the mechanics, and I changed it a few times to suit the theme. Writing is a strong point of mine and I like to put work into giving context to anything I do.
Although basic, it's a good first entry that has everything needed - graphics, sound, gameplay, (community participation) and a story. So well done!
Aiming seemed to be off, by as much as ten degrees at times.
I noticed that if I put the targeting pip on myself and fired, that bullets would start piling up around me.
Lag was ok for the first few levels, then got to unplayable. Probably because of my stationary bullet shield. :)
In retrospect, maybe the bullets should have a constant speed and should disappear and be cleaned up after a certain amount of time.
I am quite disheartened that some people seem to be experiencing un-playability, though; that's one thing I have definitely not experienced.
URL imageFind = this.getClass().getClassLoader().getResource(imref);
If you're loading it from disk every frame, that would be a massive speedkill right there. Just something I noticed, as I said, my java-fu is weak.
Performance hit the roof, no matter how many bullets I fire :D
Problem is, now enemies' and bullets' movements are not updating properly :(
Now onto the bullet placement and collision code and this game will be pretty much fixed.
Thanks everyone!
Yeah, I looked at your code. The problem you're having with the bullets is the thing about the trig with the atan2 and the sin and cos, but also that the last two parameters of constructing an entity is an int which isn't as accurate for this sort of thing as a double would be. Here's my attempt to implement using sin and cos so that you get a constant speed despite the mouse's location:
double t_angle = -Math.atan2(destX-startX, destY-startY) + Math.PI / 2;
entities.add(new EntityBullet(startX + 20, startY + 20, (int) (600 * Math.cos(t_angle)), (int) (600 * Math.sin(t_angle))));
I've got a couple of ideas to make it work a little better (for example make the playing board a square), but right now I'm still very stuck on this one (which is worrying, since I'm supposed to be an achieving student of mechanical mathematics).
Funny fact: I made a very similar game for two players in QuickBasic about 15 years ago ;).
The theme was pretty shoehorned in here too. I hope to see more entries in future :D