About this blog
Entries in this blog
Highlights of the sessions I've attended have been:
Serious Games Summit - I particularly enjoyed the talk by Straylight Studios discussing their upcoming SalonStar game (I believe this one could very well become a hit with its current target audience...13-18 year old girls), and the talk by Major Jeremy MacDonald of the Canadian Department of National Defense discussing his group's various experiments in making mod's of several different games for prototyping game-based training products.
Allan Murphy's talk on the top 10 CPU and GPU performance challenges. Some subtle stuff going on here ranging from shader patching, slow depth rendering and other rendering related things to load hit store and L2 cache miss.
Lighting with Purpose. This talk discussed some of the fundamental ways a game can use light to immerse the player, including Form (revealing the world), Feel (manipulating the player), Flow (using light to direct travel through both physical and emotional spaces as the game progresses), and Focus (using light to focus the player's attention). Examples were given from Black Rock Studio's PURE.
Pete Isensee's "Beauty of Destruction." Though there were a number of sessions @ GDC this year discussing techniques for physics-based simulation of destructable game worlds, and though you might think I would attend such a session given my interest in physics, this one was in fact a talk about C++ destructors. Good stuff, really good stuff, here. I have learned a lot from Pete's past GDC talks on C++ and this one was no exception. If you write your games in C++, I would recommend you download this presentation when it becomes available (at gdconf.com proceeding section or possibly Pete's own website). Also take a look at his prior talks (linked from his website, http://www.tantalon.com/pete.htm). There's something for all C++ programmers to learn in there. Highly recommended.
Experimental Gameplay Sessions. I never have time to sit for this entire presentation. It always overlaps with something else. But I was able to see the second half. This is always fun. Katamary Damacy was seen here for the first time in America some years ago (and might not have been released in America if it had not been presented here). Same with Rag Doll Kung Fu, Mark Healey's indie release before he and his partners founded media molecule and built LBP. This year, the team that built Sony's "flower" walked us through their game iteration process, and it was a lot of fun to see how they evolved the gameplay mechanisms to achieve a goal of presenting a safe, free game environment that was filled with love, peace, and harmony. (That is how they described their experience goals!) Hazardous Software, Inc., presented for the first time to a large public audience their "achron," a real-time strategy game in which the teams can freely move units back and forth in time (e.g., research advanced weapons in a future time line, then send them back to the past, or move back into the past to change the future after challenger's plan is revealed in the present). Tyler Glaiel presented his "Closure," in which static levels take on dynamic properties by hiding or revealing parts of the level by manipulating lights. Very cool. Kind of reminds me of Echochrome, in that the level structure behaves based on what you can see and cannot see (Echochrome using occlusion and Closure using light to reveal/hide things).
I'll go to the Larrabee sessions tomorrow (at least one of them), and looking forward to that. Intel's graphics hardware offerings in the past have never been spectacularly well received (and I'm thinking not only of the most recent run of integrated chipsets, but all the way back to the i860), but I am rooting for them on Larrabee. An exciting time to be in graphics!
CRYSIS Next-Gen Effects
Microsoft Game Developer Day: DirectX Futures
Procedural Data Generation in FAR CRY 2
That was an interesting lesson in practial procedural methods. Highly recommended, intuitive but useful advice in there.
I've also posted:
The Inter-Species Game Design Challenge, my last session from 21 February.
Ian covered the Experimental Gameplay Sessions, and I don't have anything major to add there, so I'm not going to write that up.
Tomorrow night, I'll write up my sessions from 22 February, and that'll be the last of my content for GDC 2008. I hope you all enjoyed the writeups and blogs!
Interview with umbra Software
I am done with interviews now. These take the longest time to transcribe (for myself). Now that they're done I can get down to finishing my article writeups.
I have to sleep tonight, to catch up, and its already after 1AM. So, I'm not going to get anything else published tonight. It'll probably be another couple of days before I wrap up my coverage of sessions.
Just one more interview to go, a shorter interview with umbra from the GDC exhibition floor. Plus two more days worth of sessions. Some of this will be posted tomorrow, then the rest should be done by Monday late evening.
Pollinating the Universe: User-generated Content in Spore
I've also posted my summary of Chris Hecker's lecture:
Structure Vs. style
More to come.
More still to come over the next few days!
Tomorrow night I'll get to some of the hourly lectures. I have several lectures and 2 interviews to go (umbra and Havok), so it will be the weekend before all my stuff is published.
I hope you are all enjoying this coverage!
Went to a roundtable on issues with sharing code this morning. Pretty interesting. All about intra-company issues, not things like open source. I have detailed notes, and as with everything else planning to do full writeups over the next week or so.
I visited the exhibition one more time, a quick 20 minute walkthrough. I spent almost no time there this year. Usually, I probably spend maybe 4 hours on the show floor, but at most I think I spent one hour this year. Just a matter of priorities. There certainly was a lot to see there.
I currently am sitting in a North Hall hallway, waiting for them to let us in for the Peter Molyneux talk, which should be a highlight. His understated drama is amusing and he always shows pretty cool stuff.
There is, actually, only one thing I can think of that annoys me about the site. And it is the password cookie system. On some machines (including the laptop I am using this week) the site seems to not save login info. Even though I told it to remember my login name (which works always) and password (which doesn't....on the occasional machine). Even though I explicitly added gamedev.net as a domain that is always allowed to add cookies. I have had to login to the site a couple dozen times since I got to GDC, which never happens on my home machine. I always have those checkboxes checked also. Oh well, just a minor annoyance. And it has the positive benefit of permanently burning that nearly-forgotten password into my brain.
I love gamedev.net. I do. Have for years. And the gamedev people also, are fantastic, passionate, sincere, curious, inventive, honest, fun-loving, driven. In a word....awesome. All of them.
(By the way, I'd like to apologize to Melissa for being totally aloof and not seeing that she was Melissa immediately in the Course Technology booth the other day. My bad. There is no excuse.)
Went to the experimental gameplay session this afternoon. I had a "Drew" moment...shall I call it that?, ;), e.g., wrote the wrong time range on my schedule, and discovered too late that the session bumped into the C++ session. So I skipped the latter and vegged for a while on the 2nd floor of West Hall. Experimental gameplay was divided into various categories this year, including "replay" which dealt with playing with time/parallel timelines. Some super cool games there, including Jonathan Blow's Braid that has been shown now for at least, maybe, 3 years? The other section I found fascinating was "Two Level," the idea that you are playing two game levels at once. Hard to describe. Google "YinYang game" or "Armor Games Shift" for examples. I was expecting to see the IGF finalist FlipSide (unusual HL2 mod) in this category, but I guess it wasn't submitted to experimental gameplay. (There was also a game called "Shadow," not yet released, that had some familiarish gameplay aspects to it. Certain people might know what I mean.) I am thinking about collecting a lot of these experimental games, at least the non-web-based ones. I have no real reason, other than to capture great creative moments in gaming.
Tomorrow's the last day. Peter Molyneux's talk is in the afternoon, and I always enjoy his presentations and mannerisms. Though I never take the fullest possible advantage, I love San Francisco. And though there is an entire day left, I already feel sad that I will leave on Saturday.
This morning I attended a session on procedural content generation for Far Cry 2. Very interesting case study about what is practical, how to manage risks, etc. No talk about algorithms. One interesting point, I though, was that they did not use any procedural geometry generation for their vegetation/flora system. Their artists custom built every model, and they used procedural techniques akin to particle systems to distribute flora on the terrain, based on artist/level-editor-directed style guides. This they did deliberately to ensure a unique look, which is harder to obtain when using tools such as SpeedTree that have either procedurally-generated geometry or standardized libraries of objects.
(Has anyone out there seen the CryEngine 2 physics demo video with teapots tumbling down a San Francisco street? Its a version of the Sony Bravia "Superballs" Superbowl ad. Its out on YouTube and other places. Anyway, perhaps you get the picture, thousands of tiny teapots just tumbling around, while the people in the streets look on, half hiding behind corners, wondering what is up.)
Later in the morning, I spent an hour or so with David Meara, CEO of Havok, and Chris Keogh, a senior engineer with Havok. We talked about Havok's business model of focusing on providing what their customers look ask for and need (rather than go off in wild directions then try to sell a hammer in search of nail---so to speak), and took a look at the latest release of Havok plus the new Destruction tool. Their destruction model looks awesome, and is not based on artist-directed prefracture, e.g., fracture is done at runtime. I should have a full article on this meeting next week or so.
This afternoon, headed to the experimental gameplay session then Pete Isensee's talk on C++. Pete always has some great insights into how to optimize C++ code and avoid problems.
The best comic relief from a winner was the Fez (I think) developer, who had written and recited a small haiku (as opposed to, you know, a large haiku...hmmmm), sporting a monocle and....yep, a fez. Classy. Almost as good as the pirate dudes from a few years ago. Also, there was a little comical "inspirational" video played at some point, advising winners on how to prepare their acceptance speech. The last piece of advice was something like, "if you can't think of anything....propose marriage." A nod to the fellow who actually did that...last year? These shows really are good fun.
I'm going to try and upload a couple of pics. I'm not even sure I know where they are. One is a photo of the Octave Engine physics engine featuring GPU physics by Takahiro Harada, who is also in the photo. This thing, with a million fluid/rigid body particles (er...read his GPU Gems 3 chapter) is running on *6* GPU's, which were in these external boxes off to the side, e.g., not the same SLI configurations the kids have in their gaming desktops these days.
(It took me 3 edits to correct the spelling errors I found above. I hate spelling errors. I can't get over it.)
gamedev.net gang, at the Cheesecake Factory on Union Square.
LONG wait. I think we got a table around ten o'clock. Good
conversation. Everyone has their own flavor of whackiness
Today's a big day! The first day of the GDC 2008 exhibition.
Lots more people. Feels like maybe 3-4 times the amount of
people who had been here earlier in the week. As I mentioned
earlier, I think they expect something like sixteen thousand
people to attend.
For myself, this is the best part of GDC. While the tutorial
days sometimes tend to drag, covering one subject in detail
each day, the latter half of the week enables me to jump
among a wide variety of topics, usually learning something
new every hour. Plus, though I tends towards shy, towards
wallflowerishness (while being friendly), I love being in the
scene, in the community. I am energized, motivated, with
new ideas flowing freely.
This morning, I attended a session optimizing Direct3D
rendering pipelines for multicore processors. Lots of good
info, with the key themes being profile often, profile
using lots of tools, and don't be too naive about approach
Later, I met with ARM to discuss their current mobile 3D
graphics hardware, as well as a new mobile 3D software designed
for their hardware. As with the other company interviews, plan
is to transcribe and publish next week.
Early in the afternoon, I attended a session on challenges
in tools development. Focus here was on *constructing* tools
and not so much exporters/importers. Lots of opinions as
to whether it is best to have all in-engine tools vs. external
tools or plugins to 3rd party tools with exporters. Lots
of scripting engines in use (Python, Lua, Ruby, Perl, C#,
Java, others) but in this audience *very few* custom scripting
languages and lots of good reasons *not* to go custom.
Some cool stuff in the exhibit area also. I did a quick walkthough.
The fellow who did the GPU physics demos linked from the Ogre
forums has a physics engine called OctaveEngine Hongo
(www.octaveengine.co.jp), based on his University research. The
IGF entries are awesome this year, with lots of totally fun
and beautiful casual games.
Mid-afternoon, session on pollinated content (now being called
simply user-generated content) in Spore. Some very cool stuff
here...ability to purchase coffee mugs via Zazzle with
images of your creature, T-shirts, and maybe (if they can
work out the kinks), 3D plastic printouts of your creature. The
demo was done on the latest developer build of Spore. Many
cameras/camcorders in the audience, so I'm sure you if Google
you can find new images shortly.
Last session for today was Chris Hecker's talk on structure vs.
style. Impossible to take detailed notes, given Chris'
tendency to talk at 200% speed. Gist of talk was the idea of
solving "hard interactivity problems" (I'll try to define in
a post-GDC summary) by decomposing the solution into structure
and style. His familiar example: the textured triangle as
structure (well, sort of data structure) is something you can
write fixed code to analyze, query, ray-trace, etc., while
the style is the actual position of the verts, the actual texture,
etc. Kind of obvious, but his point is subtle. The purpose
of the talk seemed to ultimately be that we haven't yet figured
out this decomposition yet for AI. The sort of traditional
ways of modeling AI tend to always end up being code. Approaches
such as neural nets may have simple structure, but the style
(training data) doesn't really have the intuition that makes
it good style. Chris wants us to figure out how to develop a
"Photoshop for AI." Very strange, I know. I sort of get what
he is talking about, but it may be one of those things that
you either get or you don't. And certainly contraversial...not
everyone will agree that this decomposition is a meaningful
idea or possible.
Last things for tonight....the last half of the Booth Crawl and
then the Game Developer's Choice Awards ceremony!
There is one other thing that I think you'll be interested to read once I have the opportunity to transcribe it. I spoke with Mitch Bunnell of Pixelux Entertainment, who spoke to me about their Digital Molecular Matter (DMM) product line. I personally am anxious to see the upcoming LucasArts games that use DMM. Look for this interview sometime post-GDC.
I may attend the rest of the physics tutorial this afternoon, but I might change over to the MS Game Developer's Day session since the physics talk is similar to past years and since I have the current slides on hard copy.
This was one of two tutorial days. I spent most of the day in the "Advanced Visual Effects with Direct3D" tutorial. I've attended the same-named session at past GDC's, but there is rarely much duplication due to the rapidly evolving landscape of graphics hardware. Today was much the same. There was a D3D10+ bent, and it is clear that these speakers see D3D10 and its predecessors becoming the API of choice for 3D rendering in games on the Windows platform. Prototypes of algorithms that might be implemented in D3D11, eventually in hardware, are in development and testing.
The first section of the tutorial focused on D3D10 performance. There are, as with all 3D API's, a myriad of places where bottlenecks can exist, and that list is expanded with version 10 to include, roughly: input assembly, vertex shader, geometry shader, stream output, pixel shader. The core, high level message seemed to be that a naive port of your engine from D3D9 will not result in maximum D3D10 performance, and that you should exploit tools provided by AMD (GPUPerfStudio) and nVidia (NVPerfHUD) to help find and optimize the bottlenecks.
The next two sections discussed hardware tessellation of meshes, with some cool demos. Various GPU vendors have implemented vendor-specific techniques for hardware tessellation in the past, and this seems to have not been extremely popular. My feeling is that it has a fighting chance now. There certainly are compelling reasons, including a reduction in memory bandwidth between the CPU and GPU, ability do more complex animation/physics/etc. pre-tessellation then create detail post-effect on the GPU during tessellation, etc. A key message was that the geometry shader is not the best mechanism to use to implement tessellation, since the stream output is not necessarily as optimal as possible and also because of the inherent limits in the amount of stream output possible from the GS.
Up next, a section on multi-GPU (MGPU) development. The section discussed various approaches to distributing the rendering load across multiple GPU's, then focused on various pitfalls to watch out for when coding for MGPU, e.g., how peer-to-peer copies of data---copying of buffers from one GPU to the other via (maybe, depending on implementation) the CPU has the potential to eliminate the speedup to be gained by using MGPU, if done improperly.
The next section discussed DX10.1 and the future of DX. I won't enumerate the new features of DX10.1 here, but plan to briefly discuss them in a post-GDC article. I will say that one of the demos included AMD-implemented (presumably GPU-based) physics. No details were given about the physics implementation.
Alex Vlachos of Valve discussed various post-processing effects as implemented for The Orange Box. This was the only talk that focused on D3D9 vs. D3D10. The talk including dealing with difference in sRGB gamma correction on PC vs. Xbox360, their approach to tone-mapping for HDR rendering (and why), and their approach to implementing motion blur.
Next was a rapidly presented overview of several advanced soft-shadow-mapping techniques, including the relatively new Percentage Closer Soft Shadowing (PCSS) and Exponential Shadow Maps (ESM), and a technique for backprojecting texels.
The final section discussed the future of Direct3D, including current requests for features and some possible directions. Lots of requests for better integration with art tools for things like subdivision surfaces. Interest in higher quality texture compression, with support for floating point textures. Some experiments currently underway to discover potential improvements in image processing performance. The discussion ended talking about issues...benefits and pitfalls...of making GPU's more general purpose vs. remaining very heavily focused on graphics and its inherent massive parallelism.
Apart from that, I spent some time visiting with gamedev.net staffers and contributors, a great bunch. Went to dinner at a Thai restaurant with a handful of gamedev'ers, where the conversation ranged from possible improvements to gamedev, whether or not game design is easy, alternative languages (Haskell, Smalltalk, Python), and indie vs. mainstream games. Good stuff!
I believe CMPMedia is expecting about sixteen thousand people at GDC this year.
I'm going to spend part of the evening gathering my thoughts, getting prepared for the first day of GDC, tomorrow. Plan is to attend the Advanced Visual Effects with Direct3D session, perhaps mixed with a bit of XNA Developer Day.
There should be wireless access at the Moscone center, and my goal is to blog during the day. I brought my camera, so at some point should have some photos at least.
Things I personally am on the lookout for: info on next-gen GPU technologies for consoles, PC's, and mobile platforms; what is up with game physics, including plans from Havok, nVidia/Ageia, and others; lighting middleware; pipeline tools; innovative application of robust math/physics techniques, etc.