Bem, existem algumas maneiras de pensar sobre isso. Uma é listar os recursos específicos que o mecanismo deve ter (o que você pediu aqui.) No entanto, a outra maneira é começar a fazer jogos sem se preocupar muito com o "mecanismo" e, em seguida, os recursos que você achar que estão sendo reutilizados entre vários jogos (em particular, recursos usados em todos os jogos), você deve migrar da fonte de um jogo específico para uma base de código compartilhada chamada "engine".
Porque, no final, o motivo pelo qual você deseja um determinado recurso no mecanismo e não no jogo é que ele é compartilhado entre vários jogos. Normalmente, são coisas como desenhar comandos, controladores de entrada e código de rede. Um mecanismo de jogo 2D terá muitos recursos gráficos 2D, como carregar imagens, uma hierarquia de exibição com ordem z, lidar com planilhas, interpolação, etc. Muitos jogos precisam de simulação de física, embora, por outro lado, muitos não. Enquanto isso, mais coisas "ocultas" usadas em quase todos os jogos incluem temporizadores, mensagens de eventos e até funções matemáticas específicas para o desenvolvimento de jogos (por exemplo, distanceToTarget ()
Longa história curta:
A) O mecanismo deve ter recursos compartilhados pela maioria dos jogos.
B) Você aprende quais recursos são compartilhados criando vários jogos.
just start making games without worrying too much about the "engine"