Gamasutra: The Art & Business of Making Gamesspacer
arrowPress Releases
October 31, 2014
PR Newswire
View All
View All     Submit Event





If you enjoy reading this site, you might also want to check out these UBM Tech sites:


 
Deploying Unreal 4 to the new Amazon Fire TV
by Chance Ivey on 04/09/14 01:25:00 pm   Featured Blogs

The following blog post, unless otherwise noted, was written by a member of Gamasutra’s community.
The thoughts and opinions expressed are those of the writer and not Gamasutra or its parent company.

 

So I got a hold of an Amazon Fire TV this week, and wanted to see what it would take to get the new Unreal Engine 4 running on the device. As one would expect, new hardware and new software lack perfected technical documentation on how to accomplish an involved task between the two of them. Luckily, both Epic Games and Amazon had more than enough to get me started on the process. Here’s how I went about it and what I learned during the process. Hope it helps others in attempting the same. 

Amazon Fire TV Setup

First, bookmark this link - https://developer.amazon.com/sdk/asb/connect-adb.html. We are going to be going over all of this, so no need to go there now, but hang onto it for future reference. 

Setting up the Amazon Fire TV for development is fairly straight-forward. If you haven’t set the box up yet, go through the setup tutorial and platform overview that auto-launches upon first use. You will be prompted to connect the device to a Wifi hotspot. Do this, as Wifi it’s the required connection method for application deployment. Once your Fire TV is all set up, Head to the bottom of the list of options on the left and find settings. Click the button on the Fire TV remote to enter the “Settings" Menu

Scroll through the “Settings" Menu to the very end option, "System", and select it. Select the “About” section and scroll down to “Network”. 

 

Write down your Fire TV IP address. You will need it when it comes time to deploy your UE4 App. 

Next, hit the “Back” button to return to the “System” menu and head down to “Developer Options”. Inside “Developer Options”, turn on ADB Debugging. Remember where this is, as you may have to toggle this on occasion, I’ve had to a few times after failed deployment attempts. 

And that’s it for the Fire TV. 

Computer Setup

Go ahead and bookmark this link, too - https://docs.unrealengine.com/latest/INT/Platforms/Android/GettingStarted/index.html. As like before, we are going over it all, but you may want this for later.

You’ll need a Windows computer, with the latest UE4 SDK installed. The Amazon Fire TV is an Android device, so we need to install the Android Development Tools. The easiest way to do this is using the TADP (Tegra Android Development Pack) found inside the UE4 install you have on your machine. You can do it manually following the instructions inside the link above, but this is the easiest way to get moving. The TADP can be found here:

[ENGINE INSTALL LOCATION]\Engine\Extras\Android\tadp-2.0r8-windows.exe 

I used the default settings for this installed, and it works perfectly fine for both the Android devices I’ve tested  (Amazon Fire TV and the Nexus 5). 

REMEMBER WHERE YOU INSTALL THESE - I left mine as the default, but if you change this directory, make sure you know where the tools are going, because we will be referencing them a bit later in the post.

This install will probably take a little while, so be patient. It may even go “Not Responding” a couple times, just wait it out. You may even run into this warning about verifying the driver publisher. Tell it to install anyway.

Once it’s done, we need to make sure some Environment Variables are set. Right click on “Computer”, then select “Properties”.

On the left, you’ll see "Advanced System Settings". Select that, then "Environment Variables" from the bottom of the popup.

We are looking to make sure that 4 Environment Variables are in both the User and System variables lists. You only need 3 if you’re not using C++ source, but let’s go ahead and add the other so we don’t forget about it in the future. Look for the following in either of the lists. If they don’t show up, at all, select new and fill out the information for both lists. If they’re in one list and not the other, you can just copy the values from one into a new variable in the other. 

ANDROID_HOME

JAVA_HOME

ANT_HOME

NDKROOT

Here is where mine are setup using the default options and install location. 

Once you’re sure these are listed in both the User and System variables lists and pointing to the appropriate locations, we can head over to Unreal to ensure that It recognizes the build directories. Open the Editor, and select File -> Package Project. If the Android options are available, you’re one step closer. 

Note - you may need to restart Unreal if you set these variables with the editor open.

Click on "Packaging Settings" in that menu, then the “Android” option. It will probably look like this - 

Hit “Configure Now” under “App Manifest", and you should get a green bar verification with the text “Platform files are writeable” like this - 

Now, Unreal Engine is set up for Android deployment. 

We now need to set up our ADB (Android Debugging Bridge) to be able to connect with the Amazon Fire TV. Since the Fire TV doesn’t connect to a computer via USB, we have to add the device to ADB via it’s IP address. Go ahead and open up the windows command terminal, cmd.exe. 

We need to change directory to where adb.exe is currently located. This will be where you installed your Android tools earlier. In my case, it is located here. 

If you have trouble finding it, you can search for adb.exe in windows. It will be in a platform-tools folder. 

We need to reset the adb server here, then add our device. Enter the following commands one at a time, and replace with the IP of your Amazon Fire TV. 

adb kill-server

adb start-server

adb connect  

To verify that the device was found and is connected, enter the command adb devices. You should see the IP address listed. 

If it is not listed, Head back to the Fire TV, and Toggle the "ADB Debugging" setting under "Developer Options" as outlined above, and do command adb connect to try and add the device again. 

Deployment

Once the device is shown in the list, head back over to UE4.

Since we are deploying to an Android device, we need to use a project set up for mobile. In this example, I use the Mobile Temple example project that is available on the marketplace. For more information on setting up a mobile project consult the Unreal Engine documentation. 

Once it’s open, Let’s launch on the device. Hit the Launch button, and select Android ATC. I prefer to see the log, so I can monitor the status. 

It will probably sit on this screen for quite some time. This is because deploying over Wifi takes a good bit longer than USB (a major downside to this whole operation). Be patient, and wait for this success notification. 

And there it is! You can even plug an Xbox 360 wired/pc or PS4 controller into the back of the Fire TV and walk around the scene. 

You’ll notice that this demo isn’t optimized for the device and is a little choppy and grainy, but it’s a good starting point and example of how to begin developing UE4 projects for the Fire TV. My focus now has turned to tricks for optimization on the platform. I'll share my findings.

Thanks for reading. 

-ivey


Related Jobs

Activision Publishing
Activision Publishing — Santa Monica, California, United States
[10.31.14]

Tools Programmer-Central Team
Amazon
Amazon — Seattle, Washington, United States
[10.30.14]

Sr. Software Development Engineer - Game Publishing
Intel
Intel — Folsom, California, United States
[10.30.14]

Senior Graphics Software Engineer
Pocket Gems
Pocket Gems — San Francisco, California, United States
[10.30.14]

Software Engineer - Mobile, Backend & Tools






Comments


Terry Matthes
profile image
Very interesting work. Please keep us updated with your performance tweaks.

Chance Ivey
profile image
Will do, I've spent most of this week pushing it to it's limits.

Chris Book
profile image
That's pretty awesome. I suspect the Swing Ninja project would run a lot smoother natively rather than the level design flow project that's supposed to show off some of UE4's shininess.

Chance Ivey
profile image
I'm sure you're right. Running some more basic projects (the canned starters that the toolset comes with) run pretty flawlessly, though it being an Ardreno 320 GPU, it wont do dynamic light, which is kind of a bummer

Lior Tal
profile image
Excellent post. Very informative!

Chance Ivey
profile image
Thanks! I hope to bring some more light to to capabilities of the box soon


none
 
Comment: