The Pinball Games iOS and tvOS Starter Kit – Built with Swift 4
The Pinball Games iOS and tvOS Starter Kit pays tribute to a genre of gaming deeply loved by many. Digital homages to pinball have been around since the 80’s, on everything from the original Nintendo to the PS4, but we thought it would be interesting to gauge the number of “pinheads” out there in the iOS and tvOS store. So we set our demo app to Free for three days in February. The numbers surprised even us, especially since the app was already in the store for a week, so it didn’t receive any special attention as a new app.
Almost half of every one in the iOS and tvOS store that saw the app downloaded it. And just in terms of visibility, those are high numbers. Implying “pinball” is probably being searched by a lot of people. So imagine if just 5%, were actual buyers. Even 1% would be significant.
Xcode without the code.
Seriously, the kit requires zero knowledge of Swift or Sprite Kit
The starter kit is Swift 4 and Sprite Kit based, but no coding is necessary to make your game.
Tables are designed within Xcode, using the Scene editor. You can lay out unlimited flippers, plungers, ramps, lights, and other table decoration completely in Xcode.
Animate objects and define most physics all within the Scene editor.
Use simple properties in a Property List file to add pinball-specific options to elements on your table.
Apps made with the kit automatically support up to 2 external Game Controllers (in particular the Nimbus which Apple sells for the new Apple TV). Game Controllers work for the Apple TV, iPhone and iPad.
You can create an unlimited number of tables in each app. Bonus or secret tables can even be achieved when the ball enters a hole, for example.
Tables can be progressively played, for example, by setting a score amount to achieve before moving onto the next table.
The scene camera by default tracks the ball on the y axis (vertically) and optionally can track the ball on the x axis. Cameras can also disable tracking the ball, for a completely static view of the table.
Cameras can define different parameters / zoom levels per device and at different times, for example, during regular play or during multi-ball play.
The included demo table has (our) ideal camera properties already in place, making it easy to tweak for your table.
Add parallax images to create subtle three-dimensional effects. For example, a glassy highlight overtop the table might have a parallax effect.
Add physics fields, like vortex, radial gravity, turbulence to give your table some truly unique features.
Includes authentic pinball table sounds, you can use in your app!
Multi-Ball Mode, a feature that no pinball kit would be complete without. Supports up to 4 balls in play at once (or many more if your ramp systems are limited)
Unlimited ramps / rails to shoot for. Rails will take the ball over top the main table without colliding into overlapping elements below.
Supports one and two player modes, with plenty of label options to update players as to who is in the lead.
Stat labels, like the score, remaining ball count, etc, can be toggled on or off during the game to distract less from the game.
Stat labels can be parented to the camera, like typical GUI, or embedded in the table itself to appear more realistic.
Table decoration, like lights and objects, are robust classes that includes dozens of properties to play sounds, start animations, hold the ball, apply impulses to the ball, set labels to guide the player, increment goals, and much more.
Includes a multi-tiered Goal system to give players plenty of missions in the game. For example, rolling over a specific spot or bumping into a button might contribute toward a goal that eventually awards an extra ball or unlocks Multi-Ball play.
The Home Menu can include buttons to jump to specific tables, alternate tables, or change modes of play (for example, one player games, two player co-op games). Buttons can also open Game Center, or other menu pages.
Tables can be rotated 90 degrees in the Property List, to support an upright mode. So if someone wanted to turn their actual TV to a portrait view, they could play your table length-wise. On iOS the tables are already oriented in portrait mode.
Game Center can be enabled to post High Scores.
Enable In-App Purchasing by simply specifying certain buttons require a product ID to be purchased (otherwise the button won’t open a particular table, and instead prompt the user to purchase).
Includes the code required to support Promoted In-App Purchases in iOS11
Lovingly Documented with Videos and Articles…
Watch how-to videos and get to know all the kit’s properties in a very short amount of time….
Design tables in your choice of art software…
The Pinball Games Starter Kit welcomes all art, no matter what software you created it in. So if you’re a Photoshop guru, use that. If you’re an Adobe Animate / Flash animator, perfect. All you need to do is export transparent PNG files (or animation sequences) to use to layout your table in Xcode. If you want to read the finer points of bringing your assets into Xcode, find out more here.
Read More About Bringing Art Into Xcode
Once imported, you can arrange all your table art in Xcode’s Scene Editor, similar to assembling it back together in any design program. In Xcode, you will start to specify what does what, by giving images Names and broad Class types. For example, Flipper, Plunger, Light, etc. See an example below…
Play like it’s 1984. Game controller support built right in.
While we can’t affix flipper buttons to the side panels of your Apple TV or iOS device, we’ve given you the next best thing. Built in support for external game controllers. This means whether you are playing your pinball app on the new Apple TV, iPhone or iPad, if you have an external game controller connected, it should work out-of-the-box. Tapping the directional buttons left or right will control the flippers. Hold down the A button to launch the plunger. And press the Y button to tilt the table.
For players without the luxury of an external controller, tapping left or right on the iOS screen or Apple TV remote controls the flippers. Touching while moving down launches the ball on iOS, as does a hard press on the Apple TV remote’s touch pad.
Goals to keep players hooked!
Using the Property List, you can create your own “goals”, which is a broad term for any number of events you want to occur when something has been achieved in the game. This could be when the ball goes over the same ramp 10 times, or hits 30 bumpers, or collides with a single object on the wall. When a goal has been achieved the app can award an extra ball, add points, unlock a score multiplier, advance the game to another table, play sounds or animations, turn on physics fields, and much more.
Goals can be reset when the ball is lost, or immediately after they’ve been achieved (so they can be run again and again).
No coding needed. Ever. Seriously.
We teach code here at CartoonSmart. We love code. But part of making a great game engine, means it can be used without jumping in and out of the code constantly. This lets you, the developer, focus on just adding great art and designing fun tables.
If you’ve never worked with a Property-List driven project before, the image to the left shows you what to expect. Very literal property names provide data for each table. You can copy and paste these so each table uses the same data as before, and use what we’ve already setup in the demo version of the kit. Think of the property list like a control board for the app. Flip a YES to NO, and a table object behaves slightly different. Change a number, and the plunger hits the ball harder. Everything has a default behavior, so setting properties really just adds options.
Easy to setup buttons and menus…
Your app can open directly into your first table, but most likely you will want to include an opening menu so players can choose a one or two player game, or what table to play (if you’ve designed more than one). You can also add buttons to open Game Center, other menus, URLs, or alternate versions of your main table. Buttons can be device-specific, so you might include different buttons or arrangements for the TV, iPad or iPhone.
Once playing a table, users can pause the menu and choose from most of the same button options as your menus, plus some in-game specific options, like abandoning the ball, resuming the game, or toggling off / on stat labels to minimize distractions while playing.
Sell your apps as a Universal Purchase
Give potential buyers more reasons than ever to get your app. The Pinball Games Starter Kit enables you to publish to both tvOS and iOS, then sell your apps under a single listing in iTunes Connect (making it a Universal Purchase). Or you can create tvOS-only versions and iOS only versions. It’s up to you!
The Kit also includes art and sound assets to give you a great sense of how to use your own art in production.
Bonus Video Tutorials – Making the Kit
Even though you will probably never need to peek under the hood of the Pinball Games Starter Kit, we’re giving you access to this entire 10-plus hour video tutorial series. If you want to understand the Swift and Sprite Kit code making the magic happen in this kit, there is no better way than watching this tutorial series.
Or if you’re a new programmer and just want to learn this amazing language, watching the kit get built from scratch is an invaluable training tool. And a fun one!
Find our more about this tutorial series