Loading…
Attending this event?
• GameDev clear filter
Monday, September 16
 

15:15 MDT

Many ways to kill an Orc (or a Hero)
Monday September 16, 2024 15:15 - 16:15 MDT
Our game programmers and game engines involve fights between heroes and their foes. There are «classical», traditional ways to express heroes and monsters fighting each other, but contemporary C++ is particularly expressive and versatile language and with out language there are many ways for heroes and monsters to hit at each other. These techniques are what this talk will explore
Speakers
avatar for Patrice Roy

Patrice Roy

Professor, Université de Sherbrooke
Patrice Roy has been playing with C++, either professionally, for pleasure or (most of the time) both for over 30 years. After a few years doing R&D and working on military flight simulators, he moved on to academics and has been teaching computer science since 1998. Since 2005, he’s... Read More →
Monday September 16, 2024 15:15 - 16:15 MDT
Cottonwood 2/3
 
Tuesday, September 17
 

15:15 MDT

Techniques to Optimise Multithreaded Data Building During Game Development
Tuesday September 17, 2024 15:15 - 16:15 MDT
In game development the building and optimisation of data for the game is an important but resource intensive and time consuming process. In this talk I will describe techniques used to improve the performance and efficiency of a data build system that was developed as part of a AAA game project.

I will briefly describe the differences between how the game code and data building code operate, how those differences impact processing performance, how a profiler can be used to identify trouble spots, and describe techniques I used to improve multithreaded processing performance.

While this is coming from a game development perspective the techniques can be applied to any task based parallel data processing system.
Speakers
avatar for Dominik Grabiec

Dominik Grabiec

Principal Technology Programmer
Dominik Grabiec has been programming since starting High School, first with varieties of BASIC but through the years moving onto C, x86 Assembly, and then C++ (starting in 1999). The initial motivation for learning to program was driven by a desire to make games, though a large part... Read More →
Tuesday September 17, 2024 15:15 - 16:15 MDT
Spruce 3/4

16:45 MDT

Using Modern C++ to Build XOffsetDatastructure: A Zero-Encoding and Zero-Decoding High-Performance Serialization Library in the Game Industry
Tuesday September 17, 2024 16:45 - 17:45 MDT
XOffsetDatastructure is a serialization library designed to reduce or even eliminate the performance consumption of serialization and deserialization in the game industry by utilizing zero-encoding and zero-decoding. It is also a collection of high-performance data structures designed for efficient read and in-place/non-in-place write, with performance comparable to STL. 

Custom allocators are used to keep fields in contiguous memory, enabling them to be sent directly. Offset pointers are used to maintain pointer validity after buffer resizing and memory movement caused by modifications to variable-size fields. Some other techniques, such as containers that support offset pointers and auto-resizing mechanisms, are involved.

The performance statistics demonstrate that XOffsetDatastructure is a high-performance library, offering advantages in terms of encoding and decoding time, read and write performance, and message size compared to other modern C++ serialization libraries.
Speakers
avatar for Fanchen Su

Fanchen Su

Fanchen Su is a game research & development expert and team leader. He has over 20 years of experience in designing, writing, and maintaining C++ code. His main areas of interest and expertise are modern C++, code performance, low latency, and maintainability. He graduated from Wuhan... Read More →
Tuesday September 17, 2024 16:45 - 17:45 MDT
Cottonwood 8/9
 
Thursday, September 19
 

15:15 MDT

Blazing Trails: Building the World's Fastest GameBoy Emulator in Modern C++
Thursday September 19, 2024 15:15 - 16:15 MDT
Writing an emulator is truly transformative for any aspiring developer. In this session, we will be building parts of a lightning-fast Nintendo GameBoy (DMG-001) emulator library, complete with a webAssembly frontend.

We will introduce the concept of a 'fast' emulator, highlighting its significance beyond mere gaming authenticity. After setting clear limits as to what we aim to achieve within the allotted time, we will delve into some foundational aspects of modern computing by implementing the core components of a GameBoy emulator. Along the way, the need for various programming patterns will emerge naturally, showcasing their relevance in real-world development scenarios.

Additionally, we will demonstrate how integrating modern high-level C++ constructs streamlines our codebase, enhancing both readability and performance. You will witness firsthand how these constructs simplify development and yield significant speed enhancements (even when applied to emulating low-level systems).

This session aims not only to provide practical insights into modern emulator construction but also to invite collaboration on future enhancements and optimizations.
Speakers
avatar for Tom Tesch

Tom Tesch

Lecturer, DAE - Howest
Tom is currently a senior lecturer for the Bachelor in Digital Arts and Entertainment at Howest University of Applied Sciences, where he is on a mission to inspire the next generation of game developers. His expertise revolves around teaching C++, algorithms, and the core principles... Read More →
Thursday September 19, 2024 15:15 - 16:15 MDT
Cottonwood 2/3

16:45 MDT

A Simple Rollback System in C++: The Secret Behind Online Multiplayer Games
Thursday September 19, 2024 16:45 - 17:45 MDT
It is common knowledge that online mulltiplayer games are some of the hardest kinds of software to develop. Game developers have to deal with data packets coming with a substancial delay, in fact working with data from the past. The rollback technique allows to give the illusion of real-time by extrapolating input with a game simulation from the confirm frame to the current one. However, for the implemention to work there are several key factors that need to be taken into account. The game simulation update needs to be deterministic, the game state should be easily copyable, and the game state should be clearly separated from the graphics side of the game.
Speakers
avatar for Elias Farhan

Elias Farhan

Head of Department, SAE Institute Geneva
Elias Farhan is the head of the Games Programming department at SAE Institute Genève, as well as founder of the RGB Games Programming Conference.
Thursday September 19, 2024 16:45 - 17:45 MDT
Cottonwood 2/3
 
Friday, September 20
 

13:30 MDT

Cross-Platform Determinism Out of the Box
Friday September 20, 2024 13:30 - 14:30 MDT
For multiplayer games, deterministic simulations have been a Holy Grail for a long while. Indeed, if we have perfectly deterministic simulations - we can simply pass all the inputs to all the clients, and rely on each client to produce the same results, reducing network traffic by orders of magnitude. While especially important for RTS games, all kinds of multiplayer games would benefit from it.
However, while determinism was achieved in practice for single-platform, it is known to be a next-to-impossible to achieve for cross-platform clients. We will discuss the (well-known) reasons for it first - and will proceed into discussing our approach to the solution (with our open-source lib actually providing some implementations).
This talk is important for multiplayer gamedevs - and for anybody who is interested in deterministic calculations.
Speakers
SI

Sherry Ignatchenko

Chief Architect, Six Impossible Things Before Breakfast
Sherry (née Sergey) Ignatchenko has started her IT career with a soldering iron and i8080 asm. Now she has 20+ years of experience as a software architect, co-architecting a G20 stock exchange and solely architecting a game with 500K simultaneous players along the way. She is an... Read More →
Friday September 20, 2024 13:30 - 14:30 MDT
Spruce 3/4

14:45 MDT

Data Structures That Make Video Games Go Round
Friday September 20, 2024 14:45 - 15:45 MDT
Modern video games are complex beasts that contains multiple systems interacting with one another storing, transferring and processing large sets of data in real time. While some data structures from the standard library such as the std::vector gets you by 90% of the time you need to store and process data, there will be the occasional 10% that requires a unique take.

This presentation aims to discuss the unique data structures that are commonly used in video games / game engines that caters to the occasional 10%. We will go over several systems outlining their requirements, constraints and present custom data structures that gets the job done.
Speakers
avatar for Al-Afiq Yeong

Al-Afiq Yeong

Senior Systems Programmer, Criterion Games | Electronic Arts
Al-Afiq Yeong is a Software Engineer currently working in the Engine team at Criterion. His day to day involves performance monitoring games, making sure memory gets managed efficiently and developing new technologies that will empower future games developed with Frostbite. Prior... Read More →
Friday September 20, 2024 14:45 - 15:45 MDT
Cottonwood 8/9
 
Share Modal

Share this link via

Or copy link

Filter sessions
Apply filters to sessions.