Я тестировал свое приложение на разных устройствах и понимал, что движения спрайтов были совершенно непоследовательными (на некоторых устройствах они выполнялись значительно быстрее, чем другие). Я нашел этот пост и выполнил инструкции и удалил параметры размера из всех моих SKScene, после чего получил ошибку:
fatal error: use of unimplemented initializer 'init(size:)' for class 'SuperGame.PosterScene'
См. ниже мой класс PosterScene и класс GameViewController, в котором он вызывается.
PosterScene
class PosterScene: SKScene {
 override init(){
    super.init()
    let posterImage = SKSpriteNode(imageNamed: "poster")
    posterImage.position = CGPoint(x: self.frame.midX, y: self.frame.midY)
    self.addChild(posterImage)
    let sequence = SKAction.sequence([  SKAction.wait(forDuration: 3.0), SKAction.run({ self.changeToMainMenuScene() }) ])
    self.run(sequence)
}
func changeToMainMenuScene  ()  {
    let mainMenuScene = MainMenuScene()
    self.view!.presentScene(mainMenuScene)
}
required init?(coder aDecoder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
}
}
GameViewController:
class GameViewController: UIViewController {
override func viewDidLoad() {
    super.viewDidLoad()
}
override func viewWillLayoutSubviews() {
    super.viewWillLayoutSubviews()
    let skView = self.view as? SKView
    if skView?.scene == nil  {
        skView?.showsFPS = true
        skView?.showsNodeCount = true
        skView?.showsPhysics = true
        skView?.ignoresSiblingOrder = false
        //starting the game with the Poster Scene
        let posterScene = PosterScene()
        posterScene.scaleMode = .resizeFill
        skView?.presentScene(posterScene)
    }
}
override var shouldAutorotate : Bool {
    return true
}
override var supportedInterfaceOrientations : UIInterfaceOrientationMask {
    if UIDevice.current.userInterfaceIdiom == .phone {
        return UIInterfaceOrientationMask.allButUpsideDown
    } else {
        return UIInterfaceOrientationMask.all
    }
}
override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Release any cached data, images, etc that aren't in use.
}
override var prefersStatusBarHidden : Bool {
    return true
}
required init(coder aDecoder: NSCoder!) {
    super.init(coder: aDecoder)!
}
}