iOS Maze Games with Swift, Sprite Kit and Designed in Tiled
4.4 (34 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.
845 students enrolled
Wishlisted Wishlist

Please confirm that you want to add iOS Maze Games with Swift, Sprite Kit and Designed in Tiled to your Wishlist.

Add to Wishlist

iOS Maze Games with Swift, Sprite Kit and Designed in Tiled

Learn how to program a Universal iOS game from scratch using Swift, Sprite Kit and design levels with Tiled or Xcode 6
4.4 (34 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.
845 students enrolled
Created by Justin Dike
Last updated 1/2017
English
Current price: $10 Original price: $20 Discount: 50% off
1 day left at this price!
30-Day Money-Back Guarantee
Includes:
  • 7.5 hours on-demand video
  • 3 Articles
  • 2 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Build an app from scratch
  • Import a Tiled file into a Swift / Sprite Kit based project
  • Parse any XML data into a Swift / Sprite Kit based project
  • Play audio, either through an SKAction or AVAudioPlayer
  • Setup swipe gestures in an SKView
  • Pull children from a Sprite Kit Scene file and replace them with custom classes
  • Setup a SKPhysicsContactDelegate and listen for bodies contacting each other
  • Center a Sprite Kit world around a specific child
View Curriculum
Requirements
  • Have a Mac running Xcode 6 or 6.1
  • While not required, to test on your actual device you'll need to be Registered Apple Developer
Description

Classic game concepts. Modern programming.

When you think of maze games, you’ll probably think of Pac-Man, which isn’t hard to argue is the most popular game of all time. At that game’s core is a simple hook. Move at high speeds and don’t get caught, which is a fun concept for any player of any age. Even today some of the most popular games don’t rely on much more than a classic hook: something that is easy to play, but impossible to beat. A game like Flappy Bird is a recent testament to that.

In this tutorial series, we’ll look at programming a conceptually simple game, but one that can be expanded in a hundred different directions using Apple’s amazingly easy physics engine. You’ll learn the latest in iOS programming technology: Swift and Sprite Kit. Then for level design, you’ll get two options: create levels within Xcode 6 using the new Scene editor, or take a step outside Xcode and use Tiled, a free level design program which in our opinion, is a tad more refined and speeds up level creation.

After this series, you will be a game developer! Ready to submit your first app for the iPhone, iPad, and possibly even Apple Watch. Plus using software like Apportable, you can even export your app to Android and a plethora of other devices.

Who is the target audience?
  • Anyone with zero knowledge of Sprite Kit or Swift
  • Anyone who wants to build great games and get a foundation in solid programming techniques
  • Anyone that wants to choose between using Tiled or the SpriteKit Scene Editor
  • Prior programming experience is not required, but won't hurt
Students Who Viewed This Course Also Viewed
Curriculum For This Course
Expand All 44 Lectures Collapse All 44 Lectures 07:19:46
+
Creating a Hero for the Maze
10 Lectures 01:29:55

Starting Game Assets and source projects
00:03

In this video we will take a short tour of Xcode and bring in our initial assets to use throughout the course.

Preview 13:08

Course Primers
00:13

In this video we will create our Hero class, which is a subclass of SKNode.

Adding the Hero Class
16:32

In this video we will move the character using the update function.

Moving the Hero
16:22

In this video we will add gesture recognizers so we can swipe the screen and move the hero in a particular direction

Gestures
10:14

This video continues right where the previous one left off.

Gestures (Continued) and Changing SKTextures
10:17

In this video we will add physics properties to the Hero class and discuss each

Adding physics to the Hero class
09:26

This video continues right where the previous one left off.

Adding physics (continued)
08:34

Let's test some basics of what you've learned so far

Section 1 - Quiz
6 questions
+
Boundaries, Contacts, Tiled and Star Classes
10 Lectures 01:51:10

In this video we will begin creating our Boundary class with Swift and Sprite Kit. These will be the maze walls.

Creating the Maze Boundaries
13:40

This video continues right where the previous one left off.

Creating the Maze Boundaries (continued)
12:28

In this video, we will setup the SKPhysicsContactDelegate in the GameScene.swift file which will enable us to react to contacts between physics objects.

Adding the Physics Contact Delegate
12:29

In this video, we will incorporate Tiled a free program to help us layout and design levels. This software makes it much easier and faster (in your instructors opinion) then using the SpriteKit Scene editor

Introduction to Using Tiled
11:46

In this video, we will parse the Tiled file which is essentially just XML data.

Parsing the Tiled File (or any XML data)
11:05

This video continues right where the previous one left off.

Parsing the Tiled File (continued)
11:45

In this video, we will center the mazeWorld instance around the hero.

Centering the Hero
10:28

In this video, we'll create a "pickup" type class (think pellets), called Stars. If you pick up them all, you'll clear the stage.

Creating the Star Class (pickup object to pass levels)
17:48

This video continues right where the previous one left off.

Creating the Star Class (continued)
08:17

Let's test what you know at the end of section 2.

End of Section 2 Quiz
5 questions
+
Sensing Walls and Adding Enemies
11 Lectures 02:02:01

In this video, we will add sensor nodes around the hero, to detect which walls are currently blocked. If blocked, we will register that us the next "desired direction". When the passage clears, the hero will automatically turn that way.

Adding Sensor Nodes to the Hero
16:15

In this video, we'll actually use the sensor nodes.

Using the Sensor Nodes to Detect Boundary Contacts
13:29

In this video, we will create a mass-less edge boundary around the world by extending the functionality of our Boundary class.

Creating a Mass-less Edge Boundary Around the World
16:25

In this video, we will create an Enemy class and place the enemies with either our Tiled file or SKS file.

Placing Enemies in the World
10:06

This video continues right where the previous one left off.

Placing Enemies in the World (continued)
08:50

In this video we will move the enemies based on the location of the hero.

Moving Enemies
13:16

This video continues right where the previous one left off.

Moving Enemies (continued)
11:56

In this video, we will refine the enemy logic and create a variable factor for how quickly they can find the hero.

Adding More Enemy Logic
12:21

This video continues where the previous one left off.

Refining the Logic More
05:50

In this video we will reload the current level. We will also add a little code for enemies bumping off of each other.

Reloading the Level and Enemies Bumping Each Other
12:03

Let's see what you know about the project by the end of section 3

End of Section 3 Quiz
4 questions
+
Property List, Loading the Next Level, Text, Sounds and More
10 Lectures 01:51:11

In this video we will add a property list file and use that to setup the hero characters properties and animation frames.

Getting Hero Settings from a Property List File
10:21

This video continues right where the previous one left off.

Getting Hero Settings (continued)
11:18

In this video we will use the GameData.plist to set some initial game settings (like whether to show physics bodies, use Tiled files, set the amount of parallax, and gravity)

Game Settings from the Property List File
13:05

In this video we will create an Array in the property list and store the data for each level here (properties like hero speed, enemy speed, TMX file, next SKS file to load, etc)

Getting Level Data from the Property List File
09:57

This video continues right where the previous one left off.

Getting Level Data (continued)
08:37

In this video we will load the next level if the hero collects all stars.

Loading the Next Level After Getting All Stars
17:19

In this video, we will add a text label using a custom font.

Adding a Text Label
10:21

In this video we will add a parallax background that moves at an offset value in relation to the rest of the world.

Including a Parallax Background
14:42

In this video, we will add sounds to the game using SKActions and using the AVAudioPlayer

Adding Sounds
13:53

Let's see what you know by the end of the main part of the project

End of Section 4 Quiz
4 questions
+
Bonus Lessons - Easy extensions with the final project
3 Lectures 05:22

In this video, we will modify the Boundary class to make certain boundaries pushable.

Making some Boundaries Dynamic (Pushable)
02:45

In this video we will modify the Star class to make certain stars automatically advance the level.

Using Certain Stars to Auto Advance Levels
02:33

Student questions
00:04
About the Instructor
Justin Dike
4.3 Average rating
564 Reviews
40,351 Students
24 Courses
CartoonSmart / Owner / Leader Developer and Instructor

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.