   defaults =
     FPS: 30
     age: 0
-    ambientLight: 1
-    cameraTransform: Matrix.IDENTITY
     excludedModules: []
     includedModules: []
     paused: false

      return unless canvas = I.canvas

      self.trigger "beforeDraw", canvas

      I.canvas.withTransform I.cameraTransform, (canvas) ->
        if I.zSort
          drawObjects = I.objects.copy().sort (a, b) ->
            a.I.zIndex - b.I.zIndex
        else
          drawObjects = I.objects

        drawObjects.invoke("draw", canvas)

        self.trigger "draw", I.canvas

      self.trigger "overlay", I.canvas

    step = ->

      draw: draw
    }

    self.include Bindable

    defaultModules = ["Keyboard", "Clear", "Delay", "SaveState", "Selector", "SingleCamera", "Collision"]
    modules = defaultModules.concat(I.includedModules)
    modules = modules.without([].concat(I.excludedModules))

