animation, graphics, games, and other projects

Archive for the 'Code' Category

GLConsole library with source released

21st February 2007

I’m releasing a small C++ library with source code called GLConsole that was very useful in my old college game and research projects. It’s a simple “Quake-style” debugging console/shell you can overlay on your application to expose any program variables for tweaking separately from the code, print error or status information, and/or access custom commands. It also does the standard shell things like complete/partial tab completion with suggestions and history. More details including a demo and the source are available at its project page.

GLConsole Demo Shot

Posted in Code, Graphics | 84 Comments »

“Rhythm” Games and iPod Gaming Experiments

19th February 2007

About a year ago, I started thinking about what it would be like to play games using the iPod’s unique “clickwheel” interface. It seemed especially interesting because the Nintendo DS was proving unique game experiences were possible with a touch interface, along with games like Guitar Hero that were taking “rhythm games” mainstream. Apple must have thought it was a good idea too, because they started offering games in the iTunes store about 6 months later.

For my project, I modified a PC clone of the popular PSP rhythm/puzzle game Lumines to be controlled with the following trackpad, mimicking the iPod clickwheel in software:

Cirque touchpad with IPod Clickwheel image pasted in

The idea that you could play Lumines levels based around your own favorite songs was also something I wanted to explore. Microsoft later implemented this with their version of Lumines, featuring songs from artists like Madonna, now available in the XBox Live Arcade. There was a popular iPod commercial at the time featuring Eminem, so I also created a custom mod or “skin” using graphics from the commercial and looped sections of the audio from the song “Lose Yourself”. The current dropping piece could be moved left and right with counterclockwise/clockwise motion on the trackpad and rotated with pressure on the center “button”. The following is a video of my hacked up game composited within the iPod interface:

Most “rhythm” games work on the premise that the specific beats or melodies in a song statically determine when a player’s actions should occur, such as where to place your feet in DDR or the notes to play in Guitar Hero. However, it looks like there is lot of room for innovation in how players can inject their creativity into a game’s soundtrack. When thinking of how gameplay can change a game’s musical score, I’ve found that player actions usually fall into one of two categories:

1. Actions that Augment the music (as in Rez, where the player is remixing or composing new aspects of the music through gameplay)
2. Actions that Progress the music (as in Lumines or the upcoming SSX:Blur, where player achievements trigger progression in the musical score)

The second category is core to the Lumines game, which you can see in the video when big combos are scored, resulting in changes to the graphics and progression to the next looped section of the song. I experimented a bit with the first category by adding “DJ scratch” functionality, where scratch gestures on the trackpad triggered appropriate record scratching noises, which in theory would allow the player to add his/her own style to the song. It didn’t work too well in Lumines because the scratching motion would annoyingly cause the current dropping piece to move left and right, so I just ended up playing a random scratch noise when rotating the pieces.

It will be interesting to see how these ideas could be further developed into future iPod games. More details on this project (and hopefully other experiments) at my new gameplay prototypes project page.

Posted in Code, Games | 119 Comments »

CMU’s Spring Carnival: Magic Kingdom Monorail Racer project details…

24th April 2006

Carnegie Mellon University’s Spring Carnival was this past weekend. I’m always impressed with the quality of the booths made by the student organizations in such a short amount of time. Highlights this year were the Star Wars Death Star from Sigma Phi Epsilon and Arabian Nights from Kappa Delta Rho:

SigEp's Star Wars booth exterior KDR's Arabian Nights booth exterior

The games inside displayed some impressive engineering efforts such as Sig Ep’s “Force Pong” game, where you waved your hand over a screen to hit the virtual ball back at your opponent. KDR had a magic carpet ride where you leaned left and right on an actual carpet to control a virtual carpet through a 3D world projected on the wall. You can tell these things were a collaboration between students from a bunch of different disciplines.

This reminded me of the game project I worked with a few others for Phi Kappa Theta’s Magical Kingdom booth at Carnival in 2004 (my final year at CMU):

Magical Kingdom booth exterior

The Magic Kingdom Monorail Racer challenged the player to race a monorail car around the interior of the booth without running out of fuel. It was unique in that it combined a typical joystick controlled videogame with objects in the physical world – in this case a real RC car. Custom hardware circuits were developed to interface the PC game with the real world to accelerate the car, toggle lights in the booth in response to game events, and sense when the car crossed the finish line. I have posted more technical details, screenshots, and movies on Monorail Racer’s project page.

Below is a video and some pictures of the game in action:

guest player Monorail Racer game

Monorail Racer lost fuel tank

Posted in Code, Games, General | 261 Comments »

GDC Demo Source Released

26th February 2005

In preparation for my GDC talk in a couple weeks, I posted the source and binary of a demo that illustrates how to setup a ragdoll simulation with ODE and augment it with a control system. This is a simplified version of the demo I did for Game Programming Gems 5… You can download the demo here.

Gdc Demo

Posted in Code, Games | 132 Comments »

Master’s Thesis Page Created

4th January 2004

I began work on my master’s thesis project at Carnegie Mellon. The project involves combining motion captured animation and physical simulation to create highly reactive interactive characters. My preliminary results have been posted here.

Preview Small

Posted in Code, Graphics | 25 Comments »

Tech Demo Movies and Research Details

22nd December 2002

I posted about 6 movies showing off the game I made around my animation technology. I also posted a postmortem on the game and some technical details on the animation system. See the project page for details…

Posted in Code, Games, Graphics | 170 Comments »

Research Tech Demo Game

14th December 2002

I created a small game (titled Cursed) around the animation technology from my research project. It was created in about 3 weeks with the help of one other programmer. See the project page for details…
 Images Motionsynth Screen5

Posted in Code, Games | 106 Comments »

New Research Screen…

4th December 2002

Added new shot for my work-in-progress research project. A thumbnail is shown below. See its project page for more info.
 Images Motionsynth Screen3

Posted in Code, Graphics | 105 Comments »

New demos: terrain and cloth simulation

20th October 2002

Added info on the terrain demo and cloth simulator. In addition, I posted demos of my current research project and the terrain demo. I’ll hopefully have time to fix the collision in the racing game this week… Also, I would like to post detailed information on my research as soon as possible.

Posted in Code, Graphics | 62 Comments »

Star Wars racer demo

15th October 2002

Information on the Star Wars Racing game has been posted.  Briefly, it is a simple two player racing game I completed as a school project in about two weeks…  See its project page for a demo download.  Below are a couple screenshots:

Posted in Code, Games, Graphics | 292 Comments »