Continuing Gamasutra’s ‘Road to the IGF’ feature, which profiles and interviews Independent Games Festival 2007
entrants, today’s interview is with Stephen Taylor, developer of Plasma Pong
Taylor is a 4th year Computer Science major who worked on the game over a period of nine months, after being influenced by Jos Stam's research paper Real-Time Fluid Dynamics for Games
. Of the title itself, he comments:
This variation of
Pong utilizes real-time fluid dynamics to drive the game environment. Players have several new abilities that add fun twists to the classic game. In the game you can inject plasma fluid into the environment, create a vacuum from your paddle, and blast shockwaves into the playing area. All these abilities have fluid-based kinetic effects on the ball, making
Plasma Pong a fast-paced and exciting game.
Gamasutra caught up with Taylor via email to ask about the game, his entry into the IGF and fluid dynamics.
What is your background in the games industry?
As a college student at George Mason University, I've had no experience in the industry. Plasma Pong
is actually the first game that I've released, and it's been an incredible learning experience for me.
When did you start making games, and what previous titles have you worked on?
Although Plasma Pong
is the first "real" game that I've released, it's not the first old school game I've created. Back in high school, I programmed an ASCII version of Snake
as my final Computer Science project. I've also made a pretty sweet clone of Mortal Kombat
on my TI-83 calculator in 8th grade, during English class. It wasn't very fun to play, but it got me some bragging rights on the bus.
What inspired Plasma Pong, and why did you decide to make it?
I've always felt that fluid dynamics would add an insanely cool element to gaming once the hardware catches up to speed. Imagine a physically simulated explosion sending burning debris into the air while the smoke is billowing dynamically down hallways and out of windows. Another cool gameplay scenario would be a water tank bursting, sending fluid crashing down hallways. Ideas like this are what inspired me to start researching into how to make this possible in real-time.
After finding Jos Stam's research paper on real-time fluids, I used his algorithms as a baseline and kept adding features that I thought would look cool. Despite the paper's title, "Real-time Fluid Dynamics for Games", no games existed at that time using the innovative technology. I decided to build a proof of concept, using Pong as a simple way to convey how fluid dynamics can be used to drive the gameplay.
How did you encounter Stam's fluid dynamics research?
Jos Stam's research paper was one of the first I came across in my research. It was really a breakthrough because it introduced a new way to have a stable fluid simulation that the user could interact with. I also stumbled on a number of other helpful papers written by some of the top researchers in computational fluid dynamics. Mark Harris wrote an outstanding paper for NVIDIA’s GPU Gems on how to calculate fluid by using pixel shaders on the GPU. Some other useful papers were written by Ron Fedkiw. These guys are my heroes – the amount of dedication and brainpower put into writing these papers is truly amazing, my hat goes off to them. I encourage any programmer who has an interest in fluid dynamics to be brave and read these papers.
What were your expectations from your game, and do you feel the end product lives up to those expectations?
When I first started developing the game, I didn’t know what to expect. I thought the concept for the game was original, but I never expected it to be popular. I had originally posted Plasma Pong
on Gamedev.net asking for constructive criticism when the game made its way on Digg.com and I became the proud recipient of the "Digg Effect". Since the game was being hosted on my school's server, the massive influx of traffic caused the university's server to meltdown temporarily, which was awesome!
I've received overwhelming support from fans sending in donations and feedback. Plasma Pong
has been featured in numerous magazines, G4TV's Cinematech, and at the Games Convention in Leipzig as part of an exhibition called “pong.mythos” for the Computer Game Museum of Berlin. I couldn't be happier with the response, and I'm proud of how the game has progressed. In my next release, I'm really looking forward to getting online multiplayer up and running. A buddy of mine, Jeremy Lucier, is a networking guru so he'll be helping me get this sucker online. A Mac port of the game is almost ready for release as well.
The game seems quite demanding on hardware - was this something you were concerned about?
Absolutely, the game’s performance is a huge issue because the fluid takes so long to compute. I’ve spent a fair amount of time profiling and optimizing the simulation, so performance is up quite a bit since the first release. Although the requirements are a bit steep, I didn’t want to cripple the game for low-end hardware. I think what I have now is a good balance between speed and aesthetics. Players with average hardware can also tune down settings in the performance menu to catch a decent frame rate.
What do you think the most interesting thing about your game is?
One of my favorite features in the game is a separate play mode called the Sandbox. This is the place where you can simply play with every aspect of the fluid simulation. The Sandbox has a graphical toolbar that lets you manipulate the dynamics and rendering of the fluid. You can slosh around the fluid, add dyes, walls, particles, swirls, explosions, jets, even turn the entire simulation into a big bowl of Jello. The fluid can be rendered in 7 completely unique shaders, each with their own 3D lighting effects and customizable color presets. The Sandbox can be either very relaxing or an acid trip, depending on how you set everything up.
How long did development take?
In total the development lasted about 9 months and counting! I started working on the game late last December during my winter break from college. At this time I didn't have a job and was bored as hell, so I was able to program a sizeable chunk of the game. The first release for the game was in April and I've continued working on the game in my spare time. So far I've had three public releases, the current one being on August 27th.
What was the development process like?
The development process for Plasma Pong
was definitely a cool learning experience. When I first started working on the engine, I had absolutely no experience with OpenGL, GLUT, or any of the other key components that make a game. Luckily, Gamedev.net has a bunch of tutorials that got me learning the basics in no time. One of the key lessons I've learned from the first release is that when you keep adding in features with little regard to modularity and performance, things can get messy pretty fast. One of the best decisions I've made was to scrap all of the code from the first release and start developing again from the ground up, putting a lot of thought into how everything was going to be structured. Development was also tough at times because of commitments with school and a summer job, so I've pulled a few all nighters pounding out code.
One of my proudest moments in development was when I added in E.S. Posthumus' Pompeii as the music for the battle royale. The dramatic music was so over the top, I felt like I was in the ultimate fight of good and evil, only to realize I was playing a game of Pong
What do you think of the state of independent development, and how do you think independent games fit into the industry?
Independent games are in a great position because they can take the creative risks that most publishers aren't willing to throw money at. I just wish more indie developers took this opportunity to innovate, instead of producing low budget clones of their mainstream counterparts. I should be one to talk since my game is still a glorified clone of Pong
I also think indie games fit better in the industry now more than ever thanks in part to support from Valve and Microsoft. Both Steam and Xbox Live Arcade are great distribution platforms that give creative indie games the exposure they need to sell.
Have you checked out any of the other IGF games?
I've played a few of the other games on the list. It's cool to see Ichor
, which incorporate fluid dynamics into the gameplay. There are a couple of sizeable titles in the mix which should make things pretty competitive this year.
Which ones are you particularly impressed with, and why?
I'm really impressed with Armadillo Run
, which is a puzzle-solving game based in a physics simulation. The object of the game is to build physically constrained structures that transport an Armadillo across the level into a portal. Armadillo Run
reminds me of The Incredible Machine
, which was one of my favorite games when I was growing up. It's a clever way of using physics to drive the gameplay.
Which recent indie games do you admire, and which recent mainstream titles do you admire, and why?
for the Xbox Live Arcade is probably one of the coolest indie titles I’ve seen, hands down. Another beautiful indie game is Atomic Elbow’s Switchball
, which plays a lot like Marble Madness
Of the mainstream games, I’ve been a fan of first person shooters since Dark Forces
. Half Life 2
is my favorite game in recent memory, because it does an incredible job of immersing the player in the story and incorporating physics into the gameplay. Portal
and Team Fortress 2
both look amazing as well so I can’t wait to try them when Episode 2
comes out. The game at the top of my wish list is easily Crysis
. I’m a graphics junkie, so I was floored when I saw how much the technology had improved since Far Cry
Do you have any messages for your fellow contestants or fans of the IGF?
Best of luck to all of the submissions! I encourage everyone to check out the entry list and play the games, especially Plasma Pong