Abordagem: Maior taxa de simulação
Seu tempo para a interface do usuário deve ser dissociado do loop do jogo real, assim como a renderização. Digamos, por exemplo, que seu mundo corra em velocidade 4x. Digamos que, na sua velocidade básica (1x), seu jogo executa 30 atualizações por segundo.
Você teria algo como o seguinte, quando estiver no modo de avanço rápido:
- A lógica mundial executa 4 atualizações para cada atualização da interface do usuário e do renderizador. Isso significa que ele precisa executar 120 atualizações por segundo. Assim, seu modelo mundial (dados) é atualizado nessa taxa.
- A lógica do renderizador e da interface do usuário continua pesquisando ou fazendo o que quer, com 30 atualizações por segundo.
Em outras palavras, o jogo como um todo não está rodando mais rápido. A simulação parte da é.
Você pode deduzir duas coisas disso:
Você precisa manter o seu jogo de lógica simples o suficiente para que você pode facilmente executá-lo quatro vezes mais rápido em sua plataforma de destino, ou você precisa de introduzir métodos de extrapolar vários aspectos do jogo mais rapidamente - isso pode resultar, no entanto, em um modelo que é diferente do que teria sido se você tivesse simplesmente usado uma simulação de ritmo mais rápido. Portanto, o compromisso seria o custo de processamento para a precisão. Veja a abordagem 2 abaixo.
É a separação de preocupações que permite acelerar facilmente a simulação do mundo, sendo essa separação modelo, visualização e controlador ( MVC ). Se seus dados mundiais (M), lógica de renderização (V) e lógica de jogo (C) estiverem todos misturados, você realmente não será capaz de fazer isso, pelo menos não sem enxaqueca maciça.
Abordagem: Extrapolação baseada em deltas temporais
Como mencionado acima, você precisará calcular o movimento com base na distância que algo teria percorrido em um determinado período. Isso pressupõe que a física do jogo seja inerentemente mais realista em sua simulação, o que pode não ser o caso. Este é um tópico bastante maior e consideravelmente mais complexo. Você precisará fazer mais perguntas sobre se deseja saber. Basicamente, você fará alguns cálculos para acertar as coisas. Você precisará lidar com a interpenetração em colisões e uma série de outras questões que não abordarei aqui.
Concluir
Isso fornece o esboço geral. Sua escolha de idioma é sua, presumivelmente você sabe como fazer isso no Unity ou não. O tempo em qualquer idioma exige que você entenda os detalhes de cada detalhe, sugiro começar pelos artigos de Gaffer e verificar os documentos da API da Unity.