GDC – Friday – Mining Perforce Data

Started with Texas rebate program for game development, you have to track and report those costs. So Redfly wanted to track project costs.

People get source, work, check in (mostly working) code. So maybe SCM activity is a gauge of work.

Use perl script to get info from P4 and put into a MySQL database – files, revs, changelists.

Could use Excel PivotTables to get percent worked on each project each week by each person. Graph in Excel to see if we were crunching or working effectively.

Graph of commits roughly corresponds to known events like crunch, project hold, and team methodology. However, sounds fairly speculative. Even motivation and promotions.

You can’t tell if someone is working hard, just what they are (probably) working on and relative effects of changed. Even down to assets

GDC – Thursday – Porting TF2 to VR

Joe Ludwig

add -vr to launch options for TF2 to enable Oculus support. Turn off Aero, it adds a frame of latency. Get a DVI or HDMI splitter.

Latency, Stereo Rendering, User Interface, Input, VR Motion Sickness

Google “john carmack latency”, “michael abrash latency”.

Stereo Rendering – split window in half for each eye. “for each eye” loops. Stereo Image Pair. Concept of “middle eye” and offset from there. Correcting for lens distortion; need to apply barrel distortion and they are display-specific.

UI. Depth cues. Occlusion and Convergence. If you have mismatched depth cues, then users will have visual problems. Best place for UI is in the center. Most VR games won’t have a HUD. But TF2 has to have one. Crosshair has to be determined by a raycast to see what depth to draw it at.

User input. Adds Yaw, pitch and roll from head tracking.

VR Motion sickness, very much like sea sickness.


GDC – Thursday – Abrash VR

Quake was the Metaverse coming to life, 1996. But VR stalled. Now, in 2013 VR might be on the edge of coming into existence.

VR versus AR (augmented reality). Because – flat-panel displays, wireless, cameras, gyroscopes, microprojectors. Tracking hardware, waveguides, computer vision.

Oculus Rift development kit. Wide field of view, lightweight, affordable. Many years to refine VR, and AR is even harder. 1K by 1K display across 100 degree field of view means actual few pixels in phone-sized view field.

Tracking, latency and realistic perceptions indistinguishable from reality.

VR displays move relative to both RR and eyes, your head can move very fast, and your eyes can counter rotate very fast. 20 degrees in less than 100 milliseconds.

Tracking: head position and orientation (pose). Our perceptual system is tuned for anomalies. Tracking has to be super-accurate. 1 millimeter at 2 meters from the sensor.

Rift – inertial measurement unit. Inexpensive and lightweight, but drifts and does not support translation, only rotation.

Latency – delay between head motion and virtual world update reaching eyes. Head movement magnifies anomalies, destroys reality illusion and creates vertigo and nausea. Google “Carmack Abrash latency”.

Space-time diagrams on Abrash blog. Pixel-based movement means step motion. Temporal sampling. Color fringing when eyes track pixel movement. Cinematography term – judder.

We need 1000 to 2000 frames per second. Judder can be eliminated with zero persistance. Zero persistance works for images that the eye is tracking, but backgrounds have bad problems.


GDC – Thursday – Microtalks

Richard Lemarchand

Change is an opportunity. Visit the Ahhhcade artgame show until 8:30 tonight. at moma

Leigh Alexander

Interview developers and study culture, trends – what are gamers. It should be more than sales.
Actual grownups are listening. Increased focus on diversity initiatives. Controversy – sex sells, but it doesn’t any more. There is a serious image problem. Need a fresh respect for marketing.

Tom Bissell

Middle ground between fiction and experiences. Big budget action games are not a writing medium. Wrote novels and then script for Gears of War. The player does most of the steering. Writing dialog for scenes we hadn’t made. Felt false. Journalist reporting live from Gears of War. Ludonarrative dissonance. Story and game need to be the same thing, story is what the player does, writer provides orientation and mood. Games are not a story playing medium.

Kim Swift

Portal game designer. Topic of “Bad Boss”. Teammates can be friends, but you are their boss. Listen. Trust team mates to help make good decisions. Information helps people stay on the same page; people need to decide if information is relevant to them. Make information transparent. Criticism has to be constructive. “That sucks” makes you a dick. References and examples.

George Fan

How to choose a theme for your game. Four questions,
1. Is your theme something you’re into?
2. Does your theme support the game mechanics? mechanic and theme reinforce each other
3. Does your theme communicate the goal? Immersion and Motivation helped by the theme
4. Does your theme have both familiarity and novelty? 50% familiarity + 50% novelty = 100% awesome.

Carla Fisher

Kids don’t come with a manual, and need lots of QA.
Potty Training with Plants vs. Zombies. Need desirable goals.
Baking Chocolate Chunk Cookies with Left 4 Dead. On the edge of their abilities. Zone of Proximal Development. Dialogic reading.

Ben Cerveny

The city has always been our most complex game.
Cities are coming alive with technology.
the network pervades all things in the city.
flocking cars, fluid media, printed objects
play flows across contexts and devices

Mare Sheppard

Made N, now making N++. Moving forward? Chomsky quote on optimism and the future.

Anna Anthropy


Manveer Heir

Papo y Yo. Metaphor for alcohol abuse.

GDC – Thursday – Porting Source to Linux

NVidia sponsored talk – assume there is some tie-in, did NVidia help do the work?

Rich Kelters at Valve

Linux is an open platform, Linux for gaming is growing, stepping stone to mobile

Steam for linux

Feb Mac 3% Linux 2%, Windows 94%.

D3D stagnant at this point, OpenGL can do most of it. GL exposes functionality by hardware, not OS. GL can be extended quickly. GL 4.3 is a superset of functionality. GL might be running circles around D3D in a year or two.

Windows -> Linux. Use SDL. Used for all Valve ports, and Linux Steam.

Case sensitivity – use lower-case, or use file cache, or both.

Bad defines – assume LINUX meant DEDICATED_SERVER. Locale issues. Just set to en_US.utf8, however not everyone has that locale, so need to warn them.

Font – freetype and fontconfig. clock_gettime(CLOCK_MONOTONIC), raw mouse input but some window managers grab keyboard and alt-tab breaks. Multi-monitor not as polished.

Steam Linux Runtime (and SDK) – provides binary compatibility across many Linux distros,

perf, vtune, Telemetry. Telemetry is from RAD Tools.

Direct3D -> OpenGL, most of the work of the port. DX version minus 7 is OpenGL version.

togl – is a D3d9/10/11 implementation using OpenGL.

GL has thread local data, context and thread are one-to-one; if you call GL from a thread that has no context, you get nothing. GL is chatty but efficient.

Consider GLEW to wrangle extensions.

Read specs.

EXT_direct_state_access – AMD and NVidia both support, Intel might. DSA is driver-only, and you can have your own implementation when it’s not available.

EXT_swap_interval is vsync.

EXT_swap_control_tear – do-no-harm vsync.

ARB_debug_output to get your logging code called by the driver on errors, works best on single-threaded mode.

Performance – MakeCurrent issue, it is very expensive (don’t even want to call it once a frame).

Modern OpenGL is multithreaded – you talk to a shim, and then calls actually get moved to a server thread, sometimes you need to sync shim and thread with a flush, this is expensive. E.g. glGetXX causes serialization, functions that return a value, functions that work on large amounts of data.

Don’t use MapBuffer, it causes serialization.

NVidia Nsight supports GL 4.2 Core, PerfStudio and gDEBugger, CodeXL, Apitrace.


GDC – Wednesday – ArenaNet and scaling

Create great products through iteration. Continuous delivery to an online audience. Get other peoples’ stuff into the game.

Anyone can push a build live.

Any version to any version patching. All files in all versions have diffs to all other versions’ files.

Moved from one single team working on the whole game to 20 feature teams each working on features for the game.

One build server, 40 minutes to make a build, people would kill each others’s builds to get their build going.

Delivering new content to players once or twice a month.

Agility at scale. 200 developers, 20 teams each with their own build server, 20 feature branches with alpha, staging and live branch.

Tested live before checking in, in the old days. Now staging branch before going live.

Goal is no down time for servers, rule is server can’t be down for more than 20 seconds because that’s how long it would take to affect users.

Guild Wars 2 builds in 6 minutes. Server changes compile and run in about 40 seconds. Client takes 90 seconds to link.

Local dev machine can run everything on one machine.

Want same behavior on dev machine as in data center.

Use IO Completion Ports to avoid as many context switches as possible. Threads are good and bad. Want to have just enough threads because context switches cost (cache draining etc).

Stress tests on live servers. Performance measurement before game goes live. Measured thread concurrency over time.

Graphite – display program.

No login queues, replaced with overflow maps so you can play while waiting for real region, and join friend in overflow instance.

EU is 5 to 1 concurrency range, US is 2.5:1 concurrency range.

Not using VMs for game servers because of bad problems with Gw1, because VM schedulers do stuff differently from base OS schedulers – extra scheduler with different rules causes utilization problems.

When you just barely use all the memory, you create paging, which creates CPU lag, and it’s hard to track.

CPU measurement – windows perf counters sampling rate too low to be useful. Windows thread cycle counters.

EU to US network is good most of the time, but claim that 4 hours a month it sucks.

500 MB of new patches released each month.

GDC – AI Summit – Day 2 – Giant Leap

What is a giant leap? Technologies? Titles?

The Next Giant Leap of Game AI – Dan Kline, Maxis

Designing Using AI. Reactive, not adaptive. Design is about conversation between designers and players. Garry’s Mod, Deus Ex, Far Cry 2. When we can’t react, we fall back on scripts, etc. Want an explosion of interactive games.

Camera with AI to help you take better pictures.

Core challenges. 1: concept phase is slow. 2: comes together late. 3: AI feedback is core.

Debugging feedback on screen attached to character.

Game design going through transformative phase.

Alex J. Champandard,

Artificial Intelligence

Online Multiplayer – small number of players, wide variety of levels, regular updates, customizable mechanics. Large problem space but manageable solutions.

Data  & Processing – terabytes of gameplay events, hundreds of thousands of servers

Artificial Intelligence. Specifically *not* game AI. Real strong AI.

Intersection is Intelligent Bots, competitive and adaptive. Golden age of bots in games. AI that understands new game mechanics almost immediately. Bots used as instructional partners. AI that adapts to the meta game. Bots that balance games better than random human players. Support for exotic mods that almost no one plays.

Design Challenges? Building a game that is still fun with intelligent opponents? Business Challenges? The money is there, MOBA already wants it.

Michael Lewis, ArenaNet

Just the facts. We have tech but don’t always use it. Sometimes we don’t even need it. And players think “better AI” just means “harder bad guys”.

Let’s define Game AI. A solution for creating content. Virtual wind tunnel for game AI.

Procedural Everything.

Use analytics to inform design iteration. Why stop iterating at ship? Game capable of learning from its players.

Damian Isla, Moonshot Games

Language is a giant leap. Speech recognition, natural language understanding, text generation, dialog generation.

Google translate, text summary, reading manual and having a bot that plays the game better.

Language is the next big thing that we should tackle for game design. The discourse problem is one that hasn’t been tackled for a long time.

GDC – AI Summit – Day 2 – Non-traditional uses of AI

AI Dialog (From ph.d. thesis)

Jeff Orkin

Current approaches don’t lend themselves to authoring large amounts of content. Content authoring bottleneck – hard and slow to use. Human imagination is a limited resource.

Collective Artificial Intelligence. Record people playing games, discover patterns in gameplay, replay fragments of patterns at run time. The future of AI looks less like a state machine and more like a search engine.

Released “The Restaurant Game”, about 75% of people did “regular restaurant things”.

Two Revolutions: Data Mining and Human Computation. Merge both?

Pay humans to tag/annotate your data into events, themes, etc. Produces thousands of annotated transcripts, so thousands of variants – 18,000 unique lines of dialog.

Characters as improvisational actors.