Yaser Zhian

  • Yaser Zhian

    Yaser Zhian

    Dead Mage Game Studio

    An Efficient Run-time Type System for C++


Iran (Islamic Republic of)



Yaser Zhian has been programming professionally for more than 15 years, 10 of which has been spent on or around games. He is the technical director at Dead Mage game studio, where he has spent almost all his game development career. At Dead Mage (and its sister company, Fanafzar) he has participated in the development of several titles (with varying degrees of success) for the PC, PS4, and several mobile platforms. Along with his gamedev career, he has been a consultant to other game development shops and companies in other fields, has taught programming, been a member of the technical faculty at the Iran Game Development Institute. And he has advised various departments of the Iran Computer & Video Game Foundation. He is, and always has been, interested in systems programming, resource-conscious programming and computer graphics. But these are mere cherries on top of the cake that is the simple joy of writing code. He is 35 years old and lives in Tehran, Iran


Talk Title:

An Efficient Run-time Type System for C++


Talk Abstract:

 C++ does not have much built-in support for a dynamic type system, or run-time type information useful for introspection, reflection, or type composition. And most attempts to do this are either limited in scope, inefficient, too intrusive, or hard to use. Yet these capabilities are useful is many complex programs, including games, for serializing data, generating interfaces, and developing tools, among many other use cases that benefit from more robust and faster iteration times and easier exploration of large, complex and changing data. What is presented in this talk is an attempt at a run-time type system for C++ that enables composition of struct-like objects or adding metadata to existing C structs, that allow for instantiation, member access, introspection, serialization, and other useful operations. The main feature of this system however, is its small (to negligible) memory overhead, and very fast struct member access.