23 Seconds

Hey guys,

since last year was really fun, I decided to enter the contest again and well, here’s my game:
23 Seconds

It’s a shoot’em up with the only difference, that you can’t really shoot. You can only bomb. And your bomb needs 23 seconds to reload.

Highscore List:

  1. Nate - 437 620
  2. jimeowan - 144 560
    (Developer’s score: 434 060)

Arrows: Move
X/Space: Bomb
Z/Y: Speed up
Left Shift: Slow down

You can score by destroying as many enemies as possible at once, grazing bullets and collecting items. Right now I don’t have much space less, but I haven’t really tried to compress it further, therefore I should be able to get a couple of bytes more out of it. So I’m open to any feedback and suggestions to improve it :slight_smile:

A dodge’em up?
Looks pretty, but I’d rather have a countdown to the next bomb than an FPS counter!

Thanks for the feedback. Especially because I couldn’t decide whether or not I should include such a countdown and thus waited to see what other people think^^ I’ve added it now.

And yes, dodg’em up/dodge sim describes it pretty well.

That was really fun, great job :slight_smile:

When I die I teleport back to the starting point and am straight back in the game, with no time to prepare. A small explosion animation and a second of invulnerability, indicated by transparency, is the most important missing item of polish.

If you’ve got a few bytes left after that, some kind of colour change to the bullets I’ve grazed would be worth adding. That way I get feedback on the fact that something is happening (if I haven’t read the instructions - because, let’s face it, most people don’t); and I know that I’ve scored the points if I have read the instructions (because, again, no-one looks up at the corner at their score when they need to be looking at the bullets passing close to their ship).

Many thanks for the comments :slight_smile:

Oh, right, I actually made the ship invincible for 2 seconds but forgot to show it. It’s now blinking during that time.

And I was also able to add some particles flying away if you graze a bullet.

Very cool shoot’em up, in this modern kind with an overwhelming number of enemy missiles. Your limitation of the player’s offensive capabilities is original and interesting too.

I just don’t know what to think about the contrast between the graphics style of the ships, which is clearly inspired by the very old 8 bit shoot’em up games, and the style of the missiles, which is much more 16 bit. If it had been my game, I would have certainly chosen the 8 bit style for all graphics, but maybe your choice was better after all…

At first the graphics for the ships were only placeholders and I wanted to give those too a 16-Bit look later. But after some time I thought that they didn’t look that bad after all and so I decided that it might be an interesting mix, to have 8-Bit ships with a 16-Bit background and bullets.

Besides, the ship simply reminded me too much of Space Invaders (which I love), so I just couldn’t part with it^^

I have nothing to add, except that I had a lot of fun playing!
You seem to have added all of the suggestions given.
High score: 172,530

Big help was noticing that it’s the green dot, the center of the ship, that is used for collision detection. Nice move, I think, on multiple levels. I’m sure it simplifies collision detection, and I can use this spot, instead of my wings, while attempting to dodge the pink pearls of death. (Any specific symbolism in this choice? :wink: )

SOMETIMES it seems like the countdown hits 0 and I press the space bar and nothing happens, and I have to press it again. Have you tested, are you sure the space bar is active as soon as the countdown changes? It could be, in the heat of battle, that I anticipate slightly, and this is the cause. [NOT!]

OK – I tried something different. I now hold down the space bar for the entirety of the game, starting as soon as the first ship has unloaded. Why not? This way I never miss a 0. The more bombs in a given amount of time, for the most part, the higher the score, right? In doing so, I see that there is about a 1/4 second delay from the countdown hitting 0 to the start of the life-saving bomb sweep. Any chance of eliminating that delay? (Maybe it’s like a rocket that initiates at 0, but it takes a moment for the boosters to reach full strength…)

I also hold down the fast key, and only remove it during the ‘touchier’ dodging moves. I never use the slow key. Seems to work pretty well this way. Main way I get trapped is if there is a lot going on and I’m reluctant to move (due to the cross-traffic) after a “heat-seeking” mass has been released. Also, using a diagonal (use two arrow keys) seems to be a way to keep scarfing up blues, getting “seconds” as it were, as it increases one’s speed on the board.

Very fun. Yet another game that needs sound. There seems to be a near universal need for tools to help with sound for these contests. I’m going to have to ponder this. (It occurs to me, perhaps one can cheaply bootstrap/build some “interesting” wavetables for cue use, rather than spending precious bytes importing resources…hmmm.)

Oh, you’re right, I actually had a wrong number in the code, so that the shown countdown was half a second ahead of the actual countdown. It’s fixed now, thanks.

Releasing a bomb immediately is an ineresting tactic, because I always tried to herd as many enemies as possible and thus make use of the multiplier. Your method has the advantage that it’s easier to survive, but in average you get less points per enemy because the multiplier isn’t used as much (my highscore’s 277,800 by the way).

And to explain the multiplier a little bit further: For every bomb you release, the multiplier starts at 1. A single enemy is worth only 100 points. But with every enemy you destroy your multiplier gets doubled (this goes up to 64). So starting from the 7th enemy you destroy at once, you get 6400 points for every additional one.

I’d also like to have sound in it, but unfortunately I don’t have enough space left. Besides I got to admit, that I have never done anything with generated sounds yet^^

The gameplay is really same with Touhou project. I like this.

I have so far spent approximately 30 hours trying to produce a snare drum patch and I can’t get it to sound “open” enough at the onset. (The pink noise in the tail is quite efficient, thanks to some research written up at http://home.earthlink.net/~ltrammell/tech/pinkalg.htm )

Very cool game. :slight_smile: I was killing it on my third try with 410,160 points! …and then the game froze:


Game doesn’t continue, doesn’t respond to input, alt+tab and back results in a white applet. Console had this:

For my tactics, I fly toward the top of the screen when I bomb so that I can fly downwards to maximize the number of blue boxes I get. Also try to bomb when enemies are in a cluster, so you can get more of the blue boxes. I like the blue boxes affecting score more than the number of enemies killed when bombing. Also, use the whole screen. No enemies? Fly near the top so enemies target you there. Then you can fly down and use the whole bottom area for evasion. Also, don’t move too much, only enough to get out of the way. You want to maximize the number of shots in areas you can’t go. Balance this with the shots from enemies that don’t target, as you often need to take their pattern into account to get through.

Wow, you Sir, have my respect. You actually caused an overflow on my bullet stack… which was made to hold 2000 bullets! I didn’t expect anyone to survive 2000 bullets at once on the screen…
Well, I’ve increased the array size to 8000 now. I hope you won’t freeze it again :wink:

I love the Touhou games, so of course that was an inspiration^^

Why don’t you use an ArrayList or LinkedList?

As someone who’s mostly programming in C++ (I hope you can say that on this forum^^), I’m used to do things on a lower level and as memory efficient as possible, so I prefer to use arrays instead of ArrayLists, etc. (although with a simple game like this there would of course be practically no differences in the performance, but well, it’s a habit)

With enough testing things like that shouldn’t happen. But in this case I just estimated the number at the beginning and later never tested how close you could actually get to it. My fault^^

Ah, LinkedList, I don’t think so. ArrayList ought to be just fine though. Even sticking with a fixed array would be fine, as long as there’s a check against the hard cap on the number of bullets. Never assume people won’t find a way past your limits :slight_smile:

It sounds like he’s removing and adding a lot of bullets. With ArrayList, performance would drop with all the item shifting.

I feel robbed, my score should have been even higher than 400k! :stuck_out_tongue: Glad I helped find a bug though. :slight_smile:

Another try:


I lost all three lives in a row, just not enough room to evade for 5 more seconds!

Nice game :slight_smile: