GDC Notes: Comparison of XBLA, PSN, iPhone

On Wednesday of GDC I attended Braving the Stormy Waters of Xbox Live Arcade and PSN: Smaller is NOT Easier. Panel title aside, it was really a comparison of developing for XBox Live Arcade, PlayStation Network, and iPhone. First, a terminology note. I’m tempted to call these games “indie games”, but even companies as large as Capcom are creating games for these platforms. Thus, I’ll call them “small games”. Here are the lessons I took away:

It’s hard to market small games. Use twitter, facebook, or youtube to build a community and spread your game via word of mouth. Go to conferences to spread the word if you must. Viral is the way to go.

It’s okay to ship incomplete as long as people buy into your vision and you continue to release updates. iPhone community is good about rerating updated apps. They gave an example of a game that went from 500th rank to 1 after key updates, but I forgot what it was.

ON THE OTHER HAND: on XBox/PSN, updating is too expensive, because it initiates another round of compliance checks. iPhone looks to be the easiest platform with a 97% app acceptance rate.

XBox 360 allows simultaneous global release of a title. PSN doesn’t. On the other hand, PSN is starving for content, so they’ll be very helpful. But they’re less organized than Microsoft.

Don’t depend on a launch window: you can’t control it. If a high-profile AAA game (Fable 2, say) ships the same week as you, you won’t get any traffic.

Along those lines, digital distribution (DD) is very weak in the traditional retail game season: fall/christmas. Launch your DD games in spring. Maybe someone will figure out how to take advantage of DD at Christmas.

Several people commented that small games are hard. You need to produce a new title every few months, which is very tiring. No time for long, thoughtful showers. You’ll quickly learn which programmers are actually pulling their weight. I got the impression small projects require more talented team members.

No mention of WiiWare, Flash, web, or desktop games.

GDC – Day 5

It’s almost over! We’re all tired and smelly and ready to go home.

My Amp Goes Up To 11: Audio Reference Levels and Dynamics in Games

Way over my head. Something about standardizing volume levels for various things within games. One huge complaint was about how loud the PlayStation 2 startup sound is.

Will Wright – The Future of Content

:O~~ I apologize to all of you who didn’t get to see this in person. It was absolutely amazing. (When will GDC learn that Will Wright needs a freaking auditorium? Come on, he’s like the most popular guy here.) I may write more about his project later, but there’s no way I’ll be able to do it justice. Google for Spore if others have written already.

Mobile Game Development with Java 3D

Not Java3D. They apparently have software renderers in Java that get decent performance on cell phones. Etc.

New Simulation Architectures and Algorithms for Game Physics

The speaker had a poor grasp of time and of English, so this talk turned out to be totally unintelligible and useless.

Conference Associate Postmortem

I won two prizes! First, a book on programming games with Lua, Python, and Ruby. Of course, I already knew most everything in the book, so it was certainly okay by me to return it in order to claim my bigger prize. Some Caligari (Truespace makers) game mod tool. I gave it to Ted, since he probably would get more out of it.

Conference is over! It’s really great to be home. A beautiful 16 degrees outside!

GDC – Day 4

Thursday was my busiest day of the week. I worked for six hours.

The State of Game Industry Crediting

Roundtable format. Small room. Conclusions: The industry needs to standardize crediting practices so that developers can more easily move within the industry. Don’t want to copy too much from the film industry, but we need a way to verify that what people put on their resumes (I worked on X and Y games.) is true and accurate. Other issues include negotiating for credit as well as pay, crediting subcontractors and middleware providers, listing uncredited people in an IMDB-like database – perhaps hosted by the IGDA, and standardizing credits in other countries.

Nintendo Keynote (Heart of a Gamer – Satoru Iwata)

“On my business card, I am a corporate professional [sic – not sure what he really said]. In my mind, I am a game developer. In my heart, I am a gamer.” Followed by much applause. He went through his history of game development accompanied with great anecdotes and photos. Then: “How have games gotten bigger? Budgets. Content. Teams. Complexity.” “How have games gotten smaller? Risks. Genres. Variety.” Tidbit: “Software sells hardware. Franchises sell software. The best franchises are created within the game industry, not taken from film and books.” More applause.

We got to see some new footage of the new Zelda game. Looks GREAT.

The future of Nintendo: huge focus on wireless and innovative hardware and interfaces. More focus on entertainment, less focus on traditional games. The four I’s: Innovative. Intuitive. Inviting. Interface.

Then they brought up people celebrating birthdays and let them play Mario Kart DS over the wireless network on stage. Wish I was one of them.

Two more game demos: Nintendogs. Click the link, it’s really hard to describe. Imagine neopets^100. You use the microphone to teach your dog commands. You pet it with the stylus. You can even throw a ball for it. Then they have this game thing called Electroplankton (sp?) where you use the stylus to generate your own music. Click on fish and watery creatures and stuff. It’s weirdness.

Rest of the Day

I worked a dumb talk on programming for the N-Gage. I also saw some interesting but not groundbreaking things with animating characters in Softimage|XSI.

Then sleep.

GDC – Day 3

Technical Issues in Tools Development

Roundtable format. I didn’t get much out of this. Most of it was about the use of databases in games. Some discussion of designers and artists visually scripting versus hiring a programmer to do the scripting for them. Interesting tidbit: Madden uses an in-game SQL-like database to query statistics, player information, animations, etc. Sounds like existing version control software for assets doesn’t handle dependencies well. (It’s not easy to query for models that reference a certain texture, for example.)

Microsoft Keynote

Microsoft wins. XBox 2 is going to be pretty cool, especially for the developers. J Allard says… Microsoft cares about game usability and consistency. Thus, they are building a whole framework for things like system pop-up notifications. They want nearly every game to connect with XBox Live. They have this thing called the “Gamer Card” where you can connect with your friends list, view player ratings, and challenge other players to games.

They’re also building a developer studio-like thing for programmers *and* artists. Not too many details yet.

Micropayments! Microsoft is going to be the first company to get micropayments in the mainstream, provided they don’t crash and burn. It’ll be interesting at least.

This focus on developers is key. Good quote – and subtle dig at Sony – “If you design your hardware to have the maximum peak performance, but the first game takes years to develop, you haven’t done anything for the developers.”

Managing the QA Process

This roundtable was a disaster. The conference staff decided it would be a good idea to put TWO roundtables in one room, separated by a thin cloth wall. Notice that cloth doesn’t really prevent the other’s discussion from spilling into yours.

Physics in Parallel: Simulation on 7th Gen Hardware

David Wu says (in a humorous but unorganized and silly way)… “7th generation” hardware is massively parallel, supports large computational intensity, and memory access is somewhat expensive and high-latency. This talk discussed how to efficiently make use of it for physical simulation. Not much in here that you wouldn’t learn from browsing some papers or taking a computer science class on parallel programming. Explanation of various sync structures (spin locks, lock-free structures, critsecs) and parallelization methods (forking, pipelining). The interesting parts I remember: collision detection is forked, AI is serial, physics/integration/constraint-solving is forked, rendering is forked and pipelined, audio is on another thread. He did say that it’s useful to have your scene tree structures contain a large number of children (8) to help localize memory access and make several decisions at once, improving branch prediction.

Also! I met Brendan Eich (JavaScript inventor, Mozilla manager) again today. I guess he goes to GDC to sort of learn about the state of our corner of the industry and cross-polinate. It was good to see him again.

Why You Should Have Paid Attention in Multivariable Calculus

Chris Hecker is hilarious. The talk contained random tidbits of vector calculus – mostly derivation – and insights into how it related to linear algebra. Not sure how I could explain it without destroying it. :) If you ever have the chance to see him talk, go. It’s amusing. Was going to say hi, but I didn’t want to interrupt the crowd of people around him with a “Hi! I’m from the Cal3D list!”.

Booth Crawl

Beer. Chinese food. People. Met Lee Wilson and some friends of his. Met Bill-Licea Kane of ATI Research (ARB dude, works on GLSL I think) and griped about a few things. :) Met Victor Jiminez of Northrup Grumman (sp?) and got his card. Met some other dude at ATI who basically told me I was silly for using OpenGL on Radeons. Looks like he was trying to sell some FireGL cards… :P Went out to sushi with Lee, Hans (OpenGL ES guy), and Steve (AI guy). I was rambling about reducing/eliminating fragmentation on consoles using a page table, and Steve says “You don’t know this, but I wrote the virtual memory subsystem on the GameCube.” heh. Got his feedback, and it looks like I’m not totally making stuff up. So Sony! Make your developers happy! Listen to me!

Game Developers Choice Awards

Half-Life 2 This. Half-Life 2 That. Katamari won a lot too. Some drunk or brain-fried people rambled for a while. An absurdly retarded reality TV spoof “Career Eye for the Game Guy” got booed. One of the Gish developers proposed to his girlfriend on stage while accepting an award.

(I’m behind a few days, but I have to go to a talk now. More later.) Update: Everyone took my advice and went to see Chris Hecker again. People spilling out into the hallway.

Wednesday, in short: I saw cool things and forced myself to meet cool people.

GDC – Day 2

Stayed in the Next Generation Rendering with OpenGL tutorial for the whole day. To summarize: Framebuffer Objects are cool. (They took their sweet time, though!) NVidia has some very sweet performance analysis tools coming out. The folks at Graphic Remedy have a neat tool gDEBugger, but I certainly can’t afford it at $500 / seat. GPGPU is still cool.

I did learn a few new things about how to optimize shaders on modern graphics architectures. Texture fetches are still slow on ATI cards, at least relative to calculations. (On NVidia, it’s the opposite.)

OpenGL 2.0 is going to have some good changes, especially related to the shading language. It’s still in a bit of flux though.

Heh, in hindsight, I don’t remember all that much. But I’ll attribute that to my context-sensitive-access-biased memory.

GDC – Day 1

Went to a talk on the implementation of networked games. The consensus was “It’s hard. Very hard. We don’t know a great way to do it, but here are the approaches we took.” So it would be interesting to define some sort of system or algebra that would alleviate the issues in programming networked systems. Something to think about, at least. One of the guys was a senior engineer on Northrop Grumman’s battlespace projects (Bryan and Jared might be interested…).

Didn’t get to see the Final Fantasy concert. :( They sold out just as I found out that I had people to go with.

Instead, I played the Initial D game at a nearby arcade!

GDC – Day 0

Flying was surprisingly painless, sans the tiredness. BART is fast and easy. Go mass transit. Our hotel is nice. TONS of CAs this year. Got to see Brandon again and briefly meet Kevin. (Couldn’t find him afterwards.) Had a headache from lack of sleep and lack of food, so didn’t do anything but sleep after the meeting.