Posts RSS Comments RSS Del.icio.us Digg Technorati Blinklist Furl reddit 77 Posts and Comments till now
This wordpress theme is downloaded from wordpress themes website.

Android Support

I packaged my game for Android.  Overall it was mostly painless – especially since I already had some experience with Android on my cross-platform (C++ GLES2 SDL2 CMake) project (in which I had to do everything “from scratch”).  UE4 did most of the work for me, but I still did run into a few Android-specific issues that I had to debug.

I followed the UE4 Android Quick Start ( https://docs.unrealengine.com/latest/INT/Platforms/Android/GettingStarted/index.html ).  My BlackBerry PRIV wasn’t getting recognized over (adb devices) so I focused on getting it to run on my Kindle Fire.  The Kindle Fire is insanely cheap (only $50) and it’s a good low-end GLES2 base Android (technically Fire OS) device to test for compatibility.

I had to package my XML files as part of the .pak file – otherwise even my Windows package would crash.  Instead of StaticLoadObject() I used ConstructorHelpers::FObjectFinder() – I didn’t verify it but I think this was required to mark the referenced uasset as used so that it will be included in the package.  I fixed a few C++ compiler errors that I got with the Android NDK compiler (that I hadn’t got with Visual Studio 2015).  I updated the splash screen.  I’m able to see my UE_LOG() messages over USB with (adb logcat) or (adb logcat -s UE4 -s Debug).

The final issue I ran into was that one of my textures was too big.  I posted a question late at night when I ran into the issue, and then the next night after work I figured it out and answered my own question ( https://answers.unrealengine.com/questions/443479/android-process-has-died.html ).  Most GLES2 devices (including my Kindle Fire) have a max texture size of 2048×2048, so I had to resize my game’s board texture size to 2048×1642.  Unfortunately, (adb logcat -s UE4 -s Debug) didn’t print any helpful error messages about this.  libEGL gave a message (E/libEGL (11423): called unimplemented OpenGL ES API), and I guessed the large texture was a likely reason.

I didn’t implement tablet-specific controls yet, but I did try connecting a bluetooth keyboard.  The keyboard works just like it does on Windows desktop except that for some reason the Esc key doesn’t work (weird!).  Tablet controls are of course on my TODO list.

I’m glad I tried this now rather than later because when new Android-specific errors arise, then it will be easier to debug.  I’ll close with some photos of the game running on my Kindle Fire:

IMG_20160630_0100283 IMG_20160630_0100570 IMG_20160630_0101010 IMG_20160630_0101172

Trackback this post | Feed on Comments to this post

Leave a Reply