AirRaid - A Blitz Clone

A Small Blitz Clone that I’ve written in the space of about 4 Hours So Enjoy


That’s pretty impressive for 4 hours of work. I played it on ProjectABE here >

The game has plenty of free program space left. Why use boot() instead of begin()?


10 cents because it is annoying during development and he did forgot to take it out. :smirk:


I am planning to add a Soundtrack to it aswell as a few other mechanics.

4 hours was a guestimate I started the project at 0:34 and the game was playable at around 3:30

I kinda made this project at a whim because I saw a request for it from @mmac78

1 Like

Wow!! Can’t wait to see what it’s like :sunglasses:

I played it on the emulator. Pretty slick. I like it.

I like the simplicity of it.

There’s a couple of formatting oddities, but that’s to be expected with something made in ~3-4 hours - no time to polish. (Bonus points for using enum class instead of a regular enum or #defines.)

Oh dear, @filmote’s "Enums.h that’s actually more than just enums" habit is spreading.


Whenever I include diagnostics or other code intended only for development, I add a keyword (for me it’s TODO) to the comments. Then, before release, I do a global search for TODO and clean them up. E.g.:

//  begin();
  boot(); // TODO replace this and flashlight() with begin() before release
  flashlight(); // " " "

And if I happen to forget to do the clean up or miss something, the intent is obvious and someone may remind me about it.

1 Like

For what it’s worth, one of the reasons I prefer boot is that it doesn’t blind me with the LED when I turn my Arduboy on.


Okay Music and sound effects have been added (With Mute A_Button) aswell as the buildings now taking more of a beaten up look when hit

1 Like

Instead of using bool Audio you could save yourself a byte and use to replace reading Audio and and to replace setting it.

There’s also an that you could replace Audio = !Audio; with, that also handles the turning on and off, so you could save yourself some work.

i.e. change

if (ard.justPressed(A_BUTTON)){
   Audio = !Audio;
   if (Audio){;}else{;}


if (ard.justPressed(A_BUTTON)){

toggle is actually implemented as:

void Arduboy2Audio::toggle()
  if (audio_enabled)

For more insight see Arduboy2Audio.h and Arduboy2Audio.cpp

Or better, see the formatted versions of README and comments in the header files found in the Arduboy2 documentation, where you can also view the source code.

Start at the Audio control functions section of the Main Page.

I prefer to just read the source, I’m much more used to it.

(And I know @Dreamer2345’s fairly experienced, so I assumed he wouldn’t mind seeing the source rather than the ‘pretty’ version.)

1 Like

a function dump would be nice wait is the source listed on there?

1 Like

You can view all the source in the formatted documentation.

That’s kind of what headers are, but admittedly there’s a lot of comment between the functions, in which case the doxygen might well be better suited because it does list the functions in a simpler way:

(Personally I don’t mind scrolling past the comment blocks, as I said before, it’s what I’m used to.)

1 Like

If you view the source in the formatted documentation, there are no comment blocks to scroll past for documented functions. Doxygen strips the doxygen formatted comments from the header files in the included source listings.

Even so, I prefer github’s interface and working with the code as code rather than with all the doxygen stuff floating around it.

To get to the source from doxygen I have to find the files in the ‘files’ tab and after selecting the file click “Go to the source code of this file.” instead of just navigating the file list and clicking to read the source.
I actually prefer not having all the generated stuff and just working with the raw code rather than an abstraction of the code’s contents.

The only doxygen feature I find truly useful is the dependency graph.

That’s the last I’m going to say on the matter because this is supposed to the the “AirRaid - A Blitz Clone” thread, not the “Which is better for understanding Arduboy2, raw source or Doxygen documentation?” thread, and this discussion is doing nothing but distracting from @Dreamer2345’s game.