Game - Space Quarth

(Jan) #1


I made (my first) game called “Space Quarth”.

If you set the “SAVE” option in the game’s dashboard, the game automatically saves every time you pause. If you are afraid of writing too many times to your EEPROM because you pause the game very often, please disable this option. Maybe in a later Version I will change this, so you can choose to save the game when you paused.

I didn’t release the source code yet, I want to clean it up a little. When It is done you will find the source code here:

You can download a compiled Version and read the manual here:

Have fun, I hope you enjoy it, there is a surprise if you make it through all 8 Levels.

Play in Browser (This Project is very cool, thanks FManga!!!):

(Holmes) #2

Wow! You put a lot of work into this! Mind if I put it onto my Arduboy Manager repo?

Also, when it comes to reading and writing EEPROM, you really don’t have to ever worry about writing ‘too many times.’ It’s very safe.

(Jan) #3

I wrode you an EMail 30 minutes ago :wink:

(Simon) #4

Great looking game and video!

(Matt) #5

Shame you haven’t made the source available

(Felipe Manga) #6

I love the level of polish on this game.
I highly recomend playing it with a mechanical keyboard at work! :stuck_out_tongue_closed_eyes:
ArduboyRecording (2)

(Jan) #7

Now I released the source, sorry for the delay. I wanted to clean it up a little and make it compilable with the Arduino IDE. I did’nt write it with this IDE.

But, what ever, I can clean it up another day, I loaded my source to github like it is.

(Scott) #8

This game will compile in the Arduino IDE if you rename main.cpp to SpaceQuarth.ino and put it and the other files in a folder named SpaceQuarth. You can delete files Makefile and hardware/pins_ardiunino.h and the hardware folder, if you wish.

(Scott) #9

It’s better to use EEPROM.update() instead of EEPROM.write() to avoid unnecessary writes if the value hasn’t changed.

(Jan) #10


Thank you very much! The use of EEPROM. uptate () is usually better, I know. But in 3 of the 4 cases where I use this, there is no way that it is the same value I want to write. And the 4th case is after you have played through the last level of the game for the second time it could be the same value. I think to save some storage space, it’s okay to write it there again…

(Jan) #11

Now you can compile it with the Arduino IDE, thanks for your help.

And I changed write to update, because I thought about these EEPROM thing: Yes, it is technically impossible that the program writes the same value in the EEPROM again and again in most cases, but if someone makes a mistake in this code it is easily possible to write the same value again and again while the screen is refeshing. So, you are right, it’s always better to have a last EEPROM - defense - line.

(Jan) #12

I updated to Version 1.1. Now you can choose the Game Mode Easy / Normal or Hard and you see the Version Number in the Dashboard.

If you play it in a Browser, please empty your Browser cache to get the new Version.

(Jan) #13

I updated to Version 1.2. This is a Bugfix Version.

  • When you set Normal or Hard mode, the mode was resettet every time you reboot, but it should be saved in EEPROM. This works now.

  • I realized, that I used too much RAM. I have reduced memory usage in the StarField class by storing the speed and y coordinate of a star in just one uint8_t variable. Now everything seems to be working.