Page 1 of 1

A hello, some thanks, and a shooter

Posted: Sat Jun 06, 2009 2:16 am
by Flenser
Firstly, some needful licensing disclaimers. The graphics and sounds in this demo are NOT mine, mostly. OpenGameArt.org provided most of the sprites (with particular thanks to Daniel Cook of LostGarden), though I honestly can't remember where I found the ufo ani-GIF that I hacked into a PNG. The sounds came from a website I Googled on 'free wav'. Unfortunately, these sources aren't in my browser history anymore. This is not a demo intended for release, so please seek appropriate attribution if you find use for any of the included media. Also, I am indebted to Clemens Hackenberg for his simple parallax demo (from this site) for getting me started.

Secondly, a little background (this is the 'hello'). I haven't done game programming since the C64 was still considered fashionable. I've been in and out of IT in my career, but never professionally a programmer. My son, growing up with video games and now nearly 12, is starting to want to create his own. So I found Love2D through searching for an introductory engine for him - something quick to start, easy to get some graphics on the screen (the way I remember starting to program), and yet in a modern paradigm. Something he won't waste his time learning; all too many pre-coded systems are educational walled gardens. Attaching an extensible scripting language to a backend containing a hardware-graphics engine is sheer genius (that's the 'thanks').

Anyway, we spent an interesting enough afternoon coding a simple 'Snake' routine, in which he learned some Official Programming Swear Words, and I learned that I couldn't even do 2D arrays in this new-fangled stuff called 'Lua' (I don't play WoW, and only found out afterwards that's where everyone else knows it from). So I settled in to learn a bit more, by writing a shmup. To be honest, the code is rubbish. I upload it, not to show what can be done WELL, but to show what can be done even BADLY. And because there aren't enough shmups here (but then, there aren't enough shmups anywhere, anymore).

I'm hoping now to use some of the OO tricks from the official Lua site to build a proper game on an object inheritance model. That, necessarily, will be a longer project. But it will give me the option to introduce a wider variety of weapons systems. And there's nothing wrong with more dakka...

(This is the 'shooter')
Control with the mouse, fire with the left-button. Not-firing doesn't give any benefit (I'm toying with the idea of a 'fire or recharge shield' option for the next game, but in this one just keep shooting - it autofires).
There's only two kinds of enemy - normal UFOs and boss UFOs. Kill all the normal UFOs in a wave (first wave will be 25) to reach the boss. Kill the boss to get a power-up, and advance to the next wave. It will be a little harder.
Power-ups are dropped randomly, from a list of five:
1) Red - triple damage
2) Yellow - rapid fire
3) Green - adds homing missiles
4) Blue - force field
5) Purple - double score
The blue force field applies a small sideways push to UFO bombs. It's enough to keep you safe from normal UFOs' bombs if you move gently, but provides limited protection from boss bombs and sudden movements, and none at all from the UFOs themselves (boss or otherwise).
The purple power-up might not seem a great deal, but:
a) when you die, the highest power-up is lost, so having the purple 'protects' your force field or weapons, and;
b) you get an extra life every hundred thousand points, and;
c) you're only playing for points anyway :-)
You get a points bonus for killing an entire wave without dying, and for collecting a power-up you already have (a consolation prize from the random number generator).
High scores are not saved to disk. Any time you exit and re-start the program, the initial high score will be zero. The game is not intended to be difficult, so expect scores in the million-plus range. Beyond that, the thing becomes boring anyway. I've been to about a million and a half before having to go out - I can quite imagine that much higher is possible.

I hope that, if you choose to download it, it provides some enjoyment. I look forward to coming back with a proper game some time in the next month or so (work and family commitments permitting). And I re-state my thanks to the Love2D developers for a thoroughly enjoyable game programming environment.

P.S.

It got called 'Alien Presence' after I started adding sounds. Hence, 'Presence.love'. And I've had to remove the higher-resolution boss image to fit under the 512Kb upload limit - not that it makes any significant difference. If anyone is inclined to respond to this post, there are two issues I'm particularly interested in:
1) Performance on different systems, and;
2) Whether the random number generator starts to seem predictable.

P.P.S.

Screenshot:
Screenshot of Alien Presence progressive shooter demo
Screenshot of Alien Presence progressive shooter demo
Presence.jpg (35.36 KiB) Viewed 8267 times

Re: A hello, some thanks, and a shooter

Posted: Sat Jun 06, 2009 6:02 am
by bartbes
Looks nice, and looks well done (from the player-side, at least), though somehow I didn't respawn?

Re: A hello, some thanks, and a shooter

Posted: Sun Jun 07, 2009 4:47 pm
by sauer2
@bartbes: with right click
@Flenser: Pretty nice game!

Re: A hello, some thanks, and a shooter

Posted: Sun Jun 07, 2009 5:33 pm
by bartbes
Right... only now I saw that flashing by.

Re: A hello, some thanks, and a shooter

Posted: Sun Jul 12, 2009 7:16 pm
by Arthurio
Great game! :)
Now it just needs online stats ;)

Btw ... it does get quite ridiculous around the 1m score level... sometimes I could swear the enemies/sec rate was higher than my bullets/sec :)

Re: A hello, some thanks, and a shooter

Posted: Sun Jul 12, 2009 11:20 pm
by Borsty
Nice little game there, had some fun with it :D