Estou desenvolvendo um jogo de plataforma RPG para um jogador no XNA 4.0. Eu gostaria de adicionar uma habilidade que faria o tempo "parar" ou desacelerar, e fazer com que apenas o personagem do jogador se movesse na velocidade original (semelhante ao feitiço Time Stop da série Baldur's Gate). Não estou procurando uma implementação exata, mas algumas idéias gerais e padrões de design.
EDIT: Obrigado a todos pela excelente contribuição. Eu vim com a seguinte solução
public void Update(GameTime gameTime)
{
GameTime newGameTime = new GameTime(gameTime.TotalGameTime,
new TimeSpan(gameTime.ElapsedGameTime.Ticks / DESIRED_TIME_MODIFIER));
gameTime = newGameTime;
ou algo nesse sentido. Dessa forma, posso definir um horário diferente para o componente player e diferente para o restante. Certamente não é universal o suficiente para trabalhar em um jogo em que um tempo de distorção como esse seria um elemento central, mas espero que funcione nesse caso. Eu meio que não gosto do fato de ele ninhar o loop principal de atualização, mas certamente é a maneira mais fácil de implementá-lo. Eu acho que é essencialmente o mesmo que o tesselode sugeriu, então eu vou dar a ele o sinal verde :)