I’ve been working on a music game on and off for the past month for the TIGSource A Game By Its Cover compo. It’s inspired by this fake game cartridge:
You control a character in a 2D side-scrolling world and collect Jams, which you can then play to build up a sweet tune. There are other boombox dudes in the world who will jam with you when you are playing what they want to hear. The goal is to simply collect all the jams in the level and then just jam out with them.
Amanda Williams – Environment Art
Damien Di Fede – Music, Design, Programming
Kevin Bennett – Music, SFX
Oscar Garza – Animation
Sean McIntosh – Environment Art, Character Design
Things have been quiet around here, but hands have not been idle.
Anderson Mills has been hard at work on features for the next release of Minim. His project at Numediart to build a Unit Generator framework for Minim has made fantastic progress. On Tuesday, we plan to merge these changes back into the main Minim repository and release a Beta build. As usual, documenting is the hardest part of the job and we wanted to give people the chance to work with the new music programming features while we chew through that.
Meanwhile, I’ve created an app for the iPhone with Heather Kelley and Amanda Williams that is currently part of an art show in Hong Kong called Technosexual Bodies. The app is called Body Heat and I will be posting more news about that soon, I hope.
Finally, as hinted at in my previous post, I started work on a C++ port of Minim. It’s only in the beginning stages and it’s only functional enough to be useful for the iPhone app, but you are welcome to have a look at the repository. I’m making no promises about when the port will be finished, only saying that it will be finished at some point. If you’d like contribute to the port, make a fork at Github and have at it!
I’ve been wanting to make a sound-generating game for a while, I’m always inspired when I play games like Rez, Every Extend Extra, and ElectroPlankton. However, what I don’t want to do is make a Rez clone where there are already constructed songs that you just trigger new layers in and I don’t want to do a beat matching game because Harmonix already has that market cornered. So I’ve started working on a little sound-generating game/toy. It plays like a really simple shmup, but the mechanics are really just an interface to building up sound over time. You can fly a little ship around with some amoebas and they will just harmlessly bounce off of your ship. If you shoot an amoeba it will add a note to a music loop that plays throughout. This loop starts out with nothing in it, so the beginning of the game is silent. The color of each amoeba directly maps to the pitch and velocity of the note that they will create, but it is a narrow range so it is not immediately obvious what note you will get.
There are still a few things that I want to add, both visual and aural, but the basic idea is there. I will probably also be writing my own Sequencer implementation because the one that comes with Java hiccups sometimes and doesn’t do track muting properly. Or, rather, it probably does track muting exactly how the author of the implementation intended, but that intent is not one that I agree with. If Processing didn’t make it so easy to create visuals I think I would have totally given up on audio/midi in Java by now.
Decided to take a little break from developing Minim and make something with it instead. I made a synth that uses the positions of particles in a simulation to change the frequency and pan position of several oscillators. It comes in two flavors: mono and poly.
Finished up the second gameplay prototype for Primaries. Play it here:
I like it. It hurts my head a little to play it, but I enjoy that in a puzzle game. However, I don’t think it’d be very fun to play while drunk. I also don’t think it’d be very fun to watch someone play it, either while they were drunk and you were sober, or they were sober and you were drunk, or you were both drunk. It’s also not very conducive to a five minute gameplay session, even if you already know how to play. Admittedly, the keyboard controls complicate things a bit and it would be a little easier with a 360 controller, but even still.
I think I’m going to reduce it to a single grid and do Puzzle Quest style swapping. Color mixing will still be involved, since you could swap two tiles and match two colors with that swap, and I think that will be a nice twist. But it probably also means I will have to come up with a clever way to initialize the board so that you don’t get a bajillion matches right off the bat.
But now, Bioshock calls!
So I started working on a way to draw the grids for Primaries. It involves using a particle system. Here’s a prototype that does not allow me to do what I need to, but is fun to play with:
I’ve started working on a game for Gamma 256. It’s an idea that literally came to me at about 2am in the morning. I sent a brief design doc to Fish and Heather and incorporated some of their feedback into the design. I’ve just finished the first gameplay prototype. The basic idea is to match three or more colored tiles in a row. The catch is that there are three grids, each corresponding to a primary color (RGB), and the tile and grid have to be the same color for a match to work. In other words, red tiles are matched in the red grid and so forth. To move tiles around you position selection boxes in each of the three grids and the swap tiles between them either clockwise or counter-clockwise. If a swap results in a match in two grids, then a tile that is the mixture of the two, like red and blue making magenta, drops in the top of one of the two grids. Since magenta is red and blue mixed, magenta tiles can be matched in the red and blue grids. Anyway, describing this with words is silly, just go try out the prototype:
Last night I was thinking about live coding and also about how Java has reflection built into it. So, even though there is a forum topic about live coding with Processing, I decided to code up a simple sketch that evaluates a single line of Processing code and continually draws the result. There are drawbacks, of course, namely that you can’t specify fills or stroke colors and you can’t change the background color. However, in the next iteration I plan to ditch the textfield being used and instead use a textbox that will be evaluated in
draw without the user having to press the enter key. Probably I should check out the tools talked about in the forum topic, but I like the idea of having a sketch that is itself an interpreter, rather than using a more generic tool for evaluating Java. Then again, I may discover that building something even marginally useful is more complicated than I care to implement, at which point I will probably turn to an existing tool. In the meantime, please enjoy:
Live Code v01
Cannon Fodder (v03) is the third iteration on a prototype for a game inspired by the barrel cannons in Donkey Kong Country. I recently downloaded DKC for my Wii and was reminded of how much fun the levels that use the cannons are. The point of this prototype was to get the rotation and movement of cannons working and to see how much fun it is to just shoot the comet around. The only controls are the space bar, which fires a cannon once it’s loaded (sometimes the comet sticks, just keep pressing!). My idea is to keep that as the only player input and simply work in a lot of variety in the level design: moving cannons, rotating cannons, auto-fire cannons, maybe surfaces with different amounts of bounce.
Heather thought that it was kind of boring because sometimes you have to wait a long time for the comet to intersect with a cannon. But I find it pretty interesting to just watch the comet bounce around the stage. It is sometimes a bit like listening to one of Steve Reich’s phase pieces: the comet will get into a bouncing loop that encloses the moving cannon but the period of the loop is not the same as the period of the moving cannon and the shape of the loop is slowing changing. It’s possible to watch an interaction like that occur and then start guessing how many more loops it will take before the comet intersects the cannon.
Drum Machine is a sketch I made to test out the AudioSample class in the audio library I’m working on. It is a really simple grid-style drum machine. There are three rows of sixteen buttons each. The rows are, from top to bottom: hi-hat, snare, and kick drum. The buttons correspond to sixteenth notes. So, you only get one measure to make your sick-ass beat. You can change the tempo by clicking in the BPM box and dragging the mouse up and down. It does a pretty good job staying in tempo, even though I didn’t do anything particularly fancy to calculate beat length.
Unfortunately, there is no way to load or save beats that you make and also no way to choose different samples. Perhaps these features will be added in a future version. For now, it’s just a fun little sketch to play with.