       @createMeteor()
 
     @meteor_interval -= dt * 0.01
+
+    @next_star_at -= dt
+    if @next_star_at <= 0
+      @next_star_at = @star_interval
+      @createStar()
+
+    @next_garbage_at -= dt
+    if @next_garbage_at <= 0
+      @next_garbage_at = @garbage_interval
+      @garbageCollect()
 
     for obj_list in [@stars, @meteors]
       for obj in obj_list

      pos: new Vec2d(@engine.size.x, randInt(0, @engine.size.y))
    obj = new PhysicsObject(sprite, new Vec2d(-600 + Math.random() * 400, -200 + Math.random() * 400))
    @meteors.push(obj)

  start: ->
    @engine.on('draw', @draw)
    @engine.on('update', @update)
    setInterval(@createStar, 0.1 * 1000)
    setInterval(@garbage, 10 * 1000)
    @engine.start()

  update: (dt) =>
    if @had_game_over


  delete: ->
    @gone = true
    @sprite?.delete()
    @sprite = null

class Game
  constructor: (@engine) ->
