Introduction to Sprite Kit with Swift 3

Learn the basics of game development using Xcode
Rating: 4.2 out of 5 (140 ratings)
8,488 students
English [Auto]
Introduction to Sprite Kit with Swift 3
Rating: 4.2 out of 5 (140 ratings)
8,488 students
Continue working with intermediate level Sprite Kit games
Understand the basics of a Sprite Kit based project
Use Swift 3 comfortably in a Sprite Kit project
Understand the basic project structure for an iOS or Cross Platform Xcode app


  • Download Xcode 8 or higher
  • Have a burning desire to learn one of the best game development platforms!


Jump right into game development with this hands-on style approach to learning Sprite Kit. 

Lecture 1 - This video is a quick tour of the general settings in Xcode 8, and the GameScene.sks file. We'll tinker a bit with some physics properties and run the Simulator a few times to experiment. If you already have some experience with Xcode, you can skip this intro video.

Lecture 2 - In this video tutorial we'll jump right in by adding player art assets to the game, then use them in our Sprite Kit Scene file by setting physics properties on an SKSpriteNode. We'll tinker with some of the physics, then look at how to declare / cast an SKSpriteNode variable in the GameScene.swift which equals the child node setup in the Scene (.sks file).  Sounds like a lot, but its a quick and painless introduction to the power of Sprite Kit and the Scene Editor.

Lecture 3 - In this video tutorial, we'll continue where we left off in the last video and run SKActions on our player. We'll work both with programmatically setup SKActions as well as Actions created using the Timeline in the Scene Editor. Then we'll work with detecting touch locations as well as using the update function to check on the player's location.

Lecture 4 - In this video, we'll continue working with SKActions, by changing the previous lesson's walk actions into a sequence of actions. This will allow you to run code at the end of a sequence. In this example, when the player begins walking we'll make gravity affect him (creating an effect like wind is pushing him), then when the player has stopped walking, gravity will no longer be in affect. We'll also look at create a speed variable for movements and frame animations of the player.

Lecture 5 - We'll take a short break from the previous project and explore the Cross Platform Sprite Kit template included with Xcode. This is a project that has an iOS, tvOS, WatchOS and MacOS Target. The neat thing about this template is all four device types use the same GameScene.swift and GameScene.sks files. So ideally, you can code once and deploy to all those devices. We'll also look at how to add files to a particular device Target after they've already been imported or created (this is done in Xcode's Build Phases tab)

Lecture 6 - In this video tutorial we'll add Swipe, Tap and Rotation gestures recognizers to the scene. We'll discuss properties and related functions for each, as well as converting radians to degrees and removing all gestures from the scene.

Lecture 7 - In this video tutorial, we'll add an SKPhysicsContactDelegate to the class, then add a didBegin contact statement to listen out for physics notifications from bodies. This requires setting the categoryBitMask and contactTestBitMask on the player and a hypothetical building object that we add this lesson.

Lecture 8 - In this final video, we'll use the update method to check where the player is and then change the zPosition (layering) of buildings based on that value. This will make it look like the player is visually in front of or in back of a particular building. Then finally we'll create a Castle class, or subclass of SKSpriteNode, and demonstrate how this custom class can have it's own functions and properties. 

Who this course is for:

  • New developers to iOS, Swift or Sprite Kit
  • Existing app developers that want to learn game development

Course content

1 section • 8 lectures • 2h 6m total length
  • The Sprite Kit Starting Template
  • Adding a Player with Physics Properties
  • SKActions and Detecting Touches
  • SKAction Groups / Sequences and Run Blocks
  • Short Interlude to look at a Cross Platform Project
  • Adding Gesture Recognizers
  • Detecting Physics Contacts Between Bodies
  • Changing zPositions at RunTime, Custom Classes and Conclusion


CartoonSmart / Owner / Leader Developer and Instructor
Justin Dike
  • 4.3 Instructor Rating
  • 690 Reviews
  • 51,477 Students
  • 23 Courses

Justin Dike is the founder of CartoonSmart one of the internet's first video training websites. He is a long-time illustrator and animator, focusing mostly on Adobe Flash, and experienced programmer with Swift, Sprite Kit, Actionscript 3, Objective C and Cocos2d. For CartoonSmart he has recorded hundreds of hours of video tutorials and recently published his first full length book titled iOS Programming with Xcode and Cocos2d available in the iBookstore. Justin has also developed many iOS games, including a side scrolling game engine.