This blog post is licensed Creative Common Attribution Required v4.0.

The web as the platform

Official Construct Post
Ashley's avatar
  • 28 Sep, 2012
  • 580 words
  • ~2-4 mins
  • 2,191 visits
  • 0 favourites

Recently Apple released iOS 6, the new version of the operating system for iPhone, iPod Touch and iPad. For us the most notable new feature is the Safari browser now supports the Web Audio API. This is the same audio engine used by Chrome, allowing for low-latency, high-performance polyphonic audio playback. Typically Safari has had such strict limitations on audio it was effectively impossible to play sound effects in a game - but this is no more! Unfortunately Safaris' Web Audio API is not backwards-compatible with existing games, but we've fixed it for next build, bar one small restriction (more on that in a moment).

At last, this means there is a major mobile browser that has good support for HTML5 games! iOS 5 introduced a hardware-accelerated canvas for high-performance games in Safari, but the audio limitations meant there would basically be no sound effects - and who wants to publish a game without sound? Now that Safari can play audio properly, you can run GPU-accelerated games with full audio support right from the Safari browser. What's more is you can also design iOS web apps which run from the home screen, looking like native apps, but circumvent the 30% cut that Apple take on their store. Ensuring people find your game may be more difficult if you're not in the App Store, but others are saying iOS 6 could make it harder to find your game anyway - another reason to go on the web.

For a demo, check out this touch enabled version of Space Blaster:

If you have an iOS device try visiting the URL in Safari and having a play - then try adding it to the home screen and using it like a native app. And thanks to Construct 2's offline support, it'll work even without an internet connection.

Now for that limitation - Safari mutes all audio until you touch the screen, presumably to stop websites immediately blaring unwanted music at you. To work around this the Audio object will queue up any sounds played before the screen is touched, then play them on the first touch. After that, all sound will work normally. To work around this we've also introduced a 'touch to begin' screen before the main title. When you touch on this screen it will play a sound (therefore unmuting the Web Audio API), and the title music and rest of the game will continue to play as expected.

The performance may not be perfectly native-like yet, but it is definitely good enough for a large class of games. Also, iOS will keep improving, newer faster devices will be released, and we'll keep tuning our engine for maximum performance, so it will only get better.

We believe this is a strong sign that the web is increasingly becoming a viable platform for publishing games - even for mobile. It does seem to have been neglected in the past in favour of the app stores, but this may have largely been because mobile browsers provided such a poor experience. Now Apple have a mobile browser robust enough to play HTML5 games, we can expect ever-competitive Android to catch up in the near future. And the upcoming Windows 8 Phones have great HTML5 support too.

So when publishing your next game, take a moment to consider the web. There are some interesting advantages to it. You don't have to jostle for attention in App Stores - the web can be the platform.


Get emailed when there are new posts!