¿Es esta una buena implementación del gameloop?

He implementado un gameloop en Flash / Actionscript / Starling y quiero lanzarlo a usted para ver si esta es una implementación válida. Quería tener un enfoque de paso de tiempo variable.

private var _deltaTime:Number = 0;
private var _lastTime:Number = 0;
private var _speed = 1000 / 40;

private function onEnterFrame() {
    var now = new Date().getTime();
    var delta = now - _lastTime;
    _deltaTime += delta - _speed;
    _lastTime = now;

    //skip if frame rate to fast
    if (_deltaTime <= -_speed) {
        _deltaTime += _speed;
        return;
    }
    update();
}

private function update() {
    updateGameState();

    if (_deltaTime >= _speed) {
        _deltaTime -= _speed;
        update();
    }
}

Lo que obtuve es que tengo una velocidad constante (más o menos).

Mi pregunta es si hay un mejor enfoque para que los movimientos se vean aún más suaves.

Lo que realmente me sorprende es que incluso tú, el FPS es bastante constante (60FPS), el movimiento es a veces irregular pero más suave que con la ingenua gameloop.

Respuestas a la pregunta(2)

Su respuesta a la pregunta