Multiple Screen Res, the Droid and Tattoo

So, it’s here at last. We have users with bigger screens (Droid at 800x480) and smaller screens (Tattoo at 320x240). How are you handling it?

I see that the SDK 2.0 has support for different sets of drawables for different screen reses. Which seems a bit half assed to me, however I can see this working for some stuff.

Some questions:

  1. If you’re already using GL, has anyone just scaled their context to the current screen res. Does that work ok (outside of mapping events)? How does it look? Does scaling down look awful?

  2. In some of the Android demos I see that they’ve not scaled graphics but made less/more of the viewport visible on different screen resolutions. Does this mean that on the droid for instance the touch detection is much more accurate as well? Otherwise, given that the screens are basically the same physical size, the area to touch with your finger would be that much smaller?

  3. Anyone mapped pixel based events between resolutions yet?

Any other problems comes up?

Kev

Interesting question Kev - would also love to hear about peoples experiences. I got feedback from one Droid user saying that the game ran fine. As the terrain is auto-generated it just automatically generates that much more I guess. But will have to give it a seriuos look when I get around to it.

I also didn’t have to do anything with the scaling of my games. They apparently just run fine on the Droid.

I don’t support lower resolutions like the Tattoo.

Presumably it’s noting the android version and scaling the game to fit the device. However, for my RPG I think it’d be quite nice on a bigger resolution to be able to see more of the dungeon. Just wondering whether this would really work given your fingers are the same size and the tiles you need to touch would be physically smaller.

Anyone got a droid to test with?

Kev

I’ve blogged up what I was thinking:

http://www.cokeandcode.com/android-resolutions-and-games

Not really sure where to go with this.

Kev

I was wondering the same stuff, since I am porting Tactics Pompster to Android . But I also wonder whether this will impact performance (more tiles to draw) . I just wish things would be simple and all the devices had the same resolution !

ps. there’s a guy who has a droid and tested Hellevators on it . It seems there was indeed a problem when rescaling (not so serious, I guess . )

In FRG, I let the viewport into the playing field expand while leaving the sprites unscaled. I decided based on running an emulator using my monitor’s DPI and a screensize the same as the Droid. It didn’t look too small. I recently had the opportunity to run FRG on a Droid and Tattoo; hunting and pecking on smaller sprites doesn’t seem to be a big deal to me. Users haven’t complained about it yet and I did make hit-detection for targeting very generous.

I figure the benefit of being able to see enemies from further away (and a recent change to the game to include more enemies onscreen) out-balanced the small size of sprites on the Droid.

FRG on the Tattoo is playable with the constricted viewport although I’m contemplating dynamically scaling down graphics so I can show more of the playing field. I’ll probably leave it alone until more QVGA devices come out.

In Jewels I let the platform scale the graphics, although some of the Droid users have complained that the graphics don’t look crisp (which is of course true due to the scaling). For small screens I rework the bottom area a bit to fit it on screen, but it works ok I guess. Might be difficult to hit those tiny jewels though. :persecutioncomplex:

I’ve been getting a lot of exceptions in Droid when loading the background images that I can do nothing about… BitmapFactory.decodeResource() just returns null, I have no idea why. Perhaps it’s related to scaling, I should package the high res bitmaps with the game I think. :stuck_out_tongue:

Probably off-topic, but have to vent somewhere… I got loads of exceptions daily from Jewels, in code that works perfectly fine for me, and most of it’s in the platform code itself! NPEs about Parcels, Databases, stuff I’m not using myself, at all. Even the help file (which is shown using WebView) generates loads of NPEs during onTouchEvent(), which I’m not overriding at all btw… :-X It’s sad that while the things should in theory work across different devices, they really won’t. :-\