Hello everyone! I’ve been working on a project and I’ve reached the point that I wanted to share. The reason for sharing is unfortunately that I’m going to have to change what the game is again and strip parts out to get a game that fits in memory.
My game is Voyage Home. A Space Rogue-like where the objective is to find your way home, uphold the values of the Federation by assisting planets in need, fending off those who would harm you and of course upgrading your ship! Ambitious but I thought I could boil the mechanics down to Arduboy style. Simple text choices, re-use art, randomly generated maps and upgrades simply being upping the hit points of a ship system. I believe I still might be able to but it is going to require me to do more work and be more clever.
So! I ran out of ProgMem space! I’ve learned in the last few weeks that 32KB goes very very fast. At first I thought I could do a turn based RPG. But before I even got to the point where I put “AI” in or Text for the diplomacy part of the game, I was going to run out of memory. So I dumped a lot of graphics, menus and decided to go with an Action approach.
My second approach was going to be reminiscent of the ship battle system in Star Trek The Next Generation for SNES and Sega Genesis. During this process I found a lot of “Devil in the details” issues. After putting weapons in, I found that hitting the other ship was hard, so I wrote some code so that torpedos could “track”. The AI was pretty simple but even then, a KB here, 2 KB there and you’re out of space. When I stopped to take the final video to make this post I was at 28,546 KB out of 28,672 KB. My last ditch to make it playable was to just make it so that after defeating all the enemies, you went to a new sector with more enemies and just last as long as you can. Currently, when I try to generate a new “sector”, the game crashes. I’m sure I have a bug but what I find interesting is that if I remove the star simulation (The stars in the background), to free up some space, the crash goes away. I know it’s probably some bad memory handling and I’m looking into it.
I’m not an expert C++ coder but I’ve been coding in higher level languages for years. I probably did something very inefficiently and I’m going to get a friend to review the code and help me out. This project refreshed a lot for me and instilled hope that I knew what I was doing. I learned a bit about optimizing code too. This is only my second Arduboy project and I learned that while I can run at 60 FPS, my ambition was larger than the allowed memory size. I’ve garnered a greater respect for old console devs who did more with less and wrote their games in assembly.
I’ve learned from this and after I invest some time in another project, I’ll be back…
I utilized my tool Image2Arduboy to convert images I made in Photoshop into Hex Byte Arrays that I used in the game. (http://www.gamedesignfu.com/#/portfolio/portfolio/20_image2arduboy/)