sfxr.js: sound for open web games
Last week Mozilla Labs announced its Game On competition, a contest "all about games built, delivered and played on the open Web and the browser." The open web platform has got a lot to offer game developers these days. I'm hoping that some people will enter processing.js based games (version 1.0 is coming in the next month).
I'm also hoping to see how far people will push sound effects, audio, and music. When I think about video games (and I date myself here), I mostly remember sounds. See if you know these games. I could close my eyes and tell you what most of them are:
Those chirps, pops, and pew! pew! pew! sounds are a fundamental part of the video game landscape. And if we're going to talk about making games for the web, to me, we need to think about how to recreate this soundscape. Luckily Ted had the solution: "Someone needs to port SFXR to the Audio Data API."
Right now sfxr.js allows you to generate various sound effects, modify them if you wish, then create a .wav file. Eventually I might write a small library to allow you to use these sounds in a web page without needing the .wav files. Another thing I like about it is how easy it is to collaborate with someone else as you design sounds. Every sound can be "saved" via the URL and the sound=... parameter--just bookmark it, drop it in irc, etc.. Here are some sounds I generated:
- A space transmission
- A ship flying overhead
- An alien being vaporized
As is usually the case with the things I build, I don't have an immediate need for this (although my daughters and I had a great time looking for a "dragon fire" sound). Instead, I'm interested in building the things that enable others to do interesting work. Part of the amazing potential of the web is that it makes creators out of people who would otherwise have been consumers. Want to build a little game and need the sound of a character jumping? What are your options? Buy it somewhere? Steal it from somewhere? Why not create it yourself?
The open web, whether it's being used for games, sounds, video, etc. is really about giving people the control they need to build and share things. I hope you build something cool with sfxr.js, and if you'd like to help make it do more, let me know.