Register Now
Summits


Casual Games Summit
Game Outsourcing Summit
IGDA
Independent Games Summit
Serious Games Summit
Worlds in Motion Summit

« Session of the Week | Main | Pirates vs. Cowboys vs... Ninjas? MetaSOY and Player-Created Content »

Dragged Kicking and Screaming: Source Multicore

Today's highlighted session is "Dragged Kicking and Screaming: Source Multicore", a talk by Tom Leonard, Senior Engineer at Valve. What's cool about this session is that Valve is pretty close-mouthed about some of their processes, so it's exciting to be able to hear frank talk about what they do and how they do it. Valve is, after all, a well-respected developer with some great ideas churning away in their games. Here's what our content advisory board had to say about this talk:

While almost certainly just for PC, this is exactly the kind of talk I'm looking for. Modern, from a reputable developer, etc. Sign me up!

Sounds awesome, exactly what we need, talks about failure...we should see if he'd do two hours and go into excruciating detail!

Dragged Kicking and Screaming: Source Multicore
Speaker: Tom Leonard (Senior Engineer, Valve Software)
Track: Programming
Format: 60-minute Lecture
Experience Level: Intermediate

Session Description
When HALF-LIFE 2 was released, the Source Engine was a single-platform eight years in development based on a single-threaded code base several years older than that. Today it is a multi-platform, multi-threaded system designed to capitalize on any number of cores. Getting there required rearchitecting or rewriting broad swaths of code to accommodate multiple threads of execution efficiently, from low-level allocators, to rendering pipelines, to AI systems. This session examines the process the speaker went through upgrading Valve's Source Engine to take advantage of multiple cores and approaches used to keep all available processors actively executing. The speaker analyzes the experiments, infrastructure, and tools involved in moving a mature code base onto contemporary PC and console hardware. The talk explores successes and failures along the way to creating an efficient and easy to use multithreaded engine from an established single threaded base.

Idea Takeaway
The session presents both high-level architectural concepts when considering multithreaded programming, and concrete tools and refactoring processes used to realize those concepts.

Intended Audience
Intermediate and advanced programmers interested in multithreaded engine design, especially those with legacy code to consider.