First Real Post!

So, I’ve been working on several things lately. Here’s a list:

  • I recently entered the uDevGames competition for this year. My entry is a game called Run, Stickman, Run! and it’s going to be a hybrid of a 2D shooter like Geometry Wars and a platformer like Super Mario. I’m working in Python, because: a. I need the development time speedup more than the extra performance of languages like C++, and b. there’s a lot of great frameworks like pyglet for Python that let me work on real problems rather than the ones that have already been solved. The main gameplay gimmick (and no, I won’t hesitiate to call it that) is that your character is always running forward in the level, which should increase pressure on the player and encourage a feeling of speed. Here’s the main character:stickmanCurrently, I’m finishing up the keyframe animation system I’ve designed, which operates by simply attaching “limbs,” or sprites, to other limbs. In this way, animation is easily created from just rotational values, which are easily interpolated. Hopefully this system will allow me to create great-looking animation without having to resort to frame-by-frame sprite creation, which I have neither the skill nor patience for. I still have a lot of work to do on the game, but I also have a lot of remaining time. You can follow the development effort at my official uDevGames developer diary, here.
  • In my free time I’ve been reading through Code Complete 2 and the OpenGL SuperBible. Both are really awesome books.
  • As of the end of this semester, I’ve completed the first part of my latest research with my advisor/mentor at BU. I now have an application which allows me to pull statistics from machine traces, and it outputs those statistics into the .arff file format that Weka uses. This allows me to cluster machines, into any given number of clusters, and then use those clusters to do several things:
    • Use those clusters as a source for any number of simulated machine traces, which increases the accuracy of the simulation.
    • Test existing schedulers on each of the clusters to see which types of machines they perform best on — and even write new schedulers that exploit features of the clusters.
    • Use the clusters to classify grids by determining what percentage of machines fit into each cluster, as compared to other grids.

The cool thing is that I did the whole application using PyObjC, so there’s a separation of interface (which only works on my Mac, ’cause it’s Cocoa) and implementation (which could easily be reused for a command-line version on any operating system that supports Python). And with Python’s processing, it was easy to multi-thread the application, multiplying the speed of the stat computation by the number of processors. The upshot is that it was great practice for both GUI coding and multi-threading, and that it has set me up well for my continuing research next semester.

I have a lot of stuff on my plate at the moment, but I want to keep this blog updated more often so I have a record of the stuff I’ve done in slightly more detail than twitter affords. So, check back soon if you’re interested.