This event has ended. Visit the official site or create your own event on Sched.

Log in to bookmark your favorites and sync them to your phone or calendar.

•Game and Graphics [clear filter]
Monday, September 25


C++ Development with Visual Studio Code
Free, open-source and runs everywhere.

If you’re looking for a fast and lightweight code editor, Visual Studio Code has you covered. Come get an overview of Visual Studio Code along with the C++ extension that enables editing, building, and debugging your C++ code across Windows, Mac, and Linux.

avatar for Rong Lu

Rong Lu

Principal Program Manager, Microsoft
Rong Lu is a Program Manager in the Visual C++ team at Microsoft. She has been working on the Visual Studio team for the past 10 years since she graduated with her master degree in computer science. She is currently working on Visual Studio tools for game development, Visual C++ tools... Read More →

Monday September 25, 2017 3:15pm - 4:15pm
Manchester (407) Meydenbauer Center


Building Better Worlds: Developing a Procedural City Tool for Alien: Covenant
When MPC was asked to create a massive CG city for the film Alien: Covenant, they looked to leverage procedural generation as a means for iterating on the overall shape and structure of the city, in place of a prohibitively large team of environment artists. After evaluating all the practical third party options, it was ultimately decided that the best option was to build a custom tool to procedurally assist artists' city-building skills. This allowed for rapid iteration on the overall look of the city by striking a balance between manual and procedural techniques.

The core algorithms were written in C++ for speed. The user interface was written in Python to accommodate quick feature changes, and a dash of Fabric Engine's KL helped with model import and rendering. This multi-language approach allowed the consistent application of the "best tool for the job" rule, which is a common pattern at MPC, allowing flexible teams with experts in a variety of skillsets.

This talk will detail the history and development of MPC's city building tool, "Machi". Alan Bucior, Lead Developer of Machi, reviews the algorithms for city layout and building placement, discusses how to implement algorithms in an artist-driven manner, and shares various insights gleaned through the development process and discussion with stakeholders.

avatar for Alan Bucior

Alan Bucior

Lead Software Developer, MPC Film
Alan Bucior is a lead software developer at MPC, with over 20 years of experience developing software in the entertainment industry.

Monday September 25, 2017 4:45pm - 5:15pm
Ferranti (403) Meydenbauer Center
Tuesday, September 26


Design Patterns for Low-Level Real-Time Rendering
In recent years, the GPU graphics community has seen the introduction of many new GPU programming APIs like Khronos' Vulkan, Microsoft's Direct3D 12, and Apple's Metal. These APIs present much more control of GPU hardware, but bring with them a great increase in complexity. We need to rethink the way we do graphics programming to take advantage of new features, while also keeping complexity under control.

This talk presents solutions to recurring programming problems with these new GPU graphics APIs. These solutions are intended to simplify the complexity of the API by an order of magnitude, while simultaneously improving overall performance. This talk aims to discuss some key techniques for other developers to create their own GPU rendering engine.

Topics covered include using a ring buffer to stream data and descriptors from CPU to GPU, scheduling GPU memory and work from the CPU, designing a multi-pass real-time GPU renderer, and using fork/join parallelism to increase the performance of the CPU code that submits GPU work.

avatar for Nicolas Guillemot

Nicolas Guillemot

MSc Student, University of Victoria
Nicolas is a master's student at the University of Victoria, where he searches for solutions to the game industry's real-time rendering problems at the intersection of software and hardware. In the past, Nicolas has worked at Electronic Arts, and in Intel's Visual and Parallel Computing... Read More →

Tuesday September 26, 2017 9:00am - 10:00am
Ferranti (403) Meydenbauer Center
Thursday, September 28


Game Audio Programming in C++
Game audio programming is a sort of dark art practiced and understood by its few practitioners, but audio is an important and vibrant part of any game. There is a huge body of knowledge and history here, but the C++ standard, unfortunately, has yet to acknowledge the existence of audio output devices. In this talk we'll discuss the current state of the art in game audio programming, and what steps we can take toward bringing real-time audio to the C++ standard.
We will begin with first principles: representing waveforms and playback of sounds. With a few basic mathematical principles out of the way, we'll discuss how a low-level mixer works, and the sorts of tools that game audio builds on top of it. Finally, we will present a set of abstractions that are useful for real-time audio, and how they can be brought into the C++ standard.

avatar for Guy Somberg

Guy Somberg

Client Lead Programmer, Echtra Games, Inc.
Guy has been a game audio programmer for 15 years, and has shipped numerous titles, including Hellgate: London, Bioshock 2, Minion Master, The Walking Dead Season 2, Tales From the Borderlands, and Game of Thrones. (The last three are all Telltale Games adventures.) Also, Dora the... Read More →

Thursday September 28, 2017 9:00am - 10:00am
Harvard (406) Meydenbauer Center
Friday, September 29


Howling at the Moon: Lua for C++ Programmers
C++ is a great tool for solving complex problems in a thorough way. But every once in a while, the desire for a simpler language emerges. For those parts of our code where performance is of secondary concern, but the ability to perform rapid iterations over the code is paramount, a scripting language might be a tempting choice. But integrating a second language besides C++ and managing the interaction between the two is also scary.

Lua is a lightweight, dynamic language that was designed to be used as an embedded language within existing applications. It is easy to learn, has very reasonable runtime performance, and a memory footprint small enough that it is usable even on embedded systems. Furthermore, it is almost trivial to integrate with C++.

This talk will give a brief introduction to the Lua scripting language, highlighting specifically how it can complement C++'s language features to enrich a developer's toolbox. In the second part of the talk, we will look at Lua's C API and give suggestions how to integrate it with a modern C++17 codebase. In particular we will focus on how to interface with the dynamic language Lua without compromising the benefits of C++'s strong type system.

avatar for Andreas Weis

Andreas Weis

Andreas Weis has been writing C++ code in many different domains, from real-time graphics, to distributed applications, to embedded systems. As a library writer by nature, he enjoys writing portable code and exposing complex functionalities through simple, richly-typed interfaces... Read More →

Friday September 29, 2017 11:05am - 11:35am
Colossus Theater Meydenbauer Center


The Future of Texture Compression
Textures and images are everywhere in today's world. Compressing those images well improves streaming performance, video, dramatically reduces the size and download times of apps. It can give you more realistic virtual reality experiences, more apps that can run on a small mobile device, a better digital map of our world, it can reduce our impact on climate change through storage savings, and so much more.

In the past few years, because of the rapid development in GPUs and innovations in algorithms, the way we approach texture compression has changed. Binomial is developing Basis, a supercompressed texture solution that will also provide an open file format standard in the graphics industry through The Khronos Group that's free for anyone to target.

Basis is also written entirely in C++. Binomial co-founders Rich Geldreich and Stephanie Hurlburt will present their latest work in Basis and give insights into how texture compression will continue to evolve.

avatar for Rich Geldreich

Rich Geldreich

Graphics Engineer & Co-Founder, Binomial
Rich works at Binomial, were he's working on "Basis", a new transcoding-based texture compression system for GPU textures. He's also worked on several open source data lossless compression libraries, such as LZHAM and miniz.
avatar for Stephanie Hurlburt

Stephanie Hurlburt

Graphics Engineer & Co-Founder, Binomial
Stephanie is building Basis, a texture compressor, at Binomial. She loves all things VR/AR/MR, C++, optimization, graphics, and games. Previously, she worked with C++ and graphics programming at Oculus and Unity.

Friday September 29, 2017 4:45pm - 5:45pm
Manchester (407) Meydenbauer Center


Implementing C++ Modules in G++

C++ modules-ts[1] proposes a module system, with defined interfaces, implementations and importing. I shall outline the new semantics, their impact on the ABI and build systems, and discuss the, in-progress, implementation in the GNU C++ Compiler.

[1] JTC1/SC22/WG21/n4681, 'Working Draft, Extensions to C++ for Modules', 2017-07-14, Gabriel Dos Reis

avatar for Nathan Sidwell

Nathan Sidwell

Software Engineer, Facebook
Nathan is a developer of the GNU Compiler Collection, particularly the C++ Front End. His current major project is implementing and influencing the modules TS.

Friday September 29, 2017 4:45pm - 5:45pm
Harvard (406) Meydenbauer Center