0 Favourites

New features in Chrome and Firefox for Android

Subscribe

Get emailed when there are new posts!

Stats

  • 985 words
  • ~4-7 mins read time
  • Published
  • 122 visits
  • 0.5 visits per week
  • 130 page views

Tags

License

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

Share

Enjoy this blog? Share with your contacts!

Share now

Report this blog post

HTML5 games on mobile is particularly important for many developers - and historically a little problematic. Fortunately on Android, which is by quite a margin the most popular mobile platform, there have been some very good developments in browser technology recently. Here's a quick overview of some of the new features in Chrome and Firefox for Android. Download them for Android devices from the Google Play store if you don't have them already - here are the links: Google Chrome for Android and Mozilla Firefox for Android. (In some cases you can install directly to your device from a desktop browser on those pages.)

Note some of these demos require Chrome 31, which only just came out - if any of them don't work, try checking for an update on Google Play. Another way to try out the next versions of Chrome or Firefox for Android is to use the beta apps, which you can find here: Chrome beta for Android and Firefox beta for Android. These are separate apps so can sit side-by-side with the regular browsers in case you want to keep them for day-to-day browsing.

WebGL

Chrome and Firefox for Android both now support WebGL! This enables vastly improved performance as well as Construct 2's awesome shader effects such as this ripple transition example. This alone can make for a much more mobile gaming experience in the browser.

Firefox appears to support WebGL on all devices. However Chrome have taken a stricter approach, and only enable it on relatively new devices. (The technical requirement is for the driver to support the GL_ARB_robustness extension, for security reasons.) This includes the Nexus 4, Nexus 5, Nexus 7, Galaxy S4, HTC One, and other recent devices. As time goes on the proportion of supported devices should increase as today's new devices become tomorrow's older devices. So while it may be limited in scope now, it's promising for the future.

Web Audio API

Both Chrome and Firefox for Android now support the Web Audio API, enabling reliable low-latency polyphonic audio playback. On top of that you get to play with some advanced effects in the Audio object like convolution and filters that can add a new level of immersion to your games. Try playing with this sound board to try them out!

Microphone input

Chrome 31 now supports audio input with a microphone, if present. This could make for some pretty novel ways to control games! The desktop version has supported this for a while, but it's now arrived in Chrome for Android as well. You can use the User Media object in Construct 2 to get microphone input and route it to an audio tag (where you can add an analyser). Try out microphone input here.

Add to home screen

Chrome 31 for Android was going to support an 'Add to home screen' option in the browser menu, but it's been postponed to Chrome 32. Like on iOS, this adds the page as an icon on the home screen, as if it were an app. When launching from the home screen the browser UI is hidden, and you get a true fullscreen experience, just like a native app again. Construct 2's offline support also means games added to the home screen continue to run even when offline. This helps blur the line between apps and the web, and might be a good way to encourage players to keep coming back to your game.

Fullscreen API

Rather than using unreliable hacks to hide the browser address bar, Chrome and Firefox on Android support the Fullscreen API. In Construct 2, this means you can use the Browser object's Request Fullscreen action to switch in to fullscreen mode. Like with the desktop browsers, this gets you a full-display experience from the web page itself, without needing to add to the home screen or compile as a native app.

Vibrating the device

Firefox for Android supports vibrating the device using the Browser object's Vibrate action. Chrome does not support this just yet, but the next version (Chrome 32) should. This allows a simple kind of haptic feedback for games. Try it out in Firefox for Android with this simple demo.

Speech recognition and synthesis

Speech recognition is already supported in desktop Chrome, and has arrived to Chrome for Android 31. Try out this speech recognition demo, made using Construct 2's User Media object. Speech synthesis (also known as "text to speech") should also be supported soon in both the desktop and mobile versions of Chrome - we'll add support to the User Media object when that happens.

What about iOS?

Sadly, iOS 7 did not bring a great deal of new features for HTML5 games. It does however already support the Web Audio API, so it has powerful audio capabilities which you can try out on iOS. It also pioneered the 'Add to home screen' feature, which it has supported for a long time now. We're hoping that iOS 8 will bring WebGL support. With even Microsoft supporting it Apple are one of the last holdouts on this.

Conclusion

For a long time the mobile browser situation has been difficult. The Android stock browser is not great for HTML5 games, but it is gradually being replaced by the excellent Chrome for Android as the default Android browser, which is great news. You can see Chrome's adoption picking up on StatCounter's global stats. Firefox for Android is also a powerful and capable browser which provides a good alternative to Chrome. iOS has long supported some forwards-thinking features like adding to home screen and the Web Audio API, which makes us hopeful they'll catch up with WebGL support soon. Most other platforms such as Firefox OS and Tizen already ship with good quality browsers that are suitable for gaming, so there is not a problem there. We think this shows the future of HTML5 gaming on mobile is very bright indeed!

Disabled Comments have been disabled for this blog post by the owner.