void Game::Run() { TimeSystem* timeSystem = TimeSystem::GetInstance(); timeSystem->StartClock(); while (true) { // Tick time timeSystem->Tick(); // Loop as many update-steps we will take this frame while (timeSystem->ShouldUpdateFrame()) { // Update game based on state Update(timeSystem->GetStepLength()); // Update accumulator and gametime timeSystem->UpdateAccumulatorAndGameTime(); } // Update alpha used for inteprolation double alpha = timeSystem->GetFrameAlpha(); // Update camera after we update positions Render(); } }