There was a prize for having the Loudest applause and I though the best way to win it was by turning the odds in my favour, by which I mean forcing people to clap to actually interact with my project.
What it does
It's a modified version of dinorun (that game built into chrome) controlled by clapping.
Working together to play better is the aim, which lets it be tied into other apps or rewarding the players for working well together.
How I built it
It's actually surprisingly complex.
- React Frontend for the end users, implementing the controller that looks for the average loudness of a sample being over a certain threshold.
- Backend Websocket server to handle all the users claps and deliver state changes to the actual game.
- A game which responds to what was provided by the websockets. Taking a ratio of active clapping devices vs total connections to scale it. (For dinorun, 50% or more have to clap in the time frame of 300ms)
Each user contributes equally to whenever the movement happens, so it requires many people to work together and collaborate.
Adding a new game is as simple as copying about 20 lines of code into it's init function.
Challenges I ran into
Wanted to make my own game in p5.js, but the handler for react didn't work well and would error. Got close to the end and ended up scraping that for just patching an open source one.
Microphone sensitivity is very variable.
Turns out it's really hard to play flappy bird with this...
Accomplishments that I'm proud of.
What I learned
Bit of DSP, improved my react knowledge a bit, etc.
What's next for Applause Review