Não seja pego no conceito de "motor de jogo". Embora seja verdade que os estúdios de jogos geralmente tenham algum tipo de mecanismo de jogo que eles criam para acelerar o processo de produção de jogos, muitos desenvolvedores independentes ficam ansiosos em tentar criar um mecanismo de jogo que nunca produza algo que funcione.
Um mecanismo de jogo pode ser o que você quiser. Se você encontrar em comum o suficiente entre os jogos e pode subclassificar uma Engine
classe como o seu exemplo, tudo bem. Se um "mecanismo" é realmente apenas uma pequena biblioteca de funções que você achou úteis em jogos anteriores que você desenvolveu, isso também é ótimo. O que quer que isso signifique para você, o conceito de "mecanismo" é apenas um código reutilizável para ajudá-lo a criar mais jogos.
Se você está tentando criar um jogo, não se concentre em criar um motor. Faça um jogo. Quando o jogo terminar e você estiver pronto para fazer o seu segundo, comece a fazer o segundo e você encontrará pedaços que você já criou no seu primeiro jogo; então você pode extrair esses bits em uma biblioteca ou mecanismo, para serem compartilhados entre os dois jogos. É assim que um motor deve ser fabricado. Normalmente, não é algo que você decide escrever antes de fazer um jogo, porque você acaba com toneladas de código que não foram testados e está essencialmente escrevendo coisas antes de saber que precisa delas (portanto, talvez nem precise delas). Isso é como otimização prematura, mas pior.
Então, para responder diretamente à sua pergunta, basicamente um mecanismo de jogo é uma "coisa" reutilizável (biblioteca, ferramenta, estrutura) que um estúdio de jogo usa para ajudar na produção rápida de jogos, e eles geralmente o criam com jogos específicos em mente ou depois de criar vários jogos, extraindo os bits semelhantes e moldando-os em um mecanismo que eles sabem que pode ser usado em jogos futuros. Quase nunca deve ser criado sem retrospecto (dois ou mais jogos já criados) ou planejamento EXTENSIVO.