Ensuring Android Compatibility

Hello everyone,



I am considering using jMonkeyEngine 3 for my next project. I am experienced in Android/OpenGL development but jME3 would save me a lot of steps for simple tasks (which is why I am sure many of you are using it).



I have a few concerns about the compatibility of the engine across android devices.



I have noticed that some android devices are extremely picky about what PNG image format and color profile is being used. I often got “image type not supported” errors when attempting to run on my devices when a PNG texture is being loaded. I have also been unable to load heightmap textures for this same reason->it doesn’t seem to like the monochrome color profile I am using when I export from GIMP.



Additionally, it seems that the Terrain and Effects demos (from the jME Tests available in Google Play) do not work on any of my devices. Are these simply not supported? I noticed in the Android-compatibility document in the jME wiki that these are supposed to work, but I seem to have no luck.



One last concern is about tablets. I noticed that the jME Tests render well on my tablet, but they are not anti-aliased. I have the option to stretch or fill this, and stretching looks much better, but it would look fantastic with anti-aliasing. Is anti-aliasing possible on android devices, and does it support devices that utilize different types of anti-aliasing?



To basically simplify my question, I am looking for information about how to maximize compatibility across all android devices. I want to create a consistent product that does not need a lot of tweaking to work on all devices. Does jME3 work well across all devices? Any input on this topic would be greatly appreciated.



I currently have 3 test devices, all with the latest updates installed:

Samsung Droid Charge (2.3)

Toshiba Thrive (10") (3.2)

Motorola Droid Razr (4.0)

Last I heard the JME3 tests/demos in google play (which weren’t done by any of the core team) are not up to date and the people who uploaded them haven’t responded to a recent attempt to get them updated yet.



I’ll let someone more knowledgeable comment on your other questions :slight_smile:

If certain images are not loaded thats the android image loaders “fault”. It might be it reacts differently to certain images but at any instance you should adapt your images to the rendered format anyway and not just use “any type”. For unshaded models (which are best for the platform anyway) you should get good performance and relatively consistent compatibility across devices. The android part isn’t as well-tested and far developed as the desktop version but most things should boil down to material and asset settings.

Thank you for the prompt replies.



After zarch’s helpful comment, I found another more updated test/demo in Google Play specifically for JME3 that looks and performs much better than the older demo.



Thanks for the clarification normen. It seems very likely that I am not exporting my images correctly, so it is most likely a ‘user fault’ on my part. I will be experimenting more with this on my side.



I have one additional question that I forgot to mention in my OP. On tablets, is the “Stretch to fill screen” and “Zoom to fill screen” a device-specific issue (Toshiba Thrive honeycomb), a tablet-specific issue, or just how jMonkeyEngine3 works on devices with higher resolutions?



Thanks!

as most games should be platform independent and UI etc. should be done platform independent as well your application is expected to be run in fullscreen as one android “activity”. you can configure anything like in a normal android application inside the android sub-project, check the manual.

Thank you again normen. I have found the MainActivity.java file under the mobile source folder. This is exactly what I was looking for.



Thanks again!

Its also available in the “Important Files” node, hence the name ^^