Live Web - Midterm
This past week I've done significant progress on the Javascript coding for my game, tentatively called Bildpunkt (German for pixel). The theme of the game is pixels, and in this iteration, the game mechanic involves eating the "food pixels" littered across the browser window. The more of these you eat, the larger your character gets!
I ran into some issues with the collision detection (the math is a little off, as well as the point in which the collision is detected is not the center of the image or pixel, but the top left corner). I need to implement a workaround (i.e. getting the height and width of each image/pixel and dividing it by 2 to determine the center x,y location from which to detect collision).
I'm also considering using a library like Box2D, since it might be helpful down the road for a bunch of other game mechanics.
The code for this version can be hound here on Github.
Cooking with Sound - Midterm Project
For my midterm project, I set out to experiment with and better understand the 'hidden' resonant frequencies of tennis racquets.
I'm generally interested in the idea of the amplifying sound frequencies that our ears cannot hear. Infrasounds are like a hidden world, tucked away in objects that we use on a daily basis. I chose to work with tennis racquets because I used to play tennis when I was younger, and just recently started playing once again. The objective of the midterm project was to explore the physics of sound as expressed through a medium. To me, the tennis racquet acts as the medium since it's essentially an instrument on its own: the frame is a resonator, and it comes 'pre-loaded' with plenty of taut strings to act as vibrating elements.
I chose 4 different racquets and explored each of their resonant frequencies. In order to do this, I attached a contact microphone to the grip of the racquet, and using an audio interface (M-AUDIO ProFire 610) I amplified the vibrations picked up by the contact microphone. I recorded these vibrations for each of the racquets on my computer using Audacity, and also captured the spectrogram visualization of each racquet's vibrations using iSpectrum.
Here's a video documenting my process and the results:
Future:
I want to continue working on this and develop it into a final project for the class. I'd like to turn tennis racquets (or perhaps other objects with hidden resonant frequencies) into interactive interfaces through which people can create sound. This would involve real-time amplification of the vibrations picked up by contact microphones, for which I'd probably use Pure Data or Max/MSP. I'm contemplating altering the sounds in real-time as well: distortion, glitch, changing the frequency/pitch, etcetera, to provide greater depth to the soundscape.
Additionally, I would build some sort of rig to suspend the racquets in mid-air, so they could freely vibrate. Ultimately, I'd like to use Processing to animate visuals that will be triggered by the sounds. I'm going to work on a more detailed proposal and start sketching out ideas.
Live Web - Week 5: Midterm Proposal
I'm considering continuing to iterate on my collaborative game idea for my Live Web midterm. The idea of using Node.js and sockets to allow for user-to-user interaction through the browser just screams "multiplayer game" to me.
Aesthetically, I'm going for a 2D 'pixelated'-style game where players each control a unique character that has its own set moves. I'm still figuring out the overall mechanics: will players collaborate against one or many opponents, or fight against each other? Maybe a mix of both as teams duke it out?
The process would work like this:
- User goes to website
- Server recognizes user and assigns an ID to user
- Client-side recognizes ID and assigns a character, which is dynamically created and appended to HTML
- Users are then either divided into teams, or left without teams (depending on the game mechanics)
- Game starts when everyone is ready
- If anyone disconnects, character is removed from game and user ID is removed
I also spoke with Alex and I'm considering teaming up with her to create real-time "video chat" between ITP and the screen downstairs on Waverly Place. We would use sockets and PeerJS to provide a real-time window between both screens and allow for instant communication.
Additionally, we're interested in adding a Redial-esque experience to the screen downstairs. Since there is no way to provide audio through the screen (it's behind glass) we could have users call a number to connect to the video chat, and talk through their phones. The phone could also become a controller for the interface on the browser/screen.
This could be a great midterm project, and I would continue working on my game on the side as well - potentially for the final, once I have solidified the mechanics and learn to better use the tools provided by socket to make the game a seamless, interactive multiplayer experience.