In the previous tech blog, we explained how to set up GameMaker Studio 2 and the Amazon Fire target so that you could start testing your game projects on an Amazon Fire device. In this blog, we are going to explain how to compile a final executable as an APK file and upload it to the Amazon App Store so you can make it available to the public.
In the previous tech blog we briefly covered some of the Game Options within GameMaker Studio 2 in relation to setting the up the correct SDKs to test your game, but when it comes time to publish you will need to set up all of the Game Options otherwise you won’t be able to publish correctly. So, today we'll briefly run through the most important parts of the Game Options for building the final game package, but you can find complete information for each section from the GameMaker Studio 2 manual. To start with let's look at the General Options.
The most important things to fill out here are the Product Information and the Build Settings. The product information will be used to define how the product will be identified on the store, and you should give it a Display Name (which will be used on the Store and for the Icon name on Devices), a version number (always greater than any previous version you may have uploaded), as well as a unique Package Identifier. The Package Identifier is a reverse-url format identifier that is normally configured as com.
IMPORTANT! This ID uniquely identifies your app on the device and on the Amazon App store. If you want to upload a new version of your app, the application Package Identifier must be the same as the original APK that was uploaded. If you change the Package Identifier, the store will treat the APK as a completely different app. Also note that and all characters must be lower case.
You can see in the example image below how this should all look:
With the Product Information filled out, you should check the Build Settings next. If you've successfully been testing with a device then you probably won't need to change these, since if it builds for testing it should build for the final packaging, but it's a good idea to revise them and make sure that you are setting them correctly. In general, you always want to be on the latest build tools, support library and SDK. You should note, however, that if you are using any extensions you may need to bump the minimum SDK value up to whatever the Extension requires (check the documentation that comes with the extension):
The rest of the game options deal with various other features like orientation and gamepad support that you should check and change as required by your game before moving on to set up the Graphics.
The Graphics options will determine how your game displays and looks like this:
Important things to check here are the Screen Colour Depth and Texture Page options. With screen colour depth, if you choose 24bit then your gradients and glows will be much smoother and subtle with less "banding", but it comes with a cost as it will also impact on performance and it's still not the most used colour depth. This does not mean that your project won't run on a device with 16bit colour display, it will, but it may mean it's using extra resources for no gain.
For the texture page size, again, there is no strict rule for this, but you are probably better choosing a smaller size than a larger size (if in doubt, simply leave it at 1024x1024) to ensure compatibility with older Fire devices. However, choosing too small a size may impact performance as it can increase the texture swaps required, but too large a size may mean that your graphics get distorted on devices that have less vRam and so the texture is scaled down to fit in memory and then scaled back up to be drawn).
The Icons and Images sections of the Amazon Fire Game options are where you set the different promotional images that your game will use on the Amazon App Store. Each image should be authored as a PNG file and set to the size given, and they will be used as promotional Icons, as well as on-screen icons and splash screens when your game has been installed on the end user’s device.
In most cases you should not have to change anything shown on the Permissions section of the Game Options. These should be set automatically for you when using GameMaker Studio 2 functions, but if you are using any third party extensions then you may have to select a permission manually. See the documentation that comes with the extension for more details.
Once you have the Game Options correctly set up you are ready to compile your game as an APK for uploading to the Amazon app store. You can compile the game using either the VM or YYC options, although we recommend that final executables always use the YYC as it can give an important boost to performance. Note that the YYC may take longer to compile than the VM.
When you click the compile button you will be prompted to select a location to save the final APK to, and once selected the compilation of your game will begin. The compile process may need to connect to the internet to download additional files and tools, which in turn may prompt a firewall alert - if this happens you should allow the connection, otherwise the build will fail.
Once the game has finished compiling GameMaker Studio 2 will open an explorer window on the created APK by default (although this can be changed in the Preferences), ready for you to upload.
With all the work in GameMaker Studio 2 done, it’s time to go over to the Amazon Developer dashboard and create a new app listing for your game. After signing in you need to go to the main "Home" screen where you can see the latest announcements and the "Dashboard" for your uploaded apps (empty just now!). Click on the Add a New App button to get started:
You will be asked what kind of app you are wanting to add, and this can be either:
In this case you want to select Android. This will then take you to the main submissions page where you need to fill in the basic details for the submission:
This tab deals with the basic information for your app. The following fields must be filled in:
App Title: The display name for your app (obligatory)
App SKU: The SKU is a unique identifier that must be added to identify your app. The SKU always follows the reverse URL format of com.companyname.appname, for example com.mcsweeneygames.catchthehaggis, and all characters must be lower case. This should match the Package Details that you gave in the GameMaker Studio 2 Game Options.
Category: The app category that you want to use to broadly define your app. Select the most appropriate from the list. You may also be given the option to add Category Refinements based on the choice you make to further narrow down the definition.
Customer Support Contact: Checking the box marked Use my default support information will tell Amazon to use the default support email and URL that you supplied when registering, but if you wish to have something independant for each app then you can un-check this which will then make the following options available too:
Once you are happy with the details provided, click the Save button to continue. Should there be any problem with the information provided, the problem fields will be marked and you will be given an opportunity to resolve the issues.
You will now be taken to the app overview screen where you can revise the information given and go through the checklist of actions before publishing:
We'll go through each of the sections of the checklist, but note that from this point on you can leave the Amazon developer portal at any time and come back and continue where you left off. You also do not have to do each of the listed items in the order they are listed and can, for example, fill out the description then go back and fill in the pricing and availability later.
This tab deals with the availability of your app, and the first thing you should do is select the country where you wish it to be sold. In general, you would leave this as "All countries where Amazon sells apps", but if your app is region-specific then it may be that you want to choose the countries where it can be sold.
After that you can select to have your app listed as free or give it a price. Should you choose to give it a price, you will have to select a base currency and add the value in that currency to the field, then (when you click outside of the form) Amazon will automatically calculate an exchange for the other available currencies. If you are not happy with the values that Amazon gives, you can click the "I'll set my own prices" button and then edit the prices that have been set previously.
Amazon requests that you also inform them of any other platforms that may have had the app released previously. If you click the yes button, you will be required to add a date for when the app was available. If you released the app on multiple platforms, you should add the date that it was originally released on the very first platform.
The final option "When would you like publishing to start" is so you can add a launch date for your app. Note that your app will have to be accepted after final submission first and that this may take some time (a few days to a week usually), so make sure that the launch date takes this into consideration. Leave this blank if you have no special launch date requirements, in which case it will be published to the store as soon as it passes the submission process.
When you are finished click Save and continue to the next tab.
As the name of the tab implies, here you must supply Amazon with all the written information to be associated with your app. This includes a short promotional description, a larger page description and then some "bullet" points where you can list any outstanding features of your game. You can add some tags too, which will help when people search for an app from the Amazon store.
When you are happy with the text, you can click on the Save button to continue, or you can click on the button labelled Save and add a translation. If you select the latter, your base text will be saved, but a new tab will open where you can select another language and supply Amazon with a translation of the original text. These translated texts will be shown on the region-specific Amazon App Stores.
Once that’s done, don’t forget to click Save and continue.
This section needs little explanation... It's where you add the promotional images for your app, and each section details the size and type of image that you should upload (and the uses that it will be put to). You may even upload a video of your app, but note that if the file size is greater than 30MB you should use the FTP uploader. For more information, click the link that is supplied on the page. Click Save when you are finished here.
Giving your game appropriate content ratings is incredibly important as, if you fail to supply the correct ones, your app could be pulled from the store or your submission could fail. Basically, these ratings are used by Amazon to "target" your app at a given public audience and so you should try to be as precise as possible, since you do not want your beautifully crafted children’s puzzler to be aimed at an 18+ audience only!
When you have selected the appropriate ratings for your app, you should also click on any of the extra warnings that your app may contain gambling, advertisements etc... Click on the Save button when you are done.
This tab is for uploading your *.apk file and setting the necessary permissions and support options. Below are listed each of the options with a brief explanation of what they are for:
Apply Amazon DRM?: For each app that you submit to Amazon, you can choose to apply DRM or make your app available without any rights management constraints. However, GameMaker Studio 2 does not currently have the necessary options to permit this, so you must select No.
App Store Certificate Hashes: There is nothing here for you to change, and this section is purely informative as it shows all the different security hashes that are generated by Amazon to be used instead of your Amazon Developer account details.
Binary File: Click here and browse to the created *.apk file to upload your app to Amazon. This can take a few minutes, during which you will not be able to continue... so be patient! Note that you can also choose to use the FTP uploader should your app file be larger than 30MB, and once the file has been uploaded, you can check the manifest to see that everything is in order.
Device Support: Generally, you can leave all these options checked, but if your app is designed specifically for phones and/or has a low resolution (800 x 480 or less), then you may wish to disable the Kindle Fire HD.
Language Support: This section is for informing users of the languages that your app supports, so if you have more than one language option in your game you should tick it here.
Export Compliance: This is a legal formality that is required by Amazon since they are an American company. Failure to tick this will mean that your app cannot be submitted.
Use Amazon Maps Redirection: This only needs to be checked if you are using Google Maps in any capacity (from an extension) as it will redirect the extension function calls to use the Amazon Maps API instead of the Google Maps one.
Binary Alias: This is the unique name that you give the uploaded *.apk file. It can be useful to distinguish between different versions of the same game (should you wish to have an HD version and a normal version, for example). In general, if you do not plan to have multiple versions, you can use the same identifier here as the SKU code entered in the General Information tab and GameMaker Studio 2 Game Options.
Testing instructions: This text box is for you (the developer) to leave messages relating to specific functions and devices that your game should be tested on. Initially, you should not need to use this, but if your app is not permitted or it's submission is marked as "pending", then you have should receive an email outlining the issues found. In these cases, you would fix the issues and re-upload the *.apk, then fill in this section with the specific information for testing to see that the problem has been resolved. For example - "Please test specifically on Kindle Fire. This is a built-in response to issues described in your test report: Use of the Settings Soft Keys (Top menu bar such as volume, device options, etc) causes the app to exit."
With all that filled out correctly, you can now press Save to store the information.
If all is correct, you should see the tabs each have a green tick on them at the top of the screen:
It is very important to review everything carefully at this point, as you can still edit all the information that you have provided. Once you submit the app for approval, this will no longer be the case, so better get it right the first time... Once you have reviewed everything and are happy with the information provided, hit the Submit button!
Your app could take some time to get approved (usually a few days, but it can take longer), but the main dashboard of your developer account will show the status of the app at every stage. Each of the different messages informing you of the app status are listed below:
Submitted: The app has been submitted for review, and it can no longer be edited. At this time you can cancel the request for review and continue to edit your app.
Under Review: The app is being reviewed by Amazon and can no longer be edited.
Approved: The app has completed at least one stage of the testing and content review process. It may soon be ready for publication at Amazon.
Live: The app is now live on the store.
Pending: When the app is in this status, you will receive an e-mail from our team explaining why the review process for your app was paused and asking you to perform some action. You must address the relevant metadata or binary issues before your app can successfully continue through the process.
Rejected: The app has not passed the review process. You will receive an e-mail from Amazon explaining the reasons for the failed approval.
Once this process is complete, your app will either be live on the store or require some further action from you to fix an issue that has been found. If there is an issue, then the Amazon team will inform you of it and explain what needs to be done to fix it. If the app is Live then congratulations! Your game can now be bought, downloaded and enjoyed by the millions of Amazon users from the Appstore!