CrashCourse iPhone Game Programming
4.6 (18 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
96 students enrolled

CrashCourse iPhone Game Programming

Program an iOS game in Swift
4.6 (18 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
96 students enrolled
Created by Michael L
Last updated 12/2015
English [Auto]
Current price: $12.99 Original price: $19.99 Discount: 35% off
14 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 4.5 hours on-demand video
  • 2 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Program a basic iOS game in Swift
  • Implement Game Center into your Apps
  • Run an iOS app beta test
  • Submit apps to the App Store
Course content
Expand all 55 lectures 04:44:12
+ Introduction to the Course
3 lectures 10:07
A basic introduction the course, covering the the broad topics that we will go over.
Preview 01:39

Overview of the game and what features we will be implementing.

Preview 01:53

Setting up Xcode for the first time and a quick overview of how to navigate it.

Preview 06:35
+ Programming Basics
5 lectures 25:59

Creating a basic program that prints out "Hello, world".

"Hello, world"

Introduction to variables.


Introduction to loops.


Introduction to arrays.


Introduction to classes.

+ Setting the Scene
7 lectures 51:39

Basic configuration of the view before getting started.

Preview 02:44

Explanation of SKNode and adding the background to the scene.

Preview 10:24

Creation and intro to the CCGround class.

Preview 07:49

Explanation of SKAction and getting our ground to move.

Preview 04:44

Making the ground repeat back so that it provides the illusion of moving infinitely.

Preview 06:49

Beginning use of our tile set.

Preview 11:04

Completing the tile set and finishing up the basic implementation of the ground class.

Preview 08:05
+ Creating the Hero Class
6 lectures 35:59

Implementing a basic initializer for our CCHero class and adding the hero to the scene.

Adding the Hero to Our Scene

Introduction to animation and implementing the hero run animation.

Intro to Animation

Implementing the hero slide animation.

The Slide Animation

Intro to gesture recognizers and adding basic recognizers to the scene.

Adding Gesture Recognizers

Implementing hero jump functionality.

Getting the Hero to Jump

Implementing the hero attack animation.

The Attack Animation
+ Level Generation
8 lectures 35:23

Intro to the generator class and adding the generator to our scene.

Intro to the Generator Class

Intro to timers and adding a timer to the generator class.

Setting Up the Generation Timer

Rearranging some of the GameScene functions for better readability.

Organizing the Gamescene Functions

Generation of the first obstacles.

Generating the First Obstacles

Synchronizing the movement of the ground and obstacles and implementing a basic attack obstacle.

Synchronizing the World & Creating the Attack Obstacle

Implementing the slide obstacle.

Creating the Slide Obstacle

Generating obstacles randomly between the jump, slide, and attack varieties.

Generating Obstacle Types at Random

Adding textures to the obstacles.

Adding the Textures
+ Collision Detection
6 lectures 30:57

Setting up physics bodies on the hero and three obstacle types.

Setting Up the Physics Bodies

Implementing the physics world contact delegate and calling the didBeginContact function.

Setting Up the Physics World

Detecting a hero and attack obstacle collision and removing attack obstacle if hero is currently attacking.

Detection of the Attack Obstacle

Animating the hero falling over and applying physics to cause the hero to fall.

The Game Over Animation

Removing movement on obstacles and ground and stopping generation of new obstacles.

Implementing the Game Over Function

Implementing the restart function, presenting a fresh scene to the view.

Implementing the Restart Function
+ Points and Highscore
6 lectures 32:18

Adding the "Tap to Start" and "Game Over" labels.

Intro to SKLabelNode

Implementing and running the blink animation on the "Tap to Start" and "Game Over" labels.

The Blink Animation

Implementing the class that displays the points and high score.

Creating the CCPointsLabel Class

Tracking the points as the hero passes obstacles.

Keeping Track of Points

Removing obstacles from the generator node when the obstacles go off screen in order to save computational resources.

Cleaning Up the Obstacles

Saving the users high score using NSUserDefaults.

Saving the Highscore
+ Creating an Intro Screen
4 lectures 23:36

Creating a basic MenuScene with title and background.

Creating the MenuScene

Implementing the CCButton class for creating buttons with rounded corners.

Implementing CCButton

Getting the start button to present a new GameScene and implementing basic print functionality for the Game Center button.

Adding Functionality to the Buttons

Adding a dummy hero next to the game title for looks.

Adding a Dummy Hero
+ Game Center Implementation
4 lectures 17:22

Authenticating the user with game center upon opening the app.

Authenticating the Local Player

Presenting a view controller to display the current game leaderboard.

Presenting the GKGameCenterViewController

Adding your App to iTunes connect and adding a leaderboard to be used for score saving.

Adding GameKit Functionality in iTunes Connect

Saving the users high score the game center leaderboard.

Saving the High Score to Game Center
+ Beta Testing Your App
3 lectures 08:36

Adding an icon to your app in images.xcassets

Adding an Icon to Your App

Archiving and submitting a build of your app to iTunes connect.

Archiving Your App
Setting Up TestFlight
  • A Mac Computer

Throughout this course we are going to be developing an iOS game in Swift! We will be going to cover a lot to get you up and running as a game developer for iOS, covering everything from getting started with Xcode to beta testing to actually submitting your app the App Store.

We will be developing a side-scrolling game in which the user will play as a ninja that can jump, slide, and slash through obstacles. The game will keep track of points and will allow for saving your high score to game center to compare with friends. Assets for animations and the in-game scenery are all included.

The main timeline of the course includes going through some Programming Basics, Developing the Game, Implementing Game Center, Beta Testing, and finally Submitting Your App to the App Store. The course builds on programming concepts introduced at the beginning of the course to help you see how and where they are applied in a real-world setting.

It should take approximately ten to twenty hours to complete depending on your level of experience and depth of study in the concepts introduced.

You should take this course if you are relatively new to programming and want to learn through the experience of developing an iPhone game!

Who this course is for:
  • Students who have minimal or no experience programming should take this course!
  • Students with moderate to high levels of experience will probably find this course slow.