Thursday Discount - Lifetime Access for $20!!!! - Click Here!

Become a Pinball Wizard

Learn how build an unlimited number of realistic pinball games with Swift and Sprite Kit.

Pinball Games for iOS or tvOS Video Tutorials

Learn more about Sprite Kit

Sprite Kit is a 2d game engine for creating apps for iOS, tvOS, and Mac OS devices. Sprite Kit comes included with Xcode and since it is developed by Apple, developers can be assured that future versions of the iOS, tvOS and Mac OS support their past projects.

Swift Video Tutorial - Technology Taught

Developed with Swift 2

This course teaches Xcode development using Swift 2, Apple’s latest programming language. Swift can be used to create both iOS and tvOS Apps to sell through the App Store, or Mac OS apps to sell through the Mac App Store.

Made with this course...

We love showing off what our courses can create, and our Old West Pinball app is a shiny, chrome example. For iOS or tvOS, this app was created while we taught the tutorials in this course. Watch this video tutorial series and you’ll have the same know-how to build your own pinball app from scratch. Or take it easy on yourself and begin by using our Pinball Games Starter Kit (which includes the video tutorials as an added bonus).

Over 10 hours of iOS and tvOS training…

Full disclosure: we love pinball here. So this course was bound to go the extra mile, and be one of our all-time favorites.  If you are interested in any kind of physics based Sprite Kit / Swift game this course covers all the fundamentals to deal with a fast-running object bumping around a scene and triggering countless events.  But obviously, we had a clearer objective in mind: make an authentic feeling pinball game. We started by watching pinball videos on YouTube, in particular the Pinball Amateur and Professional Association (PAPA) posts hundreds of tables being played, shot from a camera directly over the table. With side-by-side comparisons of those videos and our projects, we tried to match the weight of the ball, the speed, the “punchiness” of the flippers. And we think we got it right!

Pinball Game Tutorials with Swift and Sprite Kit

Course Highlights – Students will learn how to….

  • Create a Universal iOS and tvOS project (single project, targeting both)
  • Detect touches on the screen or the new Apple remote’s touch pad
  • Apply impulses to physics-based objects like flippers
  • Detect collisions / contacts between physics bodies
  • How to reliably change physics properties after a contact
  • Connect external game controllers for both iOS and tvOS
  • Make the Scene’s camera track the ball vertically or horizontally
  • Animate sprites using texture atlases
  • Create dedicated classes for objects like plungers, flippers, table lights, table objects (bumpers, walls, etc)
  • Vary the category/collisions mask of a physics body to prevent it from colliding with certain objects (used when putting the ball onto the rail system)
  • Open alternate device-specific Scene files
  • Change default properties of everything in an app using a Property List
  • Use NSUserDefaults to save data
  • Use NSNotifications to pass data between classes
  • Create a goal system to unlock features and trigger special events. For example, if a certain collision occurs 5 times, the system would notify the main scene to make something else happen.
  • Play sounds, set labels, reset objects.
  • Toggle between 1 and 2 player modes, create menus, buttons and in-game pause screens.

The entire course is broken into nine lengthy sessions. To read about each, click here...

Session 1 – Initial Project Setup, Flippers and Ball

In this first session of tutorials, we will create a project which targets both iOS and tvOS apps, then create the pinball table’s flippers and ball.

Session 2 – Working with External Game Controllers and Camera Tracking

In this second session of video tutorials, we will discuss the Swift and Sprite Kit code to work with external game controllers for both tvOS and iOS. We will also create a camera in the scene to follow the pinball continuously or alternatively move up and down if the ball has left the visible area of the screen.

Session 3 – Setting up the Plunger

In this third session of video tutorials, we will setup the Plunger, first for tvOS, and then for iOS apps. The tvOS version will react to the A button (or other buttons of your choice) being pushed down and released. The iOS version will move the plunger as the user’s fingers move down the screen. When released, the plunger is released, giving the ball a variable amount of power into the table. We will also create an initial Table Object class

Session 4 – Starting Gate, Property Lists, and Table Objects

In this session of video tutorials, we’ll create a starting gate which locks itself when the ball leaves the launch gutter. Then work with a Property List to make our TableObject class flexible for many potential types of collide-able objects to come.

Session 5 – Adding a Light Class, More Flippers, and Ramps

In this session of video tutorials, we’ll look at how to create a Light class (mostly used for rolling over lights on the table), how to add more flippers with property list-driven options, and how to create the oh-so-popular pinball ramp!

Session 6 – Holding the Ball, Stuck Balls, Table Properties and Much More!

In this session of video tutorials, we keep adding to our Swift and Sprite Kit pinball game by: adjusting the gravity, making table objects hold onto the ball temporarily, make “holes” to visually drop the ball in one place and come out another, set a dynamic depth so some table objects can be behind or in front of the ball depending on it’s position, handle stuck ball situations, and add properties for the main table.

Session 7 – Loading New Tables and Adding Goals for Players to Achieve

In this session of pinball tutorials, we make it possible to advance to a new table if the score is over a certain amount or get sent back to specific table if the player’s score is too low. We’ll also begin working on adding Goals for Table Objects this session. The project will support an unlimited number of “goals” of your choosing. For example, we might create an “ExtraBall” goal which requires colliding with something x number of times. Or a goal might be to progressively activate a Score Multiplier, like 2x, then 4x, then 6x, etc and so on. Ultimately we will extend this to the Light class as well, and have a very powerful system for achieving multiple goals and triggering just about anything in the game.

Session 8 – Adding More Goals, More to the Light Class, and Sounds!

In this session we’ll continue adding more possibilities to our Goal properties and we’ll also super-size our Light class to make it even more useful than before (a lot of animation possibilities). Plus we’ll spend a lot of time on SOUNDS!

Session 9 – Toggling and Score Multiple Players, Pausing, and Adding a Button Class

This is the End. Well, almost. We’ll tackle toggling between players in 2 Player Mode and program in a separate ball and score count for each player. We’ll also add options for dedicated score labels for each player. Then in the last half of this session, we’ll work on pausing and un-pausing the scene, and adding a Button class to use when the scene is paused to either resume the game, abandon the ball, or load new tables in either 1 or 2 player mode.

Looking for a preview video? Get started now…

Want to speed up production of your iOS or tvOS Pinball app?…

This tutorial teaches the initial creation of our Pinball Games iOS and tvOS Starter Kit, which is available as a separate purchase*. The final example project from the tutorial series is not the first version of the Starter Kit though. We spent a long time polishing the Starter Kit, and really perfecting it. Although the final example project from session 9, could definitely be used to make a great pinball app (like our Old West Pinball) we highly recommend you use the kit for developing your Pinball apps. There are more features, more properties, code tweaks (not seen in the lessons) and the kit will see new features down the road. But if you are strictly interested in learning, buying just the course might be the option for you.

Pinball Games iOS and tvOS Starter Kit

*Yearly Subscribers get access to EVERY course and Starter Kit, so you truly get the best of both worlds with that option.

Pinball Games iOS tvOS Tutorials Swift 2 and Sprite Kit

Pinball Games for tvOS or iOS Tutorial Videos

Two affordable purchasing options…

Purchase Option 1 - Lifetime Access

Get Lifetime Access to this course for a one-time purchase price. You can download (or stream) the movie files and download any source projects.

Keep in mind, this purchase is for the Pinball Games for iOS and tvOS Tutorials (which do include source projects for each session), but this is not the same product as the Pinball Games  iOS and tvOS Starter Kit. The kit is a more polished project, intended to make games without any coding,  but it does include these same tutorials. Find out more about the kit here.

Already have Lifetime Access? You can get started watching the video tutorials from right here.

Purchase Option 2 - Subscription Access (recommended)

Both Monthly and Yearly Subscribers can stream every video tutorial on the site. Yearly subscribers get access to the latest version of every starter kit whenever they want, plus access to hundreds of dollars worth of royalty free game art (yes, it’s an amazing deal). You can cancel your Monthly or Yearly subscription anytime directly through Paypal.

Browse All Courses 
  • Billed once per month until cancelled

  • Billed once per year, 2 times

Buy Now

Already a Subscriber? Get started on the course from right here.




Know what an affiliate program is? You make money just by sharing links to our site! Win. Win.

Earn when you refer any buyer here! 30 day tracking. Commissions are 33%-50% and recur on subscription products!