Intro:
Hi, I’m going to try to document my progress in getting UE4 (Unreal Engine/Editor 4) setup and running on my Android phone. It maybe helpful for others trying to do the same and it’ll hopefully help me as well … I will also document any gotchas I find along the way.
There doesn’t appear to be much detailed UE4 Android documentation so far (that I can find?), but there are some (with links below) but I have also found this UE3 documentation some help (while we wait for more UE4 docs
http://udn.epicgames.com/Three/MobileHome.html
A lot has changed since UE3, so it would be great if/when these UE3 docs or something like them above can be updated to UE4 versions.
There’s also this link, which has some useful info:
What I’m trying to do:
I’m trying to get UE4 setup and running on my Android Samsung Galaxy S1 with updated firmware to 2.3.6.
I’m hoping to get my game to support the Galaxy S1, as there were millions of these phones sold and they were good (90M pixels/sec) for their time, so they are still a better GPU spec than a lot of Android phones sold today.
Also fortunately Samsung’s Kies software allows the firmware to be upgraded to 2.3.6 … so that’s API 10 … and Unreal Engine 4, out of the box, is setup to support API 9 … (more on this setting in a minute).
Disclaimer: I don’t have all the answers yet, but I have found and got past a few gotchas along the way so far, that may help you and they do need documenting.
(1) Setting up the development environment:
Here’s a very good starting point, but its got a few problems…
I strongly recommend installing NVidia “TADP (Tegra Android Development Pack)”.
I already had Android development (SDK + NDK) setup on my machine, but it was old, so I choose to do a clean install. NVidia TADP is the way to do it.
(I tried without TADP, but Unreal wasn’t detecting it). By the way, the TADP installer is installed along with the Unreal Engine 4 … its found here:
C:\UnrealEngine4\4.0\Engine\Extras\Android adp-2.0r8-windows.exe
However TADP does have a few problems of its own.
(A) On my first attempt, I chose the COMPLETE option. Bit of a mistake this, because after 3 hours of it downloading and installing, it froze and died.
(B) I then tried to fix it via that C:\NVPACK\android-sdk-windows\SDK Manager.exe and following the GettingStarted page link above, but that also failed.
(C) I then restarted NVidia TADP and this time I selected the EXPRESS install option. After some time it installed ok.
However, during the install, please note it comes up with errors about failing to write (in my case to 2 files), but selecting Ignore gets past them. (Looks like its just a conflict copying the same file twice, so once is enough.
Ok that got to the point where my S1 phone was detected by Unreal. … (more on this in a minute).
Also, one other useful point about setup, at the end of NVidia TADP installing, it asks if you want to keep the downloaded files. I would suggest yes, as it puts a load of useful ZIP files for future reference here:
C:\NVPACK adp_download
(2) Creating a quick test project.
I just wanted a very simple level to test, so I just created a New Project, using the “Blueprint Third Person” option with include stater content tick box enabled.
That just gives a simple character running around a box room with a few slopes and boxes to climb on, all in 3rd person. (I decided to keep it simple at first, so I held off from going for the C++ version to start with… that’s in my plans very soon, once it works with a Blueprint only project). I just called it Simpletest and its found here:
C:\UnrealEngine4_Dev\Simpletest
“Dev" is my main development directory (the "” makes it ASCII search to the top of its parent folder, in a file explorer, so I can find it fast
You can setup your main folder name, by going to the New Project page of the Unreal Project Browser. At the point you are entering a project name, there is an icon to the far right hand side of the Name text extry box. Select that and it drops down a directory tree and it also has a [Choose Folder] button.
(3) The AndroidManifest.xml and telling Unreal Editor you want to develop an Android game.
Once a new Unreal Editor project is created, it doesn’t by default have an AndroidManifest.xml file created. That’s because its not yet setup for Android. So once you are in the editor, select the top menu bar “Edit” menu and at the bottom of the Edit menu select “Project Settings”.
On the left hand side of the Project Settings page, you should see Platforms, and Android should be visible below it. … (If not, goto (1) above and try again :\
Select the Android option in the Platforms section of the Project Settings page.
The first thing you need to do is configure the project for Android, which is easy to do.
Its highlighted in dark red, saying “Project is not configured for the Android Platform” followed by a [Configure Now] button. Press that button. It then changes to green text and says “Platform files are writeable”
That button has now created the following directory tree:
C:\UnrealEngine4_Dev\Simpletest\Build\Android (well it creates the Build\Android part of it).
But most importantly, it also created the AndroidManifest.xml file for you. You get to this file fast by pressing the [Open Manifest Folder] button in the UE4 editor.
Open the AndroidManifest.xml in a text editor and its by default set to
android:minSdkVersion=“9”
(I tried 8, but UE3 didn’t like that and came back with error 3) … more on this in a minute. Anyway 9 didn’t give an error when building. … Anyway, that saves you some time, not having to try 8 now.
(4) Building/Cooking and downloading to the target machine (e.g. your phone).
When you select a project to launch on a target machine, UE4 first has to build/cook it, before launching it. The first time you cook a project, it can take a very long time, so be prepared for a very long wait. For example, on my setup (a lowly Samsung RV515 with Dual Core AMD E450) it took an extremely long time. (2 hours 45 minutes to be exact!
But anyway, be prepared for a bit of a wait as it’ll most likely take a while on a lot of machines (especially effectively out of work indie developers like me with no money to buy new machines until I create something to sell! … Oh the joys of going indie, rather than the cushy life of AAA development with expensive dev machines.
One request here: It would really help all of us save a lot of time if there was a way to downgrade what is being cooked into something quicker to make, a kind of preview build version, which doesn’t have things like baked lighting etc… Not sure if that’s something we can do with settings, or maybe a different version of the project? or maybe some kind of downgrade button that’s something for Epic to add to the editor? … (A preview build of some kind seems likely it’ll be a more detailed control over the Quick Settings/Engine Scalability Settings?, but one that makes sure it also effects the speed of cooking?).
Anyway, you enter the cooking process using the “Launch menu” where you select which target machine “Device” as UE4 calls it. That’s the target you want to download to, at the moment you select it from the menu.
At this point, I should just say, that the GettingStarted page above mentions using this “Launch menu” but it didn’t explain what it is … Well, for us newbies to the Unreal Editor
… that is found on the far right of the big icon bar, above the centre main 3D editor window and if you have a small monitor (which I do) that is hidden under a “>>” symbol.
Hovering over the Launch Options submenu of the Launch menu gives you a list of different Android (and Windows) launch Devices (target machines). At least it should … make sure your phone is in development USB debugging mode, and once you reconnect the USB lead to your phone, the windows (7 in my case) USB driver takes about 30 seconds to detect the phone. Once that has finished, it should be visible on the Launch Options in UE4.
Also worth noting, is that there’s a useful looking Device Manager at the bottom of the Launch menu (its worth looking at this).
Another thing to note is that the Launch Options has more than one Android device. The different versions are different texture compression options. I’m not sure how this helps us all during the sale of our Games/Apps?. I assume a lot of people now using UE4 are indies and few indies can target specific devices (that’s the big AAA’s job with their high profile PR moves ;). We indies by comparison usually need to target all the markets the AAA’s are not in!, which also happen to be the far bigger/wider, but not so high end markets. Anyway I’ve just found this page which helps a lot in understanding what all these Android versions are:
(5) Where I’m up to now:
Ok I can cook an App (and see it on my phone! … yay!) using my “Blueprint Third Person” project option (which has no other changes to the project, other than simply enabling Android development. I altered nothing else, not even name text, so its more repeatable). (Ahh just remembered, I also set Quick Settings/Engine Scalability Settings to Low and I’ve just set material Quality to low, I’ve just spotted menu option, so my current cooked version doesn’t have material quality low).
The problem I’m up to now is that while I’ve built it and it runs (without crashing), it currently does nothing. It starts up and it exits and it shows a blank black screen currently.
I’m now going to dig through its log messages and I’ll let you know what I find.
(That’s about 30 hours of work in the past 2 days so far, what with installing, trying options and digging for info etc… Anyway hopefully it’ll be of help?). It should help save you all some time?
If you have any ideas, suggestions or more info on how to proceed? (or just want to wish me luck!), then please let me know.
Alan