Software
I've been writing software for several years. Below are some games I've worked on. If you have any questions or comments, just send me a message.
Games I've worked on:
vsII [in progress] (2006)
vsII is the sequel to VektorSchlacht. Although it's a sequel and has the same basic gameplay design, vsII is not based on the old source code. I'm writing the game in C++ using ODE for physics. The physics model and graphics will be much more advanced than VektorSchlacht's. I don't have any strict timeline for development, but I hope to complete it later this year. It currently runs on Mac OS X and Windows.
You can download an early preview version of the game here (Mac OS X only). It's compiled for PPC, but runs on Intel Macs through Rosetta. Basic gameplay is functional, but it's far from a real release.
Controls: arrow keys drive, spacebar shoots, left-click flips vehicle, M toggles music, P pauses, L skips to next level (cheater!)
Garden Quest (2006)
Garden Quest was developed as a final project for a Game Design course at UCSC. The game was developed by Team Woflmao, which consists of Nick McSpadden, Jeff Regalia, and myself.
You play as Njord, a gardening gnome. The game features 30 levels in which you must plant, expand, and defend your garden. We developed the game in Game Maker.
Garden Quest runs on Windows and can be freely downloaded from www.woflmao.com
Ratchet: Deadlocked (2005)
I spent the summer of 2005 as a programming intern at Insomniac Games. Ratchet: Deadlocked is a Action/Shooter game for the PlayStation 2. I worked on gameplay code on many different parts of the game including HUD, weapons, and vehicles. The 10 weeks I was there coincided with the final push to finish the game. Much of my time was spent fixing bugs and adding polish. I also added several features.
The experience of working on a professional game was amazing. It
reaffirmed my desire to be a game programmer. It's amazing what a group of 150
talented and dedicated people can create. Insomniac Games is a wonderful company to work for.
You can find out more information on Ratchet: Deadlocked at http://www.ratchet-deadlocked.com.
Jetris (2005)
Jetris is a multiplayer version of Tetris. It supports up to 4 players in a game. Users can add their own graphics to customize the appearance of the game. The game features midi background music inspired by the original tetris music (hint: hit 'n' to switch songs!).
Jetris was developed by Team Sparkle Motion as a project for the Software Methodologies course at UCSC in Winter 2005. Team Sparkle Motion consists of Tristan Johnson, Alexander Shusta, Ning Hsu, and myself. My role in the team was Lead Developer, I was responsible for coding the gameplay and working with Tristan to integrate the network code. The game is written in Java and should run on any system with Java 1.4.1 or later installed.
(note: we've found that the music does not work correctly under Java 1.5 on some systems. Because Team Sparkle Motion is no longer together, it is unlikely that this bug will be resolved. If the music just plays one long note or plays very, very slowly I recommend simply turning music off on the options screen).
Download (requires Java 1.4.1 or later)
VektorSchlacht (2004)
This is a 3D game somewhat similar to the classic game Spectre. You navigate a small tank killing enemies and collecting powerups. To reach the next level you must collect all the crystals to activate the warp point.
This game took second place in the 21 Days Later: Vectorized game programming contest at iDevGames.com in the Spring of 2004. The contest was 21 days long and required that entries only use lines for graphics. The game is written for Mac OS X. The code is written in C with a bit of Objective C. The graphics are done using OpenGL. I'm currently developing a sequel, vsII.
Download (requires Mac OS X)
Einstein's Rocket
Einstein's Rocket is a set of three educational Java Applets designed to teach the basics of Special Relativity. The first applet goes over various thought experiments to explain the effects of special relativity. The second is a very simple demonstration of why the Twin Paradox works. The third applet is a 2D game in which you pilot a rocket ship. There are a couple different levels. All levels can be played either in a Newtonian rocket or in Einstein's Rocket (which obeys the laws of special relativity).
Einstein's Rocket was developed over the course of two years under the supervision of Professor Joel Primack. The applets are based on an old version of Einstein's Rocket written in assemly for the Apple II. The new version is written in Java and should work in almost any web browser that supports Java Applets.
Check it out!
Random Java Applets
Most of these are relatively unpolished applets I wrote just to test out various ideas or algorithms.
- Fethuckers (2006) - Fethuckers is an experiment in using genetic algorithms for an enemy population in a game. The gameplay is quite simple. You are a creature that eats Fethuckers. Fethuckers are small critters that have different attributes based on their genes. At the end of each round the remaining Fethuckers mate, creating a new population. As you get to later rounds the Fethuckers become increasingly hard to capture as you weed out the genes that left them vulnerable. There's no end to the game, most people give up by round 10. You can get further by trying to eat the fittest members of the population in early rounds, leaving as many "stupid" Fethuckers as possible.
- Spermies (2004) - I wrote this to experiment with a flocking algorithm. There are a bunch of individual sperm, each steers to get near others in front and to the sides of it, but not to near. They also try to steer in the same direction as those nearby. Clicking the mouse creates a red dot that will attract them, this is useful for playing around with them.
- 3D Bounce (2002) - I wrote this Applet because I was curious about programming 3D graphics. My concept was to use basic 2D drawing functions to visualize something moving in 3D. I ended up with a ball bouncing in a cube.
- Billiards (2001) - Whipped this up back when I was first learning to program. My goal was to figure out the math to bounce 2D balls off of each other. I got it working ok, but it certainly has problems. It works ok as long as you hit the ball at relatively low velocities. High speeds can cause weird behavior due to the fact that I only checked for collisions at discreet steps, without checking if their should be a collision between 2 consecutive steps. To mess around with it click inside the blue ball, drag away from the direction you want it to go, and release the mouse button.