GDC is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

GDC + VRDC 2019 Session Scheduler

View, browse and sort the ever-growing list of GDC sessions by pass type, track, format, and more! With Session Scheduler, create an account to build your own GDC schedule and access it anywhere, including on the GDC app, once live.

If you've registered for GDC, you can use the same login credentials. Adding a session to your schedule does not guarantee you a seat. Sessions do fill up, so please arrive early to sessions that you would like to attend.

Tools for 'Marvel's Spider-Man': Editing with Immutable Data

Ronald Pieket (Senior Engine Programmer, Insomniac Games)

Location: Room 2001, West Hall

Date: Friday, March 22

Time: 3:00pm - 4:00pm

Pass Type: All Access, GDC Conference + Summits, GDC Conference - Get your pass now!

Topic: Programming

Format: Session

Vault Recording: Video

Audience Level: All

The world of 'Marvel's Spider-Man' is roughly six times the size of Insomniac's previous open world game 'Sunset Overdrive'. To handle the increased data load, Insomniac Games set about to completely rewrite their production tools in C++.

This talk will explain how the team went about replacing the entire tools stack in the middle of developing 'Spider-Man', without slowing down production. Ron Pieket will highlight several key technologies utilized in the new tools. Implicit sharing eliminates the need for deep copy or mutex locks when handling data in a multi-threaded application. The concept of immutable objects is a radical old idea, newly appreciated. An immutable object is never modified. Instead, changes are applied by generating a new object. The edit loop is a construct that delivers effortless and fool-proof undo, Perforce handling, and more. Ron will also discuss several pitfalls encountered, and how to avoid them.


Attendees will learn about the benefits and practical application of implicitly shared data, immutable objects, and the edit loop.

Intended Audience

Targeted at those who are writing large, complex applications in C++.