The first part in this series on Reflection in C++ gave a high level overview of many of the possibilities open to you when adding reflection to your games. In this second part I’m going to go into details and cover the system used to aid the rendering engine in Splinter Cell: Conviction (SC5). The motivation for the development of the SC5 engine was a clean break from the past.
If there was one job I’d love to do other than writing games it’d be writing compilers. This probably explains my obsession with the subject of reflection; a topic I’ve been hammering away at for almost 10 years now. Having written a few compilers in the past, it became glaringly obvious to me that reflection would be quite simple to add to C++ – if you’re willing to place some limits on it – and that the language has suffered from its absence.