Software configuration and adaptation are becoming key aspects of Computer Science; programs are executed in stages in very complicated lifetime cycles starting from development to their execution. Various forms of Metaprogramming have been developed to support program evolution over time, during development and execution. Virtual machines have greatly encouraged this trend since programs are annotated with metadata that can be easily analysed by meta-programs. In this work we investigate a particular class of programs capable of evolving their own structure over time in order to adapt to particular execution conditions and to the user. We investigate this class of programs in the context of computer games, programs with great need for adaptivity both in terms of program specialisation for optimisation and content generation. In any case the program transformation is performed at runtime since it depends upon data available only while executing.