Mini Rogue [Unofficial Game Jam 4]


(Simon) #42

New Release!

Features include:

  • as per the original game, there is a skill test on the Event Card. If you are skilled enough you get to choose between three rewards!
  • a new scoring screen at the end of the game. Can you beat your previous score or achieve a perfect score?
  • high scores are stored for each gaming level. (Unfortunately, your old scores will be lost if you upgrade to this version).
  • updated graphics. Look for flickering flames and blinking eyes …
  • randomly generated music, thanks to @uXe

(Scott R) #43

That’s my weekend sorted (least once this flipping money pit of a chicken shed is finished).
Great work guys it’s always cool to see more awesome


(Simon) #44

Must confess - we added some more graphics into the game but unfortunately the music couldn’t fit. If someone can find a mere 188 bytes I can put it back in!

@uXe @Keyboard_Camper @Pharap feel like a challenge?


(Matt) #45

I was able to get 212 bytes saved by not using Sprites::drawOverwrite and instead basically using the drawBitmap from ardBitmap. Since all your draw calls involve frame zero and positive x and y, you can remove a few if checks and the mask related code from the method.

Oh and this is on 1.8.5. 1.8.6 produces a larger binary for me for some reason.

Although I broke renderPlayerDead, even still, feels like this might be doable with some more investigation


(Simon) #46

You my friend are a champion …

I am already using SpritesB everywhere else - including the drawOverwrite function with frame indexes. Swapping out the missed ones saved 518 bytes.

I must have simply missed them.

Repo updated!


(Matt) #47

ah ha, even better :slight_smile: now let’s hear that music.


(Simon) #48

Its in … Don’t tell @Vampirics but I have 330 bytes left over. He will want to add some more graphics!!!


(Matt) #49

Does the game not enable toggling sound? Maybe hold down a button combo to toggle on/off?


(Simon) #50

No but the standard Arduboy function still works.

As you power up the arduboy hold and keep the B button depressed - the LED will light up as blue. While holding the B button press up for sound or down for no sound and then release the B button. The LED will flash green as you turn on the sound and red as you turn it off.

Maybe I can use the 330 bytes for a sound toggle? Say, B button on the title screen?


(Matt) #51

oh nice, I didn’t know you could do that. If you can’t find a better use for the 330 bytes, a toggle on the main menu would be a nice touch. But if you do find a better use, maybe just add a note about the startup method to the top post for newbs like me.


#52

Glad this turned out to be an easy get! :slight_smile:

But in the interests of sound “paying its own way”, I managed to save another 186 bytes by using @Mr.Blinky’s optimised version of wiring.c:

https://github.com/MrBlinky/Arduboy-core/blob/master/cores/arduboy/wiring.c

and then also adding in some #ifndef SOUND conditions so that wiring.c doesn’t bother setting Timer values that are going to be overwritten by the game anyway…

Let me know if you want a PR for this??


(Simon) #53

PR away … I know that @vampirics wants the space.

Thanks


(Simon) #54

I compiled it and only saved 114 bytes. Is the savings dependent on anything else - Arduino library for instance?

Anyhow merged it in and added a sound switch on the title screen. Press the B Button to toggle the sound on or off - the setting is not saved back to the EEPROM (should it be?) so next time you turn on the Arduboy or load a new sketch it will be back to the original setting.

@city41 just for you.

ArduboyRecording


#55

I had to delete ‘#define SOUND’ from Enums.h and put in into Game.h for it to apply inside of wiring.c - there’s probably a better way to do that!

Looks like one of your commits put it back in to Enums.h again though?


(Simon) #56

OK … I have moved the code to a new location - a GitHub organisation called Press-Play-On-Tape

New location:

Source code can be found here > https://github.com/Press-Play-On-Tape/MiniRogue

HEX file can be found here > https://github.com/Press-Play-On-Tape/MiniRogue/tree/master/distributable


(Simon) #57

Not intentionally … I had a merge conflict and (obviously) took the wrong option … fixing it now.


#58

…make that 86 bytes! :confounded:

100 bytes of what I thought were savings, turned out to be me clobbering the hpISR ‘randomising’ element… have made another PR!


#59

I’ve optimized wiring.c a bit more but hadn’t updated the repo yet. It will save a few more bytes. Not sure how many as I loast track :joy:

Note that with this version you can enter the bootloader by pressing UP+DOWN for ~1.5seconds instead of LEFT+UP+A+B for 3 seconds


#60

That gained back another 44 bytes - thanks @Mr.Blinky! :heart_eyes:


(Simon) #61

Awesome! At this rate we might be able to scratch up enough savings to add the Dungeon Keys variant of the game …