Saturday, February 26, 2011

GDC friend speech pimpage

GDC is next week! I won't be going since there's a lot of Gunstringer stuff going at this stage of the game, and it's almost definitely better that I work on adding more awesome rather than doing GDC and PAX East back to back. Hopefully things will work out scheduling wise next year.

Even though I'll be here in Austin, three of my close friends are giving GDC speeches this year. They're also all about some subjects that have pretty interesting backstories, which means I'm obligated to pimp them out:

Pro Guitar in Rock Band 3
1:30pm Wednesday with Sylvain Dubrofsky

Pro Guitar was probably the most universally hard feature to develop on the Rock Band platform, since it had huge hurdles across every single possible direction. Besides the obvious design work to make real guitar readable in real time to people who haven't played guitar before, there were massive peripheral, legal, patent, licensing and authoring issues to work through.

Sylvain came on to RB3 as the senior gameplay dude, and along with Mike Monsalvatge and Bryn Bennett pretty much turned a flawed and shaky prototype that our pre-production team made into something that shipped in a pretty amazing state. There are hours of stories here with amazing solutions to seemingly unsolvable problems, so it's pretty safe to say that you'll be entertained if you show up.

Design Process and Philosophy of Dance Central
3:00pm Wednesday with Dean Tate (@IamDeanTate)

Dean is awesome, and a good friend from way back when we both lived in Australia. When we were ramping up our design team at Harmonix, I knew that we had to get him in to interview as he'd be perfect for the lead role on Dance Central.

After yelling at him for hours, he finally caved in and moved over to Boston, and made Dance Central as his first lead designer title. Those who've played Dance Central know that it's easily the best Kinect launch title. What's even more amazing is that he designed this on a short development cycle, on pre-release Kinect hardware, all while mentoring a design team so junior that they'd never worked as game designers on a game before Dance Central.

If producing Dance Central in those conditions doesn't say huge amounts about Dean's skills and process as a designer, I don't know what does. Maybe his stunning good looks?

Lessons Learned in Music Development: Brutal Legend, Bioshock and Destroy All Humans
3:30pm Friday with Emily Ridgway (@emilyindustries)

Em's pretty awesome at her job. She built all the audio for Destroy All Humans from scratch with something like a $500 budget and a not so spare meeting room, then kicked ass with Bioshock as the audio director, as well as nailing Brutal Legend's music and sound integration. She's now doing her own thing at her outsource startup Emily Industries, which I'd definitely recommend if you need audio outsource work.

It's a late session on the last day, which means it's the perfect session for you to attend and just listen to a bunch of cool sounds while relaxing from the four days of partying you did previously.

Sunday, December 26, 2010

More than you should need to know about splash screens

I’ve started listening to podcasts in my car while I drive to and from work. It’s mainly because I’m sick of Austin’s 101.X only playing ads for the same four strip clubs interspersed with Kings of Leon, and really wanted something else to listen to.

Easily one of the best in the queue is done by the guys at Giant Bomb. If you haven’t been listening to it, I 100% recommend adding it to your podcasting device of choice.

Anyway, in the last episode, someone wrote in and asked why splash screens exist. The response back was basically “Uh, I dunno, maybe it’s a holdover from arcades, or because developers love seeing the name of their games or something”.

My designer sense shed a single tear. The splash screen is actually a pretty important functional piece of the backend guts of how most games work, but if everything goes right nobody ever finds out why! So, in an effort to get my blog writing chops back up, I decided to brain dump more than you should possibly ever want to know about splash screens.


Quick History Lesson

It's kind of a long and twisty story, since it's evolved from nothing into something that's semi-critical, back into something that you could potentially eliminate if you're smart about your UI design and have a lot of coder time.

Originally, the whole concept of a splash screen originated from the arcades. It's first purpose was to advertise the game in conjunction with a gameplay demo in what's called the "attract loop".

Up until as recently as the Xbox 1 and the PlayStation 2, having an attract loop was a certification requirement - in other words, if you didn't have an attract loop, your game would not be allowed to ship. First parties would even dictate the maximum time you could spend on the splash screen before moving to your attract footage (For the curious, it was 30 seconds on the PS2, 90 seconds on the Xbox 1). With the current generation of consoles, those certification requirements have been retired.

However, games today still have splash screens. Why is this? Well, there are a couple of reasons why:

Determining the “Active Player”, or the “Player of Interest”.

Starting with the original Xbox, some consoles have required that games figure out who the “active player” is.

The active player is a concept that’s used in single player (or, more specifically, single profile) games a lot to determine whose profile and which set of save data to use. From a design perspective, it’s pretty safe to assume that the person who’s pressing Start on the splash screen is the person who wants to play the game.

The splash screen is important because it allows us to figure out who the connected profile is before we move to a more functional screen. Knowing the active player before the main menu means that we can load their save and figure out if we need to show a “Continue Game” button instead of just a “New Game” button, figure out if they’re online-enabled so that we can show online game modes and messages of the day, load any special control settings that would be helpful on the main menu, and generally just let us get a session in order.

Now, you could argue that you could do any of this from any of the menu items on the main menu, but...

The time between the Splash Screen and the Main Menu is the safest place to set up a game session.

...because it’s a chokepoint.

The short story is that it makes things less fragile to know the active controller and the save data that’s being used as early as possible. It means you only have to test one spot (pressing start) instead of the half-dozen or so places on the main menu, each of which might have different reasons for failing.

In the age of motion control, reducing the number of entry methods for enrolling is even more important. Kinect games are a great example, as they require an “enrollment” phase to show that a particular person wants to play and isn’t just standing around or sitting on the couch.

It was awesome to watch fellow Aussie ex-pat Dean Tate wrestle with solving this issue on Dance Central without the benefit of any other games to reference. Mainly, it’s because I find Dean’s tears hilarious. Yes, I’m a terrible person.

(Dean Tate, in his natural non-dancing habitat)

Dean’s solution was to require players to do a single unique gesture to signal their intent to play (in this case, Dance Central’s swipe) before any other options were available, since it was way safer and more accurate than having multiple sets of main menu buttons or gestures that can be accidentally accessed by someone walking into the sensor’s view. In this case, the splash screen was critical in making sure the right person was playing.

Designers are lazy, part #1: join-in-progress is hard.

Having said all of that, there are some cases where the concept of a single active profile doesn’t really apply

#1a) Multiplayer games that support multiple profiles, but no join-in-progress
On most multiplayer games, designers treat the matchmaking screen as their single chokepoint for handling all of the per-player things that they’d usually handle between splash and main.

It’s really handy, since you now have one location that you have to worry about identifying the profile coming into the game, load their save data, make sure it’s valid, make sure that the profile is allowed to play in this session type, and a bunch of other fun stuff. It’s essentially the functional equivalent of a splash screen for multiplayer in terms of identifying the “active profiles”.

It’s also handy for cutting down on edge cases further on in the game, because from that point on in the flow you can assume that all the players are in, and the absolute worst case thing that’ll happen is some of them will disappear.

But, at its core, you’re still choking player identification on one screen.

#1b) Join-in-progress

True join-in-progress is a completely different beast.

I say “true”, because a lot of developers do join-in-progress play with only one “active profile”. It basically means that only one person gets progress, and everyone else is just along for the ride. It’s cheap and it’s relatively easy to communicate to players (“hey, you’re playing on X’s save file!”), but it’s super lame if you want to progress your progress alongside someone else.

True join-in-progress means that you have to be prepared to do all of the things that you’d usually do between the splash screen and the main menu on any screen. You then also have to figure out how you’re going to let the player respond to things going wrong, like joining in a middle of a game with a player that has a corrupted save game - you have to give the player a way to resolve the situation, but in a way that works on any screen.

It’s hard work doing this for multiple reasons. Dealing with the flow ramifications of saving and loading happening anywhere is usually enough for most multiplayer games to skip it, but expanding that to all of the flow on cases like resolving game progress across different people who’ve played for different times, or communicating four different player’s progression at once, well, it’s usually not worth the effort for most people.

I could write a whole separate blog post about this. I really wanted to get true join-in-progress into Rock Band 3, since I wanted players to be able to progress their instrument career regardless of whether they were playing alone or with someone else. While I think we kicked arse with things like the Overshell and making it possible to progress independently, we stumbled on communicating how that works, and how it differs from the “this is x’s save” model that Dance Central and RB2 used.

But, that’s another blog post for another time. Back on track, there’s one other excuse for a splash screen...

Designers are lazy, part #2: the “palette cleanser” excuse.

Of course, all of this is just the mechanical reasons for why the splash screen exists. Because it has existed for so long, it’s pretty easy to claim that it falls into the standard muscle memory of a title. Removing it and just showing a number of options first could make people feel uncomfortable! It also serves as the “opening” of your present of a game you’ve just purchased, which is also a pretty satisfying response.

There’s also great arguments against all of this. Grand Theft Auto 4 pre-DLC went straight into gameplay, and it worked perfectly. They also had a pretty ingenious way of identifying the active controller and loading the save without any real interaction, even if it did require getting waivers from various first parties.


There. You now know more than you ever probably want to know about why splash screens exist, at least from one guy’s perspective.

Sunday, September 19, 2010

Why games are awesome (and why we aren't all going to die)

I was invited recently to give a microtalk at the Austin IGDA meeting, and as someone who has a poor memory of how long it takes to prepare a good speech, I accepted.

It's also the first time I've done an opinion speech, and I was pretty nervous about not having a backlog of prior development work and 'lessons learned' to lean on. It's also the first time I've ever had to boil a talk to under 10 minutes, which was also pretty scary but also appealed to my optimization part of my brain.

So, what did I talk about? The whole "doom and gloom" reports that had been coming in from analysts had been bugging me recently, so I figured I'd tackle them head on.

Thankfully, the IGDA Austin crowd was super supportive, and cheered me on all the way to the Bill Pullman-lifted ending. Thanks to everyone who showed to listen to all of our microtalks!

Since it's a microtalk, there's a bunch of stuff that I had to cut and just leave the big message. I'm sure people are going to see this online and pick apart small points (for example, "sure, but retail titles make more money because they cost more"/"but Rock Band made less dollars over time"), and there's arguments against that ("sure, but that's gross profit. The net profit is a completely different story in most cases") and on and on, but I think the bigger message is still true - NPDs are no longer the only source of information, downloaded titles are equal to retail titles, and people need to start looking at everything on both the release platform and attached title sales rather than just one subsection.

But yeah, it's a topic that isn't as black and white as "here's some dev lessons learned" and I doubt that everyone's going to agree with me. Still, It was fun to do a short rant topic about something I'm passionate about, and it's helped to make me a better speechwriter.

Saturday, September 11, 2010

PAX 10 Rock Band Panel Videos

Thanks to everyone that came out early on Friday morning to watch Bchan, Drake, Trites and I answer questions about Rock Band 3, as well as show some cool behind the scenes footage. It was awesome catching up with the old crew, and still awesome again to see everyone enjoy Rock Band 3 on the floor.

If you missed it, here's the video courtesy of RockBandAide!

Sunday, August 29, 2010

PAX and you! (or more specifically, me)

PAX is this coming weekend! There are a few things going on around that I feel the urge to pimp out:

A panel that I'm on!

Rock Band 3 Design Q&A Free-for-all! (Friday 10am, Pegasus Theater)

Holy crap, a design team semi-reunion! And we're the first panel of the show! And we're in the biggest room! You should come and hear us chat about Rock Band 3, as well as ask us any questions. There's a bunch of awesome behind the scenes photos and materials that we'll have on tap if the right question comes up, like this one of Sylvain doing unmentionable things to an inflatable kangaroo and a keyboard controller prototype:

It's also very most likely my last Rock Band-related thing I'll be at with other Harmonixers, so you should come and ask me incredibly awkward questions.

A panel with other Twisted Pixel representation!

Can Publishers Add Value for Indie Developers? (Sunday 2pm, Serpent Theater)

Sure, I'm biased since Twisted Pixel CEO and all round nice guy Mike Wilford is on this panel, but this is essentialy a who's who of XBLA games on one panel. If you liked Shank, Deathspank, the Penny-Arcade games, Monday Night Combat, or any of Twisted Pixel's games, you should come to this panel.

An awesome booth!

Twisted Pixel have a booth on the Expo floor, which is going to be crammed with awesomeness. Come play the full and final version of Comic Jumper before it's released, or sing along with Chainsaw as he plays and sings "Donuts, Go Nuts" live.

There's also a huge amount of awesome merch there, like T-Shirts, posters, and stuffed Maws! You should stop by booth #3003, say hi, and buy some stuff to support us!

Omeganaut Eric Chon!

Fellow Harmonix Alumni-er Eric Chon has been chosen out of thousands to fight for the title of PAX Omeganaut Champion. He is an awesome and swell dude, and you should follow his journey as he surely crushes everybody in front of him.

Friday, July 2, 2010

Moving on

I came to the realisation recently that my career has been driven by a secret achievement grind, hidden relatively successfully by the fun of making games.

It started off pretty innocently. "Work on a game" seemed like a pretty fun achievement to go for as a gamer, and it brought me into my first games job in the late '90s, but the first hit is always free. "Work on a game" very quickly leads to "Ship a game".

So you ship a game, and get the adrenaline rush of being able to show something you made to your friends and the world. The trick here though is that you very quickly realise the path you were on before was the tutorial, and now you've got multiple paths in this huge world to chase down for completion.

"Ship a game" gets replaced with things like "Ship a game that's good" and "Ship a game that non-gamers recognise when I mention the name of it". There's sidequests of "Make an original IP" and "Make a game that people still replay after the first month". They're great goals that give you design constraints on the fun and awesomeness of making games.

This was great until I started working at Harmonix. Working on something like Rock Band basically allows you to auto-complete most of the achievements on your life list. "Make a game with unique controllers", "Make a game I'm not sick of after making it", "Make a game that makes first parties do anything to help you" and "Make a game that hits the zeitgeist" all got annihilated in the course of a few years.

At some point during all of this, I forgot to keep track of what achievements I was going for. The sheer fun of crafting new experiences for players puts everything else in the background. Sure, the hit from releasing the title and seeing people enjoy your games was still a big part of it, but I craved the hit of being hands on. It's 100% of your job as a staff designer, but as I became a senior and then a lead on AAA titles with 200+ people on them, the ability to chart the vision and the direction of a title starts to encroach how much time you can spend tweaking the details personally.

This realisation put me in a weird position: I want to be able to help drive the vision and direction of a game, but at the same time be hands on and physically implement and iterate on the low level of making games in a more substantial way than time affords me when working as a lead on multi-hundred person titles.

So, with Rock Band 3 now design complete and on the final path to 0 bugs, GM and distribution, I decided to do that. Today's my last day in the office at Harmonix. Tomorrow, I hop on a plane and fly down to Austin, TX, where I'll get ready to start work at Twisted Pixel on a ridiculously cool new project. It's the holy grail of game design positions - I'll get to contribute and help drive the direction of a well funded and supported new title with a close knit superteam, while at the same time being hands on and able to directly impact all aspects of the game. 

I'm sure new achievements will spawn and complete that I didn't even know about while I'm there, and I know we'll be making some amazing and memorable games, but that's not the only goal anymore. I'll be too busy having fun working on awesome new games, learning a whole new set of ways to make said awesome games, eating breakfast tacos, and never shovelling snow ever again to notice.