Sprites of the Sky - Another Spritey Game

I’ve been playing with a 1942 clone for a bit, kinda lost interest now…

http://www.newdawnsoftware.com/40hrweb/sots/

Source is available at:

http://forty-hour-dev.dev.java.net

Feedback would be appreciated for feeding into future projects…

Kev

-Startup takes several minutes on my comp (thought it crashed since I only saw a white screen).
-The shoot.wav really hurts (btw it’s ripped from doom isn’t it? ;))
-Was there a reason to use 24bit images? I can easily spot the seams between the tiles.
-Highscore counting is broken… If I complete the test level I can enter my name for HS… then it starts over and keeps my old score… instead of resetting it to zero.
-The speed of the plane is a bit too low.
-The hitbox of the plane is way too big. It’s common in this genre to have a small hitbox for yourself and a “bounding” hitbox for the enemies.
-Hit feedback like flashing is missing.

Other than that it’s nice :slight_smile:

Excellent Feedback!!!

Not quite sure about the startup issue, shouldn’t really… but I’ll look into it.

shoot.wav - yes, from doom :). Is it the first time it loads it, or everytime? Couldn’t work out if Java Sound was caching them for me.

24 bit images - convienience, tile set was just an initial play about. Have since learnt that 256 colours can save me rendering speed, but then I suppose in windowed mode I have no choice.

Plane speeded up - tick
Hitbox reduced - tick

Hit feedback - good idea.

Thanks again, really useful feedback.

Kev

[quote]shoot.wav - yes, from doom :). Is it the first time it loads it, or everytime? Couldn’t work out if Java Sound was caching them for me.
[/quote]
Nah… I ment that it hurt my ears :slight_smile:

Try a not-that-loud-sample… just something wich doesn’t sound like a “BLAM!” (because it get’s annoying after awhile) :wink:

[quote]24 bit images - convienience, tile set was just an initial play about. Have since learnt that 256 colours can save me rendering speed, but then I suppose in windowed mode I have no choice.
[/quote]
256 colors is usually enough for pixelated graphics.

Well… I don’t mean 8bit graphics mode - I mean 256 colors for each tile/sprite set. The display running at 16, 24 or 32bit isn’t a problem, it will get converted in realtime (at no cost).

The benefits of 256cols are sharp graphics (w/o any artifacts thus the seams would be gone) and smaller filesize.


And now something completly different:

Atm you have autofire wich is Ok and definitly better than single fire but there is a nicer way, wich was shown in the newer shoot 'em ups (Gigawing, Mars Matrix, 19XX…):

Instead of on shoot per keypress you fire 4…lets say one shot every 250msecs. That means that you have to press the button once every second to fire all the time. If you press the button faster you can ramp the firerate up to 8 shoots per second (but not more).

I think I would do that with an int array (since boolean is somewhat slow) wich can hold 8 values…


|00000000 <- at the beginning... then I press fire
|10101010 <- that the way it looks now
000|01010 <- 375msecs later... and I press fire again
010|11111 <- and now the ship/plane fires fast

(The ‘|’ is the position of the “pointer” wich get moved one step ahead every 125msecs)

That allows charging (hold 1/2 second for the superblast) without that single shot per keypress problem (wich everyone hates ;)).

Another way to allow charging is simply charge when the player is not shooting - this way you can keep the autofire.

Hi Kevin,

Cool game! Warlock is pretty neat too. I agree with oNyx that the shooter feels a bit slow. Speeding it up would make it more action packed, plus your plane wouldn’t feel like it’s got a stuck rudder. The tiles on the other hand, are just fine. I can’t detect any seams (at least on my monitor). Good work, keep it up! :slight_smile:

EDIT: I forgot to mention, it takes a long time to load on my machine too. It doesn’t seem to be accessing the disk or anything, just hanging there. No idea why that happens.

I’ve just uploaded a slightly faster version, with a new sound effect and smaller bounding box for the player.

I’m not quite sure what the startup slowness is about, but I’ve moved a few bits around…

Not player witht the graphics yet, might take a while and I’m focused elsewhere (will post when I’m further along).

Kev

PS. JBanes, wouldn’t have even got to this stage without learning plenty from GAGE, thanks again for that.

The game seems much better now save for the startup still being slow. BTW, is there any reason why you didn’t use BufferStrategy? The game would run a lot smoother if you did.

[quote] PS. JBanes, wouldn’t have even got to this stage without learning plenty from GAGE, thanks again for that.
[/quote]
My pleasure. :slight_smile: I noticed the GAGE timer and some GAGE-like classes when I was looking at your code. It’s good to know that my work is helping people. :slight_smile:

This makes my coding sound really terrible, but it is actually using a buffer strategy. If you look up in GameFrame from the engine2d package, it hides all the buffer strategy so I don’t have to think about it too much…

At least I think I do… I’m checking again… yep, seems to be. I’d appreciate if you’d take a look just to put my mind at rest :slight_smile:

Kev

Ah, ok. So it’s all carefully hidden away. Looks good to me. :slight_smile:

I can’t start a game on OS X. It just sits there at the title screen playing music at me.

Esc does exit, but Enter does nothing but stop the “press enter” message from blinking.
:frowning:

Coo, sorry about that, does MacOS X report a different key code? The code looks for VK_ENTER… does anyone know if its different of OSX ?

Kev

VK_ENTER should work. It does seem to cause the blinking of the message to stop, so I would guess the problem is with what happens after you press enter.

[quote]I can’t start a game on OS X. It just sits there at the title screen playing music at me.

Esc does exit, but Enter does nothing but stop the “press enter” message from blinking.
:frowning:
[/quote]
The enter button DOES work. He’s got a null pointer exception though. It happens just after one hits enter.

Here is what I got when I ran it from the cli:

this is just after I hit enter
Exception in thread “main” java.lang.NullPointerException
at org.newdawn.shooter.game.Map.renderInitBuffer(Map.java:50)
at org.newdawn.shooter.game.Map.draw(Map.java:82)
at org.newdawn.shooter.game.InGameViewState.draw(InGameViewState.java:123)
at org.newdawn.shooter.game.Game.run(Game.java:92)
at org.newdawn.shooter.game.Game.(Game.java:78)
at org.newdawn.shooter.StartApp.run(StartApp.java:85)
at org.newdawn.shooter.StartApp.(StartApp.java:72)
at org.newdawn.shooter.StartApp.main(StartApp.java:97)

Thanks for this, I look into it… it looks like it might be to do with accelerated graphics on MacOS X. Are accelerated images supported?

Kev

Hey,
Cool Game - yea reminds me of 1942 – the many hours I devoted to that game no the NES.

Looks good so far. You pretty much got the basic elements down for a side shooter.

I feel that its a little too easy - played through the whole thing only to be hit once or twice by a bullet. Especially when you get the weapon powerups. So you might want to have the planes shooting too and make them move around quicker and more eratic (if possible).

Also, I was playing in linux and there is no FullScreenExclusive mode support so you will want to check that first before tying to use it (I got an exception fault when trying full screen).

Well, keep up the good work :wink:

[quote]Nah… I ment that it hurt my ears
[/quote]
Haha! Hurts your ears, huh? The missles sound rather like clicks!

In order for this game to resemble 1942, it has got to speed up ( I mean everything not just the plane, but all enemies, bullets, and maps ). The current speed is just not exciting because it is toooooo slooooooow. Most NES games of the same genre have crazy fast bullets and enemies (they provide a kind of adrenaline rush that i kind of missed in SOTS). Make more enemies on screen and let the health counter progress down faster. I crashed into ten airplanes before I died. ;D Add some power ups and make the enemy airplanes shoot bullets too. But this game is a very good start, just not as good as your Warlock.

Oh by power ups i meant different weapons :smiley:

Thanks for all the feedback :slight_smile:

I had given up on this project, just lost interest, but thanks to you guys… I think I’ll go back and make it better.

Depending on which version you got, the game had a speed increase… maybe I’ll speed it up more.

Too Easy - Yep!!! I’m not very good at these games and its a test level really :slight_smile: I had intended to implement a level designer (and wave designer) but haven’t got round to it. Then you could create your own dastardly levels :slight_smile:

Other planes shooting - They can already, its just not defined for the planes in this one (again it comes back to the level editor).

Good call on the linux check, will add that.

I’ll make it possible to choose difficulty level, and hence speed of the game and the ammount of health you get…

Did 1942 have other weapon powerups other than being able to shoot in multiple directions? I was going to add a bomb so you could take out everything on the screen… but other than that, I’m stumped…

Finally, (sorry for the long post), I’m unable to get SOTS to play at a full frame rate on ym 4MB graphics card work machine. It relies on accelerated graphics. I’m wondering if 4MB isn’t enough to run at 800x600, just a thought…

Any more feedback, answer… ideas… always appreciated…

Kev

No, Mac OS X does not yet support managed images (accelerated images). But that should all happen (or not) behind the scenes… For instance you can use volatile images on Mac OS X… but they aren’t really accelerated.

I never knew that SOTS required graphics acceleration!
I have an ancient 2MB card that doesn’t support any acceleration. I mean it! But SOTS still worked fine in full screen mode.

Coo, nice to know! Wierd tho. Might have to try full screen on werk machine.

Thanks again,

Kev