CrashCourse iPhone Game Programming

Program an iOS game in Swift
4.5 (14 ratings)
Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
70 students enrolled
25% off
Take This Course
  • Lectures 55
  • Length 4.5 hours
  • Skill Level Beginner Level
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works


Find online courses made by experts from around the world.


Take your courses with you and learn anywhere, anytime.


Learn and practice real-world skills and achieve your goals.

About This Course

Published 12/2015 English

Course Description

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!

What are the requirements?

  • A Mac Computer

What am I going to get from this course?

  • 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

Who is the target audience?

  • 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.

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.


Section 1: Introduction to the Course
A basic introduction the course, covering the the broad topics that we will go over.

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


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

Section 2: Programming Basics

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


Introduction to variables.


Introduction to loops.


Introduction to arrays.


Introduction to classes.

Section 3: Setting the Scene

Basic configuration of the view before getting started.


Explanation of SKNode and adding the background to the scene.


Creation and intro to the CCGround class.


Explanation of SKAction and getting our ground to move.


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


Beginning use of our tile set.


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

Section 4: Creating the Hero Class

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


Introduction to animation and implementing the hero run animation.


Implementing the hero slide animation.


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


Implementing hero jump functionality.


Implementing the hero attack animation.

Section 5: Level Generation

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


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


Rearranging some of the GameScene functions for better readability.


Generation of the first obstacles.


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


Implementing the slide obstacle.


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


Adding textures to the obstacles.

Section 6: Collision Detection

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


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


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


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


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


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

Section 7: Points and Highscore

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


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


Implementing the class that displays the points and high score.


Tracking the points as the hero passes obstacles.


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


Saving the users high score using NSUserDefaults.

Section 8: Creating an Intro Screen

Creating a basic MenuScene with title and background.


Implementing the CCButton class for creating buttons with rounded corners.


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


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

Section 9: Game Center Implementation

Authenticating the user with game center upon opening the app.


Presenting a view controller to display the current game leaderboard.


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


Saving the users high score the game center leaderboard.

Section 10: Beta Testing Your App

Adding an icon to your app in images.xcassets


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

Setting Up TestFlight
Section 11: Submitting Your App to the App Store

Adding screenshots and going over basic app info before submission.


Description of and things to know about apple's review process.

Section 12: Wrap Up and Where You Can Go From Here

A couple of my suggestions on where you can go from here!

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Michael Leech, iOS Instructor at CrashCourseCode

Hi there! My name is Michael and I run a channel called CrashCourseCode on YouTube for iOS-related tutorials. I've been developing for the last four years, the last two of which iOS has been my main focus. I think tech is pretty much the coolest thing since sliced bread and I really am looking forward to seeing how technology shapes our lives over the coming years.

Ready to start learning?
Take This Course