Three years ago, while Goldfire Studios was working on Casino RPG, they found the web audio options available to them at the time to be sorely lacking. What did they do? They took the initiative and created an audio API that allowed them to easily support audio on multiple web browsers. Howler.js was born.
After three years, Howler.js is now at version 2.0 and is widely used around the internet, including by some of the largest companies in the world.
In early 2013, I set out on a journey to simplify browser audio for our then in-development HTML5 multiplayer game, CasinoRPG. It quickly became clear that this was a problem many in the development community faced, and howler.js evolved into much more than the simple helper it set out to be. Today it is used by the likes of Google, Disney, LEGO, NASA, DC, EA, Ubisoft, Paramount, Warner Bros, Universal and thousands of other developers all over the world.
If you are interested in some of the more technical details, Goldfire has you covered in this briefer on the changes made since v1.0.
One of the pain points of 1.x was the confusion surrounding playback of multiple sounds, sprites, etc. This mainly came about because the original release was much simpler than what things evolved into. So, with all of this in mind, a 3-layer structure became an obvious solution.
You still have the global context with Howler, but now there’s the idea of groups and single instances of audio. Each time you play a sound, it keeps track of its own state, inheriting from the Howl group. This allows you to more explicitly control both the group of sounds and the individual sounds, providing more intuitive and predictable results. This also allowed for the introduction of a whole host of new helper methods that can control one or many sounds, such as once, playing, duration, state, rate and more.
Along with this new release, Goldfire has created a dedicated site to the Howler.js API.
This is exciting news not just for Goldfire, but also for the wider tech community in Oklahoma. This should be a great example for other game developers and tech developers who are working in open source, or even if they aren’t. There are tons of weaknesses and needed features for development communities that need creative solutions.