3.7.09

Ichigo Flock Simulation



These guys above are way fun to play with! (those of you in an RSS reader will probably have to click through.) Click on the stage for more boids.

I started this project with Phil a while back and have decided to stop working on it, at least for now. Ichigo was my introduction to programming in Actionscript 3.0 but also turned out to be my introduction to boid theory. Every boid above has several forces that influence its interactions, including:

  • alignment: heading towards the mouse cursor
  • cohesion: heading towards the center of the flock
  • separation: maintaining ample distance from flockmates
  • steerResistance: momentum that provides resistance to turning or stopping
  • randomness: some slight randomization of their movements
Our codebase allows flocks to collect Collectables, avoid Obstacles, and even merge with other flocks (although the above demo doesn't show this functionality). Eventually I hope to add more support for dynamic sound generation via flock behavior as well. This was meant to be a game prototype, but as you can see, not a lot was implemented except for the core functionality :P

One of the trickier bits during the process was telling the boids which direction to face. Simply pointing them in the direction of their velocity vector resulted in boids that could instantaneously flip their faces from back to front or left to right. Not only did we end up interpolating the sprite's rotation, but we also programmed each boid so it begins to turn only if its new velocity vector is at least theta degrees away from its old velocity vector. This last adjustment resulted in more flock-like and fish-like behavior.

The public build is here, and the source code is of course up on github if you're curious.

13.6.09

I Made Minesweeper

The javascript version using jQuery. The playable alpha version is on github right now (fyi flags are draggable :P ). I'm waiting for the webOS sdk before I make anymore changes, because for the moment I've decided I want to code mobile games. Thank Chelsea for the sprites.


(Oh and please note I will take a two week hiatus from this blog while I'm out of the country :)

5.6.09

Welcome to the rest of my life

I'm done graduating. Except for the thank you notes, but let's be honest, those won't be going out for another 4 months. I'll be here, in Las Cruces, for another week before visiting China and then I'm off to a family reunion in North Dakota. After that it's Silicon Valley or bust.

I figured since I'll be traveling a lot I should jump on board the portable music bandwagon once again. I'll be outfitted with my gameboy, DS, and H2 Zoom, so I'm expecting some good things to come.

Recently I've been doing nothing but cleaning, so I took a break to compose something cute on LSDJ. Purpose of the exercise was to make use of some extended techniques including:

Slurs
Vibrato
Groove (Swing)
Drumkits (ok this isn't "extended" but I haven't used LSDJ's yet)

15.5.09

Zora, AIAC

I had nothing but final projects my last semester at Cornell, and my composition class was no exception. I had a tough time deciding what exactly to write, but I finally settled on using a song from Majora's Mask as part of my theme and worked from there. Specifically, I took the first 10 or so notes from the melody of this song and stretched them out over a longer timespan



We had our pieces performed by (mostly) faculty of the department in a quasi-concert. Below is the part of my piece that they were best able to play (which is also the main melody taken from MM):


There were a number of issues with the piece that prevented the players from performing better, chief among them the fact that the piece is in G# minor. Other problems included hard-to-read enharmonic spellings and rest rhythms. Also towards the end, the piano part becomes virtually impossible to play. You can check out the score to see what I mean (pdf).

If it were going to be performed again, these issues would be pretty easily remedied by rewriting the piece in a different key. Luckily midi doesn't have some of the problems human performers do, so I put a midi representation of the score if you're interested in hearing the piece in its entirety.

8.5.09

Adventures in Processing

Finally, Chelsea's and my game is done! It's called Universe, and you can read more about it and download it from the Universe website. Once the source code is cleaner, I'll tell you more about the game itself. I did however, want to mention a few surprising things about Processing 1.0 that I learned.

I'd say the most annoying part of this project was the camera. It made much more sense from a game implementation perspective to rotate the camera instead of rotating each individual celestial body. But in order to rotate and translate the camera, Processing has to be in 3D opengl mode... which means the resulting shapes/images can't be antialiased (at least this is what Chelsea tells me). Huh.

Also to my surprise (though in retrospective it makes perfect sense), Processing is NOT meant for audio. Here I thought Processing was very geared towards audio/visual combinations and it is, as long as the combination is mostly visual. While I adore the audio library minim, and it's come a long way, I still couldn't find simple things...like a pitch shifter.

Some of my complaints stem from the fact that processing is still Java, and Java is far from ideal for game making. Lesson learned. Another things I don't like about processing is its IDE, which is fairly limited when compared with my Java IDE of choice, Eclipse. The good folks at Create Digital Music pointed out that there is an eclipse plugin, but I haven't checked it out yet, so maybe that's easier to use.

Now that I better understand what processing is capable of, I'd probably use again for either a) very simple/visual java applets (just for fun) or b) for the visual end of an audio project built in another program. Specifically I'm thinking a Max/MSP or PD patch with communication to processing via Open Sound Control could work wonders.

26.4.09

Procrastinating

Uncorking this bottle sounded too good to not record. The sample's not as clean as I would have liked, but the sound itself is still really cool. And works well pitch shifted along Reason's NNXT Sampler. Results below.


And now I'm back to writing real music (for my composition final project)

22.4.09

Could be Interesting

Hi folks,

As you may know, I'm not the only one who received an IGDA scholarship to GDC 09, and the 25 of us have banded together to start a blog of our own. Game Developers Blog is basically just a sounding board for a variety of video game topics. As it stands, we scholars still have a lot to learn about games and the games industry... but I'm hoping in a few years it'll mature into something worthwhile. After all, these scholars are pretty talented in their respective areas of expertise.

My contributions to the blog will largely be related to audio, since I was the only music/audio scholar this year. Check it out if you're interested.

-Sarah