Setting Up The Amazon Fire Module

YoYo Games is introducing a new 60-day trial export target in GameMaker: Studio, which is the Amazon Fire range of devices - Fire TV, Fire TV Stick and Fire tablets.

These devices run Fire OS, which is itself based on Android, and can run apps and games just like any other Android device. From a development point of view, the Fire devices make for an excellent platform for your games, since one Fire OS app can be deployed to all devices - and with Amazon behind it you can be assured of a huge potential market.

In this article we are going to explain how to get your hands on this module and what you'll need to get it set up and connected to your Fire device, and hopefully you'll be porting your games to this exciting new platform in no time!

Note that although this new target produces an Android APK, this file will not work on any device that is not part of the Amazon Fire range.

Getting The Amazon Fire Module

As mentioned at the start of this article, we now offer a 60-day free trial to those users who have a YoYo Account and who haven't already got the Android module.

If you have the Android module already, then there is no need to have the Amazon Fire module, as your Android module deploys to all Fire devices (as well as Google, Samsung, etc.) and is not time-limited. To help clarify this, if you do have the Android module then the IDE will not show you Amazon Fire in your targets list or inside Global Game Settings even if you request a trial license.

In order to claim your free licence you must have an Amazon account already set up (and have the details for this account handy), then click the Amazon promotional tip within the Studio IDE or visit your YoYo Account panel in your browser, then sign-in with your YoYo Account details. If you do not already have a YoYo Account you will need to create one at this time if you'd like to participate in the promotion. Once logged-in you'll be taken to your licences page, where you can click the button next to the Amazon logo and description in order to visit Amazon's log-in page. Once logged-in, you'll be returned to your YoYo Account page and the new license will be granted to you.

Once your YoYo Account is updated, click Help > Update Licence within Studio and re-licence using your YoYo Account details in order to get your export in the IDE. If you click "Amazon Fire" in your targets list and you still get the Amazon promotional tip, then please check you did add your Amazon details and re-licenced correctly.

Your 60-days begins the day you link your account, and at the end of the 60 days the module will be removed from your targets list. (Help > About and your YoYo Account panel can be checked to confirm if your licence has expired.)

Setting Up

Since the Fire OS is based on Android, you will be required to set up the Android SDK to use the Amazon Fire target. You can find a complete tutorial on how to set this up from the knowledge base here: GameMaker: Studio Android SDK and NDK Setup. You can also find the required versions for the Android SDK here: SDK Version Support. Note that the NDK is not currently required, as the Amazon Fire target is not enabled for YYC.

Before continuing, it's worth noting that the keystore file that you make for identifying your games is used by Amazon Fire as well when "Use Amazon APIs" is enabled in the Global Game Settings (more on this later), so if you have an existing version of a game submitted to Amazon already, you will need to always use the same keystore details for each team member who needs to build/test the app, otherwise many Amazon services will not initialise for you.

Amazon Build Tools

Now that you have the Android SDKs set up and the keystore and other preferences set you need to link to the Amazon Build Tools via the Android SDK Manager. You can run the SDK manager from the main android-sdk folder (on my own system it's found at D:\Android\android-sdk\SDK Manager.exe), and from the manager window you click on the Tools menu and select Manage Add-on Sites:

This will open another window where you have to go to the "User Defined Sites" tab and enter the following URL:

https://s3.amazonaws.com/android-sdk-manager/redist/addon.xml

As shown below:

Now in the SDK manager you need to scroll down to the Extras folder and check the Amazon Fire packages and install them before continuing (specifically the Kindle Fire USB driver).

Connecting To Your Device

The Amazon Fire module supports the TV, Stick, and tablets - both the ad-supported and non-ad-supported versions. The Stick plugs into your TV via the HDMI socket and then connects to your PC via the USB. You can use wifi to connect, but we recommend that you use USB as it's more flexible and allows easier swapping with other devices and the Android platform.

The Fire TV device plugs into your TV via HDMI like the Stick, but it then has the option of wifi/Ethernet and USB connectivity. Unfortunately the USB connection it requires a double-ended male USB connector, which is not provided in the box. This means that wifi/Ethernet is likely to be the standard method of connectivity. Because of this, we now allow a new Android preference to specify the IP address for ADB to connect to each time it starts the ADB process and looks for devices. Be aware if you set this preference (by default it is blank) ADB will use this IP rather than check for USB connections, since it is passed to ADB directly, so this setting can "override" finding other devices you might wish to test on - in which case you should clear the Preference as required.

For connecting the Tablets, they plug into your PC like any other Android device via USB, however it's a little bit more complex to get the driver required for ADB to talk to the devices, which is why we set up the Amazon Build tools in the SDK manager. That should permit ADB and the tablets to communicate correctly and without issues.

Once ADB can detect your device, you can start to test your games using the new module. It is worth reiterating that APKs built with this target module will only function on Amazon Fire devices, so don't try to test with a different brand of Android device, as you will just receive a message that the package isn't compatible when you try to run the game.

Amazon APIs

Amazon offer a full range of APIs to add specific features to your game and these can be activated from the Global Game Settings > Amazon Fire > Social tab (the same checkbox can be found on the Android > Social tab if you have the Android module):

By ticking the "Enable Amazon APIs" checkbox, you are indicating that you want to use one or more of the following Amazon services:

Amazon Ads

Amazon Cloud Services (Whispersync)

Leaderboards

Achievements

In-App Purchases

In 1.4.1749, instead of all these things being included within GameMaker: Studio, as Android extensions were previously, they have been setup to use the extension system and so ticking the checkbox will prompt you to download the relevant extension from the GameMaker: Marketplace. Once you have done this, you need to add the extension to the project and close the Marketplace window. If you then explore the extension properties in the resource tree, you can see the function names for each of the components and you can use one, some or all of them, depending on your games requirements.

You can now build and play games on your Amazon Fire device!

Amazon Services Demo

If you wish to see some example code on how to work with Amazon's APIs, there is an example project available on the demos feed within the IDE. Simply create a new project using this demo in order to get a small example you can study. Please be aware that in order to test this demo properly and observe it in action, you will need to set up your keystore details and publish a copy of the demo apk to your Amazon developer panel, just like any other Amazon app you wish to develop. If you don't do this, the demo can't sign-in to Amazon's online services.

Please note if you're part of a team, everyone in your team will then need to make their testing apks of the demo using the same keystore as you submitted to the store with.