The Mobile target of GameMaker Studio 2 has Android and iOS exports, but it also has the Amazon Fire export which specifically targets the 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.
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:
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 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)
- 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.