My notes for the Wednesday GDC 2013 sessions:

11:00am: Ideas per Second: How Double Fine Optimizes for Human Performance, Nathan Martz

This is probably the talk that I’m going to this year that will be the most relevant to my day job. Seems like good advice, though I’m not sure there’s anything here that was much of a revelation to me.

He says agility is important, where by ‘agility’ he means: exploring the ideas you care about as quickly as possible, and the ability to change quickly when things don’t work out.

Double Fine went from producing 2-3 hours of gameplay a year (during the years when Psychonauts and Brutal Legend were in development) to 16.

Goal of the talk: discuss simple, practical ways to explore the ideas you care about more effectively and more sustainably.

The Team:

A formative experience for him: being part of a dysfunctional programming team, where that dysfunction showed up every day, every meeting. Their fundamental (mistaken) belief was that there’s One True Way to write software.

A good team is: any team that works well together. How do we do that?

  • Unifying vision
  • Hiring is the most important decision you’ll ever make

Never hire unless you’re really confident that they’re the right person. (Double Fine believes in long-term “career hires”.) Don’t hire jerks. Candidates interview with the entire department, plus a cross-section of related disciplines, and Tim. Group discussion after the interview.

Personal(ized) interviews: equal parts fit and ability. Ask about problems, not puzzles. Tailor the interview to the candidate. Questions should demonstrate the intelligence of the applicant, not the interviewer.

Scaling for larger orgs: meet with entire (sub)team; schedule cross-functional interviews; discuss afterwards as a group. And provide a basic level of interview training.

  • Code ownership

Very powerful; very dangerous. Leads to pride of ownership and continuity of vision; downsides are territoriality, needless drama, and concentrating risk.

To get pride without selfishness, think of the codebase as a communal garden. It belongs to everyone, but most people focus on a few plots they like. And ask before digging up something you didn’t plant.

  • Architecture and improv

It’s always hard to know when to go big or keep it simple. The goal should always be the simplest software that solves the problem. A heuristic they use: go for big plans when you have clearly defined goals, but iterate and keep it simple when you don’t.

The Technology:

Their codebase optimizes for human productivity. So how can we make everyone more effective?

Focus on the interesting problems. Iterate as quickly as possible. Leverage your past investments.

For their native (C++) toolbox, they’ve invested in: templatized containers; a reflection/introspections system; componentized entities; a task/threading framework; multiplatform abstraction; an aggressive focus on physical dependencies.

Their main approach to memory and dynamic allocation: don’t let allocation stop iteration. (They are “memory libertines”.) They only optimize reactively, in areas that prove to be performance/memory bottlenecks (and they do have stricter standards for low-level systems); don’t be so cavalier that you crash, but don’t worry too much in advance. Also, the majority of memory in games is used by assets, not the engine.

They rely a lot on dynamic languages: Lua for gameplay, Python for tools and build system. Finding the right balance is tricky: Psychonauts was 70% Lua, which turned out to be too much for that game (partly because that was their first game, so less good tooling). Brutal Legend was 10% Lua, that was too far in the other direction. Modern games in their Buddha engine: 10% – 25% Lua; in their Moai engine, 50% Lua.

They learned a lot from Moai/Lua: C++ code is services for Lua. Make it easy to move code back and forth. Co-routines are very important, as are debugging tools.

Continuous integration, yay. Which requires a good build infrastructure; that’s been one of their best investments, and has been critical for multi-project development.

Tools are also important in content development; a constant struggle to do them well. Investments are precious; make them count. Put them in game whenever possible. Make them everyone’s responsibility.

(Later, in response to an audience question, he said that hot reloading of assets was very important for them when iterating.)

Middleware: they can be a huge accelerator, but they can end up owning you. So: know your core competencies; and check out open source libraries.

Reap what you sow. Software is electronic knowledge; throwing away software is throwing away knowledge. In particular, stick with a common set of frameworks/languages, don’t chase the flavor of the year.

Sustainability:

This is vitally important. We want to build great organizations with repeatable successes; we want lifelong careers, we want to like our jobs. (And if we’re managers, we want our employees to like theirs!)

Double Fine made big mistakes with this when developing Psychonauts. (During the peak of its crunch, almost 40% of the code was checked in between 8pm and 8am.) Significantly better since then, even as they’re doing more checkins in total.

What does “sustainable” mean? From a personal level: I can do this job my entire life, even with kids, without living at work. And from a company: I can stay in business indefinitely, remaining profitable while preserving your core values.

To do this: prioritize focus and intensity, not hours. Overtime must be elective. Let individuals contribute in ways and at times that make sense for them. Use overtime to take the game from great to exceptional.

Think about the bus factor. This is a major cause of stress for everybody: for the manager, but also for individual contributors. So prioritize generalists over specialists: you don’t want concentrated knowledge. And document and disseminate your knowledge. (Hire people who like each other!)

Play the whole team. Don’t lean on the same high performers for everything. (This is hard, because high performers volunteer too often.) Force yourself to find opportunities for other people to contribute.

2:00pm: Empowering the Player in a Story-Rich World: Co-Directing Dishonored, Harvey Smith and Raphael Colantonio

I haven’t played Dishonored, but they seemed to be thinking interesting things from a systems point of view, so I figured I’d give the talk a try. And I enjoyed it, and now I’m a bit more likely to play Dishonored.

Here are the speakers’ slides.

They want to enable player improvisation in a story-rich environment: balance player creativity versus narrative constraints. Guide/attract instead of dictating the player’s path. Pull-based narrative.

General Purpose Systems:

Entities influence each other though an input/output system. E.g. a grenade puts out a certain kind of damage, and a door listens for a certain kind of damage, so if a grenade happens to land near a door, the door will blow open. So game mechanics listen to each other. Or arrows send a “pierce” stimulus, candles send a “fire” stimulus, fire arrows send both, and different objects (guards, barrels, oil barrels, oil slicks) respond to one or both of those stimuli.

Downsides: sometimes there are non-dramatic moments; players are responsible for creating fun, but can instead get lost. You need enough entities with relationships, and you can get bugs.

Process:

  1. Plan general purpose rules
  2. Implement
  3. Play for a while
  4. Add specific rules

Take note of 3: let systems live together for a while even if they feel unfinished. Specific rules might support interesting interactions (“possession fall”) or fix bugs (“wall of light” exploit – wall of light killing 1 NPC following you is okay, but killing 10 following you doesn’t make sense).

Avoid excessive map markup: e.g. don’t mark climbable walls explicitly, instead have the game figure that out dynamically. And design entities with multiple input/output relationships: rat swarm + guards, corpses, possession, rat tunnels, escape combat.

The Play-Path Matrix:

Multiple gameplay tools / approaches, complemented by multiple adjacent pathways. So, the player can choose: which tool to use, the tactical approach, how to interpret it morally, and the pathway to take. That lets them own more of the experience.

Support key play styles everywhere; do it consistently but not predictably. Also, randomize the goals / mission objectives: not only does this help replay, it means that level designers can’t overscript. Feels more dynamic, not like a “Jerry Bruckheimer moment”. And leave space for player-driven goals, too: e.g. where on the stealth/slaughter continuum you want to fall, the pace of play, the story/action balance. (The “Heart” tool helps giving access to optional story and goals.)

3:30pm: #1ReasonToBe, Brenda Romero, Robin Hunicke, Elizabeth Sampat, Mattie Brice, Leigh Alexander, and Kim McAuliffe

Update: This is available to watch for free in the GDC Vault.

This panel was stunning, a real emotional gut-punch. My notes here are awful: it really didn’t lend itself to good note taking. But this session by itself may be enough to get me to want to come to GDC again next year.

Robin Hunicke:

A curious kid who did lots of things when growing up; didn’t want to choose one of them in college. Did an interdisciplinary major involving too many categories for me to type here; still had no idea what to do when she graduated. So: grad school! (In AI.) Started considering being a game designer.

Joined EA in 2005 (Sims 2, MySims, Boom Blox), then Journey.

Cab driver calling her the hottest nerd he’d ever seen. Which she is tired of: she’s a curious person, but doesn’t want to be a curiosity.

Embrace the global reach that we (games) have, create a global community. Either actively work to broaden our community or you’re in the way.

Evangelize; and don’t just talk about juggernauts. Consider building a game yourself, maybe start with something small about a personal experience you’ve had.

Leigh Alexander:

She’s in the media: relatively big megaphone and high visibility. Something about gamer culture. Empathy hard to learn, but important.

Even people who aren’t jerks don’t always understand the point of feminism. Sexist jerks don’t exist in a vacuum; and they don’t think they themselves are sexist jerks, either. So we need to keep up conversations. Not about policing sex and appearance but … (I missed details here).

In her work: practice what she wants to see in others. Try not to always be on a soapbox: take feedback from others, learn how to help them.

(too much good stuff going past too fast with bad audio quality…) (Great bit about tone policing.)

Kim McAuliffe:

Backstory. Then things that bother her:

“What about female players?” Sims 2 DS: female players had many fewer desirable flirting options than male players did.

Being the “girl game designer”.

Imposter complex. Felt uncomfortable working on games where you shoot other humans. Wanted to work on areas outside of what is currently labeled as “core”. Minecraft helped a lot: the gaming audience is a lot more diverse than we think it is.

Positive experiences: her most recent game, Kinect Nat Geo TV, is her favorite. Not a conventional game; traveled to lots of places (“exotic Montana”) to film; actors, animals. But, most exciting, watching kids play it for the first time.

Looking forward: the assumption that players are male makes female players feel like they’re on the fringes, and makes female developers feel like that. But they’re not, they’re part of the core. Make girls expected as players: then they’ll naturally grow up to be part of the industry.

Elizabeth Sampat:

Back story: wrote huge amounts of SEO spam for almost no money while writing pencil-and-paper RPGs in her spare time. Then moved into digital games.

Ridiculous, contradictory, sexist expectations presented in advice articles. (Very funny rant here, I won’t pretend to do it justice.)

The costs of assertiveness: men telling you to fight back don’t see the backlash, the hate mail, the death threats, the shunning.

She could make it in here, but she’s “kind of fucking crazy”.

If women who love game haven’t made a game, it’s probably because it’s never occurred to them. Invite them.

Mattie Brice:

Back story. Then: systems! “Life is a game”; so what are the rules? Assumptions about who gamers are, what a game is, what games writing is mediate our experiences. Non-gamers react in a much more open/inspired/affected manner to Mainichi than gamers did – the latter generally just saw how it didn’t fit into their expectations.

(Imagine how different our industry would be if every shooter were replaced by a Sims spinoff.)

Vision: be adamantly inclusive. Remove traditional gamekeepers. Be an ally.

Brenda Romero:

Got into the industry while smoking a cigarette in a high school bathroom. Wow.

E3: way too many booth babes. Felt like walking through a construction site. Went to GDC dressed in “the closest thing to a burqa” she has. Thought: “Why am I doing this? I founded this fucking industry.” Behavior she experienced at E3 would be sexual harassment in any other industry.

(Lovely male eye candy slides.)

E3 has refused to change their policy despite public complaints.

(Making me cry again. This time with something about her daughter.)

5:00pm: Strange Love: Game Theory vs. Game Design, Frank Lantz

This talk was full of pleasant enough math stuff, but not really for me as it turned out.

By “game theory”, he means the branch of mathematics. Not that useful in the day-to-day work of most game designers. So not a lot of overlap between the two fields on the surface, but he thinks there’s something interesting behind the scenes.

Game theory: the mathematical analysis of situations where multiple parties are making choices, and the outcome of those choices is dependent on the choices made by the other parties. E.g. picking a costume at a party: how striking yours is depends on what costumes other people choose.

Simple example: cutting a cake with two players, one person cuts, one person chooses. For the chooser, the strategy is obvious: pick the larger piece. So the cutter can assume the chooser will take that strategy and act accordingly. In fact, every two-player zero sum game has a solution like this, the “minimax”. (Might be a mixed strategy, where you pick different options based on probability.)

Applied to economics, biology, foreign relations, philosophy, not always with zero-sum games. (E.g. chicken.) There, visibly limiting your options can improve your outcome: throwing your steering wheel out of the car means that you will win in chicken, because the other person will swerve. Seems to happen in international relations. Does it happen in biology? Are some irrational involuntary reactions actually rational responses to games?

Prisoner’s dilemma. Game theory experts: both defect. Game theory ignoramuses: both cooperate. So the ignoramuses get a better outcome; whoops.

It got more serious with nuclear weapons: John von Neumann and Bertrand Russell thought that we should nuke Russia before they would nuke us. RAND came up with a different solution; maybe setting up Mutually Assured Destruction was the right approach? (“Maybe poker saved the world.”)

You get different solutions if you assume that you’re iterating a game. So Axelrod set up “iterated prisoner’s dilemma” tournaments. The most successful was “tit for tat”: cooperate in first round, then imitate your opponent after that. Though recently, Press + Dyson discovered a larger family of strategies that tit for tat fits into that lets you set your opponent’s payoff. The only solution to that is to always defect; but to do that, you need to recognize that your opponent is behaving in an extortionate fashion.

That starts leading towards a theory of mind – you need to model and recognize something about your opponent’s approach.

Applications to Game Design:

Legacy: this branch of math/science arose out of thinking about poker. Probability, computations, information theory also all have their roots in the study of games.

Formal analysis: in multiplayer competitive games, try to avoid allowing dominated strategies into your games, strategies that are strictly worse than other strategies in all contexts. Moving beyond that, there are questions of greed and negotiation that appear in both fields.

Inspiration: game theory has a lot of games that are thought experiments, maybe we can bring them over. Paradoxes give examples of scenarios that are simple but not trivial.

Reconciliation: explore the relationship between different aspects of game design that are traditionally seen as opposed.

Final thought: The rational is not incompatible with the sublime.

Post Revisions: