Creating EVADE, A Side Scrolling Shooter Game for Arduboy - Modus Create

Hi there - we recently published another blog entry talking about our learning from building Evade, our side scroller for Arduboy.

We’ll publish more on this soon!


Note that the original Arduboy library is no longer considered to be the “standard” library for new development. The Arduboy2 library is.

1 Like

We used the original Arduboy library as one of our trade offs because of some of the things we wanted to achieve with sound. I think @JayGarcia will be elaborating on that in a future post in this series.

1 Like

Thanks Scott,

At the time the game was written, Arduboy2 was still considered experimental. =)

You can do audio with Arduboy2 by using ArduboyTones O.o

Not in the same way. Tones was rather limited for the scope of the sound I was looking to craft w/ the game.

I will write about my findings in an article for the series.

I did this screencast quickly b/c people were asking me about my workflow for composing music for the game.


With Arduboy2, the equivalent for sound functions available in the original Arduboy library is the ArduboyPlaytune library.

Just an observation: The stage1MusicDoubleTrack and bossMusicSingleTrack music arrays contain notes for 3 tone generators but the playScore() function only handles 2 generators, so you’ve got wasted notes in those scores. It looks like just one note at the end of each score though, so it’s not a big deal.

=) I noticed that when evaluating Arduboy 2, but with the short timeline, we made a decision to stick with Arduboy. – Keep in mind that we went to “production” 1st week of December 2016.

Great observation about the notes. This is one of those “hmm… that shouldn’t really work” type moments.

Quick back story:
While developing the game, i was noticing that the platform was restarting music way too early. That is, the last note length wasn’t being honored by PlaytTunes. So… The dirty hack was to throw in an extra 3rd note, and somehow that got the music to sync better and not get re-triggered too early.

– Strangely enough, i had issues where notes were being dropped from the score as well.

It’s visible in the committed stage1.mid file, IIRC.

1 Like

I remember having some problems with encoding the duration of the last note. My solution was to edit the raw encoded variable. Although I was unable to put a delay, or a mute at the end of the file because it would have required an additional note at the end of the track. But it looks like this method here is a solution!

1 Like

If I get a chance, I’ll look at this problem.

1 Like

Before I ask you to even do that, please allow me to reproduce the problem and I’ll come to you w/ the test case. Deal? :slight_smile: