While there are lots of comparison online of game development tools there is very little in the way of comparisons of game marketplaces. With Elements of Dreams we experienced some of the differences first hand as one of our strategies for releasing the game was to allow as many people as possible to be able to play it. As such we released the game in as many platforms and app stores (in our case 5) as possible. Below is our analysis and comparison.
The first thing that we looked at was cost. This varies widely from store to store. From free to $100+ per game. The breakdown here is pretty straightforward:
- Steam: $100 per game
- Apple: $100+ ($99 for developer and $10+ fees/taxes) for the year
- Google Play: $25 for the year
- Amazon App Store: Free
- Itch.io: free.
Time to setup:
The time needed to setup each storefront varied for each and often was in direct relation to their user interface. Here is the breakdown from most time to least:
- Steam: 1+ day
- Google Play: 1+ day
- Apple: 1/2 day
- Amazon App Store: 1 hour
- Itch.io: 30 min – 1 hour
User Experience & Ease of Use:
After gaining access to build store fronts in each marketplace, the next thing that became apparent was the wide difference in user experiences of each store. These varied from the abhorrent to the divine. Often times I was setting up these storefronts late at night, with little sleep, so if the experience wasn’t intuitive, it was often extra annoying and took much longer. Let’s start with the worst.
Steam: The worst experience for setting up a store was by far Steam. The User Interface (UI) for Steamworks is terrible. It feels old like a Java swing application that was made into a web application. It is bloated with too many menus and no clear simple navigation for smaller games. Simple things such as “how do I even get my store started?”, took much longer to answer than expected. Unfortunately much of the documentation is dated as well so that didn’t help much when setting up a storefront and uploading a game. The one saving grace to the Steamworks UI is a checklist that at least helps you know you aren’t done and provides links to the many varied sub-menu areas that need to be completed before submitting (although even these were not always clear all the requirements that were needed).
Google Play: The next worse store to setup was Google Play. Again the interface to set things up was a little less intuitive (not as bad as Steam, but worse than others). This was mostly due to the left side bar that didn’t have a clear order on what needed to be done when. Google also had inaccurate documentation which made it annoying when looking for guidance only to find the wrong thing. Also certain phrases are not allowed as part of the description (but you won’t hit this issue until the store is under review). Google play did have a checklist which helped for knowing when you weren’t yet done setting up, and linked to that page from the checklist so that was at least better, but knowing how much testing or approval needed to get done to release a game and whether a release date could be set (like in other stores), was unclear. It was often unclear if you were publishing a build or if it was under review.
Apple: Middle of the pack is Apple. Apple prides itself on usability of it’s products and this extends to it’s app store as well. While there a lots of capabilities and extra menus to go down the main workflow to get your app setup was relatively straightforward and I never got stuck when setting up the app. There UI did a good job in telling you when there is something more you need to do, and their documentation was up to date and helped me move along when I wasn’t sure what to do.
Amazon: Amazon was very straight forward interface. There were few requirements for setting up the store, and it wouldn’t let you progress to the next step until you’ve correctly completed the step you were on. While the other large marketplaces could take a day or more to get a store setup, for Amazon it only took about an hour.
Itch.io: Itch.io was by far the best experience. They have many features, but the main workflow for setting up a storefront uses a What You See Is What You Get (WYSIWYG) interface. You could change things and then preview the page as you were working through things which made setting up very easy and fast. They were the only store that allowed .gif files as part of the preview images, which makes for a better way to show off your game. Also after the page goes live you can still go back and change things very simply (this isn’t true for all stores). Itch.io was one of the only marketplaces where you could link to other marketplaces in your store as well, if you have them. Finally the topping on the cake is that you can provide browser playable versions of your game on itch.io store. This is distinct to this itch.io and doesn’t appear in any of the other marketplaces that I released to. All of this made it the perfect link for sharing on social media, those who were interested could play the game in the browser or go to a story that was compatible for the device they were on.
Each store has it’s own image requirements many often different than the rest. Of these Apple and Steam required the most images and of specific formats. Steam particularly required a name of your game on images which came out to be more annoying than useful. Google required less images than Apple or Steam, but they had to be from Android dimension devices. Fortunately, I had some friends with Android devices that were able to play the game and send me screenshots for these. Amazon and itch.io required the least images, and as mentioned above Itch.io was the only store that allowed .gifs.
After spending hours in MS Paint modifying image sizes to meet size requirements for each marketplace, I did what any sensible software engineer would do and coded up an automatic solution for myself. This saved me countless hours as I changed out images prior to launch and then shortly after launch once I had received art work from an artist I had commissioned. For others to benefit, I have opened sourced the script that can be found here. To use it place the image you want different sizes of in the directory that the script is in and use python to run it (more details in the README file with the code).
Approval time for store:
Store approval times before and after release varied greatly. I’ll go from worst to best.
Steam: From paying for my product submission fee until being approved for my store front it took 17 days (1 week for approval, 1+ week because of an issue). In addition Steam requires 2 weeks of the store being live before you can release your game. That makes for a total of 31 days before I was able to release my game to the public, despite having everything in place. Additionally they allow you to set a specific date for release but on that day you can’t change the original time even if you’re ready early. I realize that Valve has good intentions here in helping bring visibility to your game before it is released, but dictating the marketing and release strategy of other companies seems a little heavy handed.
Google: Approval time on an app for Google is about 1 week. One thing that was nice was I didn’t have to re-submit the app when the storefront art changed. This could be applied immediately. Google doesn’t allow you to set a release date, but if you know what day you’re releasing this allows you to manually release when you’re ready.
Amazon: Approval time for Amazon is less than 48 hours which was much quicker than the other large app stores (Apple and Google). However the approval process is somewhat opaque and arbitrary, as at one point my game that had previously been approved got rejected for getting flagged on the store description that had been previously approved. This caused some angst as it was close to the release day, but fortunately got it cleared up and re-approved before then. A rejection will cause a delay of an additional 24-48 hours after resubmitting. Also changing something as simple as a screenshot for the storefront (prior to release) will make you have to resubmit everything for approval. Finally Amazon allows you to set a specific release date, but if you’re ready early on that day you can’t change the time. Also it takes a bit of time (a few hours) before your app is able to be found via search from Amazon.com.
Apple: Approval time for Apple’s App Store is 3 business days on average. This can seem a little longer as once the app and store are approved, in order to change many things (including the description, the artwork, or a build) the submission has to get cancelled and then you have to reapply for release. You can set a release day and time with the App Store, but change the release to manual if you are ready early (without having to resubmit for approval), which allowed for more flexibility than other marketplaces.
itch.io: The approval process for itch.io is essentially non-existent. Once you fill out all the details for your store front that you want (there are very little requirements) you can pretty much release at will. Additionally they allow you to preview your store and create secret links to send to collaborators while you refine everything for your release date. This store was by far the best experience.
Releasing new builds on each store is also a varied experience.
Steam: Getting new builds out required modifying an arcane script… or if you have a game under a couple gigabytes then you can do a web upload, but the link for this capability is discrete and in the middle of a random page (and some how absent in the help documentation or any tutorials you find online). Additionally there are file name requirements that are set in multiple areas and it isn’t clear that they are linked. For me this problem manifested as I tried changing the game file name at one point, but all the places that it needed to get changed wasn’t clear so I had to abandon this initially upon release. On the positive side, there is no approval times on new builds once your store is approved, so once you have a new one it can become live as soon as you have them uploaded. So Valve gets a failing mark on ease of use, but good marks on approval time.
Google: Providing a new build for release in the Google Play store has the same approval time of about a week. Additionally the AAB file can’t be larger than 150 megabytes, so once your game gets above that amount you end up having to fork your code base to make an Android branch with reduced assets to save on size, or other space saving strategies.
Amazon: Providing a new build for Amazon is also akin to submitting a new release and has the standard 24-48 hour wait period. This is non-ideal, but uploading the Android APK is relatively painless and doesn’t have any size limits (unlike Google). This is where the issue of my prior approval on my description got rejected though, so there is room for error here when the approval is by humans who apply the rules inconsistently across app submissions.
Apple: Providing a new build for the App Store also the same as submitting a new app and takes 3-5 business days. Fortunately with Apple the approval process appears to be more consistent than it is with other app stores. New builds for Apple are unique as you do them through XCode rather than uploading through a web interface. Fortunately the documentation for this was very straightforward, but it does require you to get more familiar with XCode than you may have been prior.
itch.io: There is no approval wait times on new builds for itch, so when you have changes to make you are able to edit the store, upload the builds, and have them live immediately. Again itch.io wins here for the major ease on user experience and lack of wait time for new builds.
Inevitably something will happen where you will need to interact with a human in order to resolve issues with getting a game published in a marketplace. The experiences here varied wildly and some went contrary to what you would expect from multibillion (if not trillion) dollar companies. I’ll start with the non-applicable.
itch.io and Amazon: Fortunately both itch.io and Amazon did not require any interactions with tech support. Both marketplaces were easy enough to use and provided enough guidance if something wasn’t working or got rejected that I never needed to contact tech support for it.
Google: Tech support for Google play was by far the worse. I lost almost 10 days trying to resolve an issue using Google’s tech support. Unfortunately here something that could likely have been solved with a phone chat among humans wasn’t able to happen, as Google doesn’t offer phone support for Google play and all tech support happens over email. This at times became idiotic as I got bounced between two tech support groups. Additionally tech support was often sending me to look at help documentation (without direct links) that turned out to have errors and not actually solve my issues. Unfortunately in the end I self solved my problem in a manner that I had been trying to avoid. Google gets a big fat FAIL here which is not what you would expect from a trillion dollar company.
Steam: Tech support for Steam was good. While I never had to talk to someone on the phone the email exchange with an issue I ran into was easily resolved and I was able to continue my store setup without much further issues.
Apple: Tech support with Apple is top notch. While they don’t have a number for you to call, when there is an issue that requires tech support you can set it up to have them call you (usually in less than a minute) and then I was able to solve my issue from talking to that person on the phone. Tech support is really the one area where talking to a person on the phone is extremely helpful and can unblock you quicker than most email exchanges, automation, or documentation can. Apple also have an option for chatting or doing email, but I always opted for a call as I knew that my issues could be resolved by talking with someone on the phone.
App Pricing Changes:
If you initially release your game for free some marketplaces let you change that to a priced game and some do not. Here again it varies and appears to be rather arbitrary. I’ll start with my view of the worst and go to the best.
Steam: Unfortunately once you release your game on Steam as free, you are unable to change it to a paid game later. This wouldn’t be so bad (as other marketplaces have this issue to) except that to release a new game on Steam requires another $100 fee, so this becomes something where it really can hurt you in the long run. There may be ways around this by using a freemium model (and charging for things in game) or releasing DLC’s, but to be honest Steam’s bloated and unintuitive UI has made this an avenue that I haven’t found worth exploring.
Google: The Google Play store is also an unfortunate place where you can’t change the price of your app once it is set to free. With the Play store you could at least release another (premium?) version of your app with a price and not have to spend more money, since it would be included in your original $25 developer fee. So while this is a minor inconvenience it isn’t a deal breaker like it is with Steam.
Apple: In the Apple App Store you’re able to change the price of your app or game, but it can only be done at certain increments from $0.99 to an upper limit of $999.99.
Amazon: The Amazon app store lets you change the price of your app after release and to any specific price that you want.
Itch.io: Again itch.io comes out on top here with maximum flexibility. Not only can you change the price of your game, you can make separate releases on your existing store front and charge for those but leave the originals for free. The only thing that can’t be changed in price from free is the browser version of your game. Other than this limitation Itch again takes the crown for developer friendliness.