About me
Cyril Tissier is a Tech Lead at Ubisoft. Having joined the Montreuil studio in January 2014, he moved to the Annecy team in 2021. As a metaprogramming expert and the creator of an internal Advanced C++ training program, his primary goal has always been straightforward: to make the lives of gameplay programmers (GPPs) as easy as possible. He provides them with non-intrusive architectures where data remains pure and the workflow is purely declarative. GPPs just focus on writing gameplay code; declaring a model is a simple TypeList append, and attaching a new behavior literally means adding it to a variadic CapabilityMapping. The framework automatically feeds the routing matrix under the hood. The architecture he is presenting today was built in stages. Seven years ago, Cyril implemented a decentralized registration system based on simple static linked lists. Later, he needed to solve a concrete dependency problem: how to inject specific behaviors into pure data defined in a different project (vcproj) with absolutely zero coupling—meaning no VTables and no central registry. Recently, while preparing this presentation, the final system took shape. By adding cross-DLL support and an O(1) mathematical resolution using Horner's method, Cyril successfully integrated the setup with an ECS. While his original focus was architectural elegance and a frictionless workflow, benchmarks showed that this extreme decoupling aligns exactly with how modern CPU caches operate, allowing the Capability Routing Gateway (CRG) to saturate the hardware and become purely memory bound.