A Perfect Game?

I don't write about design so much as of late, but I decided to partly because of the impact a game made on me over thanksgiving break and the brainstorming I've been doing to come up with an idea to pitch to my class at the beginning of next semester (due on the first day of class, crazy right?).


So this game that made such a huge impression on me: Braid. A little late to the game on my part, because I had only heard good things about it... but I had trouble finding myself in the mood to seriously sit down and play a 2D platformer, but when I did, Braid just blew me away. And the reason is that Jonathan Blow sat down and made what I would be tempted to call a perfect game. Maybe not my favorite game of all time, or even the best game, but a perfect game. The reason that I say perfect is because Braid is a complete game. Something that developers I think have learned to think of as impossible because no matter what it's got to ship on time, right?

Wrong. Chris Hecker had a very interesting rant about this at GDC entitled "Please Finish Your Game" that uses Braid as one its core examples. Braid is a finished game, and to me that's very important, because that means that Braid can convey its ideas in much the same way that a good piece of literature can.

But what makes Braid feel like a game that's been completed? It's partly because there are a set of underlying concepts, messages, and themes that drive the games purpose for existence to be something other than end of quarter profits. That's just the first step though. The second is that from these ideas came mechanics and puzzles that complement those ideas. These core elements of the gameplay are accompanied by art, pieces of writing, and music that all fits with what is happening. and part of it is that I understand is that Jonathan Blow had time to go through and polish the gameplay multiple times while his artist iterated over an art direction several times. As a result the game stands as a testament to what a game that wants to be called "art" should actually be striving for- it should be something that conveys its underlying message from every angle you examine it from.

Nothing is without purpose in the game. I was recently asked at a party what type of games I want to make after I graduate. That's the type of game I want to make. But I don't want to make them after I graduate. I want to make them now.

Advanced Graphics Final Project: Motion Blur

For part of my final project in CSE 872: Advanced Graphics, I did a variety of implementations of Real-Time Motion Blur. It was a fun project, and this blog might see me post more implementations in the future (I've been playing around with a velocity buffer based one), but for now:

Technique 1: An Accumulation Buffer
This is a really easy technique that essentially is just the averaging together of several frames, causing motion from dynamic objects and camera motion to become blurred. The reality is that is really just impractical, but converges to a correct solution if a small enough time step and enough samples are used. But in a real-time implementation, this will almost never be feasible. As a result, under-sampling known as "ghosting" can be seen. Check out this shot from my project:

Technique 2: Motion Blur as a Post Process
This is a technique presented in the excellent GPU Gems 3, where world space positions are reconstructed from the depth buffer during post processing. The difference between the current frame's position and the previous frame's position will produce a velocity vector that can then be used to blur the image. However, this technique only works for static geometry (camera motion), but the results are good:


Technique 3: Just Fake It with a Radial Blur already
This one I actually used in a game project recently that I will probably be posting about in the near future. This is something that Real-Time Rendering points out about Assassin's Creed- the effectiveness of a simple radial blur looks very favorable for certain instances of forward motion. We use it for the boos functionality on the vehicle in my game, and Assassin's Creed uses it for chase sequences. Here's a shot of my demo scene:


So that sums up my current round of motion blur techniques for my final. I might talk about the Depth of Field component of my project, but then again maybe not.

Next Semester: Enter Teaching Assistant

So I'm taking a break from my most recent project (which I'll be posting about soon I promise) to write a little post on something I'm doing this spring. I will be a TA for the Digital Game Design class at Michigan State, the first class that students take in our Game Development Specialization.


This is really exciting to me for a variety of reasons:
  • I like helping people make games. Its awesome to help someone learn the technical aspects in game development so that they can craft interesting experiences. Art games anyone? (hint: go play pOnd)
  • I know that by helping others, I am helping my development community in an important way. When I was a freshman, I worked with several seniors on game projects and game jams. They helped me every step of the way and it's the only reason I'm where I'm at today.
  • Maybe I can help people not write such terrible code. Us programmers are supposed to be the enablers right? Aras had some really good points in a recent presentation.

Unite 2010 round-up

I've been in Montreal all week for Unite 2010 and I figured I post up my thought on the conference now that things are winding down as we wait for our flight back to the states. In short summary - the conference was awesome, for something that is substantially cheaper than the spring's GDC festivities, the quality of sessions was superb.


Some highlights of the week were:
  • Tools: Lots of talk about developers simplifying their workflow and empowering their artists/designers by writing custom tools with Unity's great flexibility. Adam Mechtley = genius editor tools, best hope his recorded talks get posted.
  • New breadth of platforms: Unity Technologies is trying to become all encompassing, now spreading to support for Windows, Mac, Web Player, iPhone, Android, 360, PS3, and Wii. The demo of the PS3 version looked like it was very easy to use.
  • Unity Asset Store means that Unity Tech now also includes people that make middleware for middleware in their target consumer base.
  • Great Conference party hosted by Unity Tech on Thursday. Open bar = win.
  • David Helgason's collar was, as usual, popped straighter than god.

What makes games look good?

After several rounds of seeing games in my game development portfolio class, I;ve begun to ask myself why do so many of the games struggle to achieve an acceptable level if visual quality. As a graphics programmer this is something that concerns me greatly because often times our purpose is to facillitate the best looking game possible. So why then do many student projects fail to achieve a professional level quality in their aesthetic?

It would be simple enough to argue that academic programs with a smaller pool of artists will be the driving factor behind poor game aesthetics. I think the issue goes a lot deeper than this for a couple of reasons, but having a stronger artist community will indirectly be associated with better looking games. The reason I think this is that it takes a large slice of the team to make a visually pleasing game. Programmers need to have good animation controllers and neccessary shaders, artists need quality textures and animation, and designers need to create levels that allow players to take in the aesthetics of the game properly.

So in the end, I almost feel like the greatest obstacle to good looking student games is a general lack of caring, which almost seems a little harsh. However, I think students too readily cave to only just scraping by with their games for class. This is why a strong artist community will have a strong impact, because not only will artists have better resourcces and expectations for their artwork, but they will also know when their programmers and designers are screwing them over.

All in all, I hope to see more good looking student games in the future.