Roku development IV: resolution
Right now, the Carter Jones Adventures is running great on my little Roku device! It is actually running at 60FPS and that is exactly how it is intended!
However, I did have to switch to lower resolution mode to make this happen. As it turns out, the Roku is not extremely powerful when it comes to graphics, and also the memory is pretty optimized for the specific purposes that the device was built for.
You see, the Carter Jones Adventures contains two sets of graphics. One high resolution library and one low resolution library, all the handmade drawings are drawn at high resolution and that is what you will see on for example an ipad 2. For the lower power devices there is a low resolution library that is half the resolution of the original graphics.
Now, there are lots of different resolutions and the way we cope with that is really simple: the levels are all tile-based so when we encounter a resolution where 20 tiles will fit on the screen, we draw 20. If there is just room for 16, we will draw 16. So devices with a bigger screen will usually see more of the level in advance.
Also, there are devices that don’t allow us enough memory to load all the graphics, the usual effect when trying to load the high resolution graphics is that the application will crash before even starting. My solution in these situations is to load the low resolution graphics (=less memory required) and upscale them (to 200% usually) to make them fill the screen. The Ipad 1 is in this category, and so is (unfortunately) the Roku.
As I mentioned, the game is now fully playable on the Roku which is really cool! What is left is some minor tweaking (mapping the right keys to the user actions), removing some unused controls (touch controls are still configurable, sound is still adjustable in the UI but Roku does not allow code to change volume etc) and a lot of game testing!