So, my game Starlight is pretty close to being done. Here's what I have left to do:
- Lower the file size
- Fix the game-breaking saving glitch
- That's it!
Adventures in File Size
So, I'll be submitting Starlight to the XBox Indie games marketplace. That means a lot of things, but in this context it means that my game can't be any larger than 150 megabytes. This was an especially harsh realization considering that my game was about 270 megs. Whoops! There were two big areas I could improve on: The intro, and backgrounds. The intro to the game is a 89 frame long animation. The animation is comprised of 1200 X 700 .png images. All together, the images added up to about 62 megs. It looked gorgeous, but was absurdly large. The answer to my woes, I hoped, would be converting my flip-book-style animation into a video. After downloading some freeware that could convert images into a video file, I discovered that an .avi version of the intro was about 300 megabytes. Awesome. I did make an interesting discovery, however. After creating a .wmv (windows movie file), the file was only 2 megabytes. Awesome! Also, .wmvs are the preferred file type for XNA game studio projects, which is what I'm using to create Starlight. XNA 3.1 supports video format, which is surprisingly easy to use. You can load up a video in a very similar way that you would load a texture, and the video player has it's own set of easy to use methods. In short, it works very well to cut down the file size, and the only downside is the reduced quality.
I'm also going to be lowering the size of many of the background textures and other large images. The smaller quality should be more than enough to get me bellow 150 megs. The estimate so far is about 80 megabytes, but it might end up being slightly larger.
I hope you don't plan on saving that game
Because you can't. Currently, there is a glitch in Starlight that erases every game save file as soon as you quit. It's a problem. Originally, I had an issue with the save files, where the game would crash every time you tried to do a qicksave. After a series of headaches, I was able to figure out that the problem stemmed from trying to serialize booleans, of all things. The problem was resolved when I simply changed all booleans to integers, and read the variables as 0 and 1 instead of true and false. Simple solution. However, after adding some more arrays of integers to the save data structure, the problem reemerged in full force. I have yet to figure out what is causing it this time, but to get around the issue temporarily, I added try & catch blocks, which simply put "catch" the error and erase all the data to prevent a crash. Seeing as how people may want to save their games, I'll get to work debugging this issue.
There are still a few roadblocks, but the game is very near completion. I'll keep working on it, and try to release more information about the game (trailers, website, etc.) when I'm able. Thanks!