Space Fighter - a space shooter

Shooter_Space Fighter_Space Fighter.hex

Description

A game similar to [Stellar Impact] (Stellar Impact - A Space Shoot 'Em Up!) but not as finished and nice as Stellar Impact. :smiley:

Instructions

You are out in space, flying in your beautiful, handcrafted spaceship but there are adversarial ships coming at you! Shoot them for points or avoid them while they fly away. Your bullets are limited and you have less lives than a cat!

Download

The source can be found on Github. You need to have a systemwide installation of the Arduboy library in order to compile this. See this page for instructions.
If you are looking for a good example to start developing your own game, it might be better to look elsewhere for now.
Get the code by entering:
git clone https://github.com/PolygonAndPixel/SpaceFighter

Screenshots

Notes

This game has not been tested with the developer kit. A lot of memory is used.
In order to upload a new sketch, press the left button and the up button while
switching the arduboy on or else the upload will most likely fail.
This game is still in development and there are a lot of bugs and missing features
(see below). I am going to tackle the bugs first if feasible and then add features.

Known bugs

  • Explosions might occur when starting a new game
  • Collisions are calculated very poorly

Missing features

  • Ships only have limited movements
  • Only one kind of bullet is available
  • There are no upgrades for the ship
  • There are no levels or at least alternations of enemies. They just spawn randomly
  • There are no boss battles
  • There are no different backgrounds
  • There is no sound (but there actually is no sound in space. I suppose it still counts as a missing feature)
  • The pace of the game needs calibration
  • After a while you can spam bullets at your enemies if you survive long enough
  • The player has no feedback when he is invincible (you just don’t know, you can’t be hit)
  • The player could need lifepoints, so he/she doesn’t loose all the upgrades after one hit

Updates

16.05.16

  • Increased the player’s speed.
  • Added movements to the enemies.
  • Altered the shooting mechanics for the player.

17.05.16

  • Changed compatibility to Arduboy 1.1

25.02.18

  • Changed compatibility to Arduboy2 (v4.0.2)
  • Enemies now have lifepoints
  • Changed speed of player’s bullets
  • Some bugs with explosions should not occur anymore

26.02.18

  • Fixed a bug with falsely drawn explosions
  • Fixed a bug where bullets disappear
  • Fixed a bug where the player couldn’t shoot anymore after a while
  • Added supplies that are dropped by ships (look out for little crosses)
  • Supplies can
    • increase the score
    • increase your speed
    • increase the speed of your bullets
    • change the way you fire (double bullets, diagonal, etc. 5 different ways to shoot now)
    • give you an extra life
    • make you invincible for a short time
    • decrease the cooldown for firing
    • increase the maximum amount of bullets you can have at once

27.02.18

  • Added two more enemies
  • Enemies now can shoot two bullets in diagonal
  • Calibrated the pace of the game a bit
  • Calibrated enemies (speed, lifepoints, number of bullets)
  • Player now has lifepoints and can survive several hits depending on the enemy

03.03.18

  • Added a boss battle every time the player gains 100 points
  • The enemies’ lifepoints scale with the player’s score
  • The player can shoot slightly faster from the beginning

06.03.18

  • Saved some memory by removing certain variables
  • Added a lifebar for the player since he/she now can get hit multiple times (depending on the enemy)
  • Added a highscore for the player
2 Likes

nice game and all, but it wont compile properly.You need to fix something with the abprinter.Good luck

Thanks. I shouldn’t use a link to the library if I am using a systemwide installation.

Hey there! Thanks for referencing my game, made me feel super fuzzy inside.
You’ve got a really cool base game here, but it needs a lot of polish. Controls currently feel a bit slow and sticky, and I’m not sure if it’s intentional but the player ship, on my device, can only have two bullets on screen at a time. With them firing so close together, that makes it really difficult to hit a lot of stuff.
I like your art a lot - much better than my horrible blobs.
I think your EEPROM addresses are impeaching on something that already exists, too, possibly that 3-in-1 puzzle pack? I already have scores listed and a couple of them are displaying real weird. It’s a pain but try and pick somewhere arbitrary - the location I picked for stellar impact is a good 30 bytes away from any other game I’ve seen.

Overall though, this is really cool. Feel free to check out Stellar Impact’s code/hit me up if you need help implementing anything in particular: it’s not particularly clean code but it should be readable enough.

1 Like

Thanks for your interest! I did not have too much time to code but I believe I can work a little bit every two days or so. After implementing most of the game (e.g. different behavior for each enemy, bigger enemies etc.), I am going to polish a lot.
The highscore code is quite old code I once used for my developer kit. I just need to update it but the highscore has a low priority at the moment.
Shooting just two bullets at a time is intentional. I’d like to implement upgrades for shooting faster and more bullets. I also put more space between two bullets. After cleaning my code a bit, I am going to update my repository.

You shouldn’t base your game on the version of the Ardruboy library in the GitHub master branch. This version is still under development. It hasn’t yet been released and may change.

You should modify your game to work with the current library, which is installed as instructed in Step 2 of the Quick Start Guide.

Still a problem with the AbPrinter .Even when I have the arduboy library installed it will still not work. A next step is try to make the game work with out the arduboy library.

No. As I said above, the next step is to make it work with the currently released Arduboy library.

In SpaceFighter.ino remove line 61:
AbPrinter text(arduboy);

In SpaceFighter.ino, collision.cpp and draw.cpp change all
text.print
to
arduboy.print

and change all
text.setCursor
to
arduboy.setCursor

thanks scott i will try it out now

Don’t worry. I will use the released library and update my code accordingly after work today.
###Edit:
I updated the code. It works now with Arduboy 1.1 but everything is more slowly than before. Did the clock speed change?

The 1.1 library has a bug in the frame rate code. This is fixed in the development version on GitHub. You probably have to adjust your timings.

1 Like

Well, I just used the fix in the link. I don’t see the point in developing a game according to a bug and this way my game will be usable with the next version. The game is not finished either.

A new version of the library (E.g. V1.1.1) probably should have been released as soon as the frame rate fix was applied.

I suspect many other games will experience similar timing problems, but since they will have been developed with the bug in effect, they will have to be slowed down, which is likely easier than having to speed them up.

yay it will compile properly! thanks for releasing the new version!

I needed some timeout from Fortran, so I decided to continue my work on this. See changelog above to see what’s new and stick around. :slight_smile:

1 Like

Fortran?!?. …

Well this game will be rotated in to my arduboy. Love this game genre.

I’m currently stuck with Fortran at work. The last time I had to work with Fortran, I ordered the Arduboy. :smiley:

What platform is that on? (I was an RPG programmer once - and in this case RPG has nothing to do with games)

1 Like

You’ve not played TF2, have you?

(I’m assuming that’s an RPG.)
(Oddly enough I’m not very good with identifying guns, tanks or anything millitary.)

Nope … I had to google it to understand the pic.