Search icon CANCEL
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
iOS Game Development By Example
iOS Game Development By Example

iOS Game Development By Example: Learn how to develop an ace game for your iOS device, using Sprite Kit

Arrow left icon
Profile Icon Chopra
Arrow right icon
₱1399.99 ₱2000.99
Full star icon Full star icon Full star icon Full star icon Half star icon 4.3 (11 Ratings)
eBook Aug 2015 220 pages 1st Edition
eBook
₱1399.99 ₱2000.99
Paperback
₱2500.99
Subscription
Free Trial
Arrow left icon
Profile Icon Chopra
Arrow right icon
₱1399.99 ₱2000.99
Full star icon Full star icon Full star icon Full star icon Half star icon 4.3 (11 Ratings)
eBook Aug 2015 220 pages 1st Edition
eBook
₱1399.99 ₱2000.99
Paperback
₱2500.99
Subscription
Free Trial
eBook
₱1399.99 ₱2000.99
Paperback
₱2500.99
Subscription
Free Trial

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Table of content icon View table of contents Preview book icon Preview Book

iOS Game Development By Example

Chapter 1. An Introduction to Sprite Kit

In this book we will be discussing about iOS game development using Sprite Kit. We will be taking a fun approach and shall make an actual 2D platform game on the iPhone in the process. We are going to develop a 2D (two dimensional) game; a game which relies on only two coordinates. Some famous 2D games include Mario, Hill Climb Racing, Angry Birds, Cut the Rope, and so on.

A 2D game only deals with two dimensions along x and y axes (left/right and up/down) but not along the z axis (forward/backward). So basically, players cannot rotate or move the camera freely in a 3D space to view objects from other angles and perspectives. Although there are exceptions such as 2.5D games; we will be talking about that in later chapters. So, let's not keep things waiting and dive into the book.

What's new in iOS 8?

You might be familiar with Apple's mobile operating system, popularly known as iOS; the latest version of this operating system is iOS 8. This version has a lot of new additions over its predecessor, iOS 7. Some of the additions in this version are the introduction of the Swift programming language, loads of new API's, and most importantly, improvements in Sprite Kit and its peripheral frameworks.

In this book, we will be using the Swift programming language over Objective-C. Although, you can use Sprite Kit with either Objective-C or Swift, Swift offers much easier syntax, and has a simpler learning curve.

Getting to know Swift

Swift is Apple's entirely new multi-paradigm programming language for developing applications on Apple devices. Swift has been in development for 4 years, and was announced in 2014 at the Worldwide Developer Conference (WWDC). Swift is both, a scripting and programming language; it has the ability to return multiple return values. Swift takes different constructs that are loved from many languages including Objective-C, Rust, Haskell, Ruby, Python, C#, CLU, and more. It has type safety feature that is, to prevent you passing string as int thus minimizing possible errors in your code.

We will be discussing more about Swift, as and when required, in the further topics covered.

Getting to know Sprite Kit

Sprite Kit is a framework from Apple, meant for developing 2D games for iOS devices. It is one of the best ways to make games for iOS devices. It is easy to learn, powerful and fully supported by Apple, which makes it more reliable to use than third-party game development engines.

Sprite Kit was introduced in iOS 7 and allowed easy, fast game development; it has similarities with Cocos2d, which is a popular library for game development. If you are somewhat familiar with Cocos2d, Sprite Kit will be a breeze for you.

Sprite Kit provides various functionalities that are useful for games, such as graphics rendering, animation utilities, sound playback, a particle system, and physics simulation. In Sprite Kit, every node will have a property name and physics body, which can consist of arbitrary shapes such as rectangles, polygons, circles, paths, and so on. Sprite Kit provides a richer particle system, where any aspect can be changed by code during the animation. In Sprite Kit's particle system, you can also add custom actions to the particles created. In addition, Xcode provides built-in support for Sprite Kit so that you can create complex special effects and texture atlases directly in Xcode. This combination of framework and tools makes Sprite Kit a good choice for games and other apps that require similar kinds of animation.

Because Sprite Kit supports a rich rendering infrastructure, and handles all of the low-level work to submit drawing commands to OpenGL, you can focus your efforts on solving higher-level design problems and creating your game functionality.

As Sprite Kit is a native framework of iOS, it provides in-built support for using the particle effects, texture effects, and physics simulations. The performance of Sprite Kit is better than other third-party frameworks/gaming engines, as it is a native framework.

Advantages of Sprite Kit

The main advantage of Sprite Kit is that it's built into iOS. There is no need to download any other third-party libraries or depend on external resources to develop 2D games. Other iOS APIs such as, iAd, In-App purchases, and so on, can be easily used without banking on extra plugins. You don't have to get familiar with any new programming language, the languages supported for Sprite Kit can also be used for app development on iOS. The best thing of all is that it is free, you get all the functionalities of Sprite Kit at no cost. You can run your game on both Mac and iOS without much effort, all you need to do is change its controls.

Elements of Sprite Kit

Now we are going to discuss some elements of Sprite Kit, which are essential for game development. A game made in Sprite Kit consists of many scenes which are made of nodes, and the functioning of a node in a scene is determined by actions.

Scenes

A level or environment in a game is termed as a scene. We make scenes as per our requirement, such as menus, levels, and so on. So, there are different scenes for different levels and also for different menus in a game. It's like a canvas where you position your elements.

A scene in Sprite Kit is represented by an SKScene object. A scene holds sprites and other contents to be rendered. To switch scenes, we can use the SKTransition class.

Nodes

Nodes are fundamental building blocks for all content in a scene. The SKScene class is a descendant of the SKNode class, so a scene is a root node. The SKNode class does not draw anything on scene by itself; we can think of it as a base class for other node classes. There are node subclasses as follows:

  • SKSpriteNode: This can be used for drawing textured sprites, playing video content, and more
  • SK3DNode: This can be used for rendering a Scene Kit scene as a 2D textured image
  • SKVideoNode: This can be used for playing video content
  • SKLabelNode: This can be used for rendering a text string
  • SKShapeNode: This can be used for rendering shape, based on a core graphics path
  • SKEmitterNode: This can be used for creating and rendering particles
  • SKCropNode: This can be used for cropping child nodes using a mask
  • SKEffectNode: This can be used for applying a core image filter to its child node
  • SKLightNode: This can be used for applying lighting and shadows to a scene
  • SKFieldNode: This can be used for applying physics effects to a specific portion of the scene

Actions

An action tells a node what to do and allows you to perform different things, such as:

  • Moving nodes in any direction
  • Making any node follow a path
  • Rotating nodes
  • Scaling of nodes
  • Showing or hiding a node
  • Changing the content of a sprite node
  • Playing sound
  • Removing nodes from a scene
  • Performing action on a child's node, and so on

To create a run action, first, create the action using the particular action class, configure the properties for the created action, and call a run action by passing action object as a parameter. When the scene processes the node, the actions of that particular node will be executed.

Features of Sprite Kit

Sprite Kit provides many features to facilitate the development of a game. These features can be used for enhancing the experience as well as performance of the game. Let's discuss them in brief.

Particle editor

This feature was introduced in iOS 7. Particle editor is used to add special effects in a game, like adding a mist effect in a game scene. Here, we can customize many things, such as:

  • The number of particles
  • Limit of particles allowed
  • The color of particles
  • The size of a particle
  • The life of a particle
  • The location of a particle in a scene, and so on

Texture atlas generator

Texture atlas generator combines all image files into one or more large images, in order to improve performance. We will discuss this in detail in the later chapters. It is recommended to use a lesser number of images to reduce draw calls (number of images rendering on a scene).

Shaders

Shaders were introduced in iOS 8. They are used to produce a variety of special effects; they calculate rendering effects on graphic hardware with a high degree of flexibility, for example, we have seen ripple effects in many apps/games. Wherever a user touches the screen, a ripple effect will be produced.

In Sprite Kit, shaders are represented by the SKShaderNode class object.

Lighting and shadows

Lighting and shadows were introduced in iOS 8. These effects are produced using the SKLightNode class object. The SKLightNode object can:

  • Spread a lighting effect at any desirable position on the scene
  • Add lighting in any sprite
  • Support colors and shadows

It's just a type SKNode, so we can apply any property that we apply to any SKNode.

Physics

Simulating physics in Sprite Kit can be achieved by adding physics bodies to the scenes. A physics engine has the sole purpose of moving objects around in a simulated world. The physics bodies take the properties of objects, such as mass, shape material, current trajectory, and so on, and calculate a new position for all those objects.

Every object on the Sprite Kit game scene will have a physics body. A physics body object is connected to a node on the node tree of a particular scene. The scene will simulate the effect of forces and collisions on those particular physics bodies that are connected to the node tree, whenever the scene computes a new frame of animation. We can apply a particular physics property on those nodes using their particular physics properties such as gravity, mass, force, friction, and so on.

The game loop

Following is a frame life cycle diagram:

The game loop

At the start, the update function is called to where we set up the logic of the game. After that, the scene evaluates the actions. After the actions are evaluated, we get a callback. After that, we set up physics, if any. When the physics simulation is finished, we get another call with didSimulatePhysics. Then, we apply constraint and get another callback, didApplyConstraints. The last callback method is didFinishUpdate; we get it just before frame is completed and view is ready to render. Finally SKView renders the scene; the frame is complete and it continues 60 times per second.

Setting up a project

We have discussed many things about Sprite Kit, now it's time to see a project in action and gain some practical knowledge.

The Hello World project

We'll need to create a new project to build Hello World. An Xcode project organizes everything your app needs into one convenient place. Let's begin by creating a brand new game project in Xcode by carrying out either of the first two points, and then continuing as shown in the list:

  1. Click on Create a new Xcode project on the welcome screen:
    The Hello World project
  2. Instead, you can also select File | New | Project… from the file menu:
    The Hello World project
  3. Select Game from the new project selection window:
    The Hello World project
  4. The next window asks you to customize options for your project. Fill out the fields as shown in the following screenshot:
    The Hello World project
    • Product Name: It is the name of the game
    • Organization Name: If you are an individual, then your name, or the name of the organization
    • Organization Identifier: A unique identifier of your organization
    • Bundle Identifier: It is a default ID generated automatically using organization identifier and product name.
    • Language: The programming language you are using, that is, Objective-C or Swift
    • Game Technology: The game framework being used, like Scene Kit, Sprite Kit, Metal, and so on
    • Devices: The devices you want your game to run on; iPad, iPhone, or both
    • These fields can be anything you want
  5. Press Next and Xcode will ask where to save your new project. Choose a directory and then click on Create.
  6. After saving, it should open Xcode to your brand new Hello World project, specifically to the project properties screen. On this screen, unselect the Portrait option under Device Orientation. This file will be automatically saved, so you won't have to do anything further:
    The Hello World project

Result

Run the default game project by pressing + R on your keyboard, or by clicking on the little play button in the top left corner. If a simulator isn't present, Xcode will download one for you before launching the app. The result will look as follows:

Result

Summary

We also learned how to create a Sprite Kit project and run Hello World in it.

In the next chapter, we will be diving deeply into scenes, and also into adding scenes to our Platformer game.

Left arrow icon Right arrow icon

Key benefits

  • Learn about the Sprite Kit engine and create games on the iOS platform from the ground up
  • Acquaint your Sprite Kit knowledge with Swift programming and turn your 2D game conceptualization into reality in no time
  • An abridged and focused guide to develop an exhaustive mobile game

Description

Game development has always been an exciting subject for game enthusiasts and players and iOS game development takes a big piece of this cake in terms of perpetuating growth and creativity. With the newest version of iOS and Sprite Kit, comes a series of breathtaking features such as Metal rendering support, camera nodes, and a new and improved Scene Editor. Conceptualizing a game is a dream for both young and old. Sprite Kit is an exciting framework supported by Apple within the iOS development environment. With Sprite Kit, creating stunning games has become an easy avenue. Starting with the basics of game development and swift language, this book will guide you to create your own fully functional game. Dive in and learn how to build and deploy a game on your iOS platform using Sprite Kit game engine. Go on a detailed journey of game development on the iOS platform using the Sprite Kit game engine. Learn about various features implemented in iOS 8 that further increase the essence of game development using Sprite Kit. Build an endless runner game and implement features like physics bodies, character animations, scoring and other essential elements in a game. You will successfully conceive a 2D game along with discovering the path to reach the pinnacle of iOS game development. By the end of the book, you will not only have created an endless runner game but also have in-depth knowledge of creating larger games on the iOS platform. Style and approach An easy-to-follow, comprehensive guide that makes your learning experience more intriguing by gradually developing a Sprite Kit game. This book discusses each topic in detail making sure you attain a clear vision of the subject.

Who is this book for?

This book is for beginners who want to start their game development odyssey in the iOS platform. If you are an intermediate or proficient game developer hailing from a different development platform, this book will be a perfect gateway to the Sprite Kit engine. The reader does not need to have any knowledge of Sprite Kit and building games on the iOS platform.

What you will learn

  • Learn about the Sprite Kit game engine and create indie games in no time
  • Set sail on the quest of game development career by successfully creating a runner game
  • Know more about the IDE provided by Apple for game development - Xcode
  • Get an overview of Apple's latest programming language, Swift
  • Discover the functionalities of scenes and nodes in a game
  • Explore how physics bodies work and how to add this feature into your game
  • Grasp knowledge of particle effect and shaders
  • Add a scoring system into your game to visualize high scores

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Aug 27, 2015
Length: 220 pages
Edition : 1st
Language : English
ISBN-13 : 9781785283239
Vendor :
Apple
Languages :
Tools :

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want

Product Details

Publication date : Aug 27, 2015
Length: 220 pages
Edition : 1st
Language : English
ISBN-13 : 9781785283239
Vendor :
Apple
Languages :
Tools :

Packt Subscriptions

See our plans and pricing
Modal Close icon
$19.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
$199.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just ₱260 each
Feature tick icon Exclusive print discounts
$279.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just ₱260 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total 7,297.97
iOS Game Programming Cookbook
₱2806.99
iOS 9 Game development Essentials
₱1989.99
iOS Game Development By Example
₱2500.99
Total 7,297.97 Stars icon

Table of Contents

11 Chapters
1. An Introduction to Sprite Kit Chevron down icon Chevron up icon
2. Scenes in Sprite Kit Chevron down icon Chevron up icon
3. Sprites Chevron down icon Chevron up icon
4. Nodes in Sprite Kit Chevron down icon Chevron up icon
5. Physics in Sprite Kit Chevron down icon Chevron up icon
6. Animating Sprites, Controls, and SceneKit Chevron down icon Chevron up icon
7. Particle Effects and Shaders Chevron down icon Chevron up icon
8. Handling Multiple Scenes and Levels Chevron down icon Chevron up icon
9. Performance Enhancement and Extras Chevron down icon Chevron up icon
10. Revisiting Our Game and More on iOS 9 Chevron down icon Chevron up icon
Index Chevron down icon Chevron up icon

Customer reviews

Top Reviews
Rating distribution
Full star icon Full star icon Full star icon Full star icon Half star icon 4.3
(11 Ratings)
5 star 81.8%
4 star 0%
3 star 0%
2 star 0%
1 star 18.2%
Filter icon Filter
Top Reviews

Filter reviews by




syeda tauseef Sep 07, 2015
Full star icon Full star icon Full star icon Full star icon Full star icon 5
the book gives a very clear description of the topic and is very easy to understand
Amazon Verified review Amazon
Anil V. Sep 07, 2015
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Very helpful, and good intro into a very complicated programming environment. Must Book for all looking to dive into Sprite Kit Game engine Development.Looking Forward for more awesome Books from the author 😊
Amazon Verified review Amazon
E. Murillo Sep 25, 2015
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Must say the book helped me gain a deeper understanding of iOS game development. I like a lot that many explanations are included because not only the core subject at hand gets covered, but also the wider range of concepts and classifications that will become handy down the road.Wording is completely clear for newcomers. No assumptions are made on readers being computer theorists or object oriented purists. In fact from this book, not only I improved my Swift coding, but also my overall understanding of object oriented coding. This book is a must for anyone getting into practical swift gaming development.
Amazon Verified review Amazon
Avan Sep 13, 2015
Full star icon Full star icon Full star icon Full star icon Full star icon 5
I bought this book yesterday and I'm amazed to know that it smartly covers the iOS 9 aspects of Sprite Kit. You cannot find any material for iOS 9 but this book also introduces iOS 9 which helps the reader to make sure about the other versions and also make sure what are new stuff introduced by apple for iOS 9. As of now I have only read the first 6 chapters of the book and so far the code and the explanation is spot on. I could have deducted half star for the late intro of iOS 9 but when I flipped the pages and read about the intro the book had given, it gave me a breeze that the author has smartly taken care of the same. I have recommended the book to all the people around me and will make sure to suggest everyone around. The best thing about the book is that we are making a single game alongside instead of making multiple small games. Making multiple games confuses the reader a lot but this book has taken care of avoiding that issue by just creating a single game in the book. Too good of thought. Don't be worry about iOS 9 compatibility of this book. It covers iOS 9 well :)
Amazon Verified review Amazon
Philipp Gurevich Sep 02, 2015
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Few days before the release I was provided with reviewer copy by Packt Publishing. I thoroughly enjoyed reading this book, because of its concise manner of guiding through SpriteKit’s components, and diligently revealing their dependencies and interactions with structured approach. The book’s clear and uncluttered presentation helped me to develop strong mental map of Sprite Kit’s internal hierarchy. Coming from OpenGL background, book helped me understand the peculiarities of Sprite-based rendering. The book is invaluable tool for quick familiarization with SpriteKit, Swift and Xcode’s GUI. The book uncovers the framework by creating the example game, but instead of simple “repeat this” instructions, every major concept gets succinct introduction and frequent infographics.If you need a guide to break into SpriteKit, and develop a solid understanding of SpriteKit framework and Swift, this book fulfills these tasks gracefully.
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

How do I buy and download an eBook? Chevron down icon Chevron up icon

Where there is an eBook version of a title available, you can buy it from the book details for that title. Add either the standalone eBook or the eBook and print book bundle to your shopping cart. Your eBook will show in your cart as a product on its own. After completing checkout and payment in the normal way, you will receive your receipt on the screen containing a link to a personalised PDF download file. This link will remain active for 30 days. You can download backup copies of the file by logging in to your account at any time.

If you already have Adobe reader installed, then clicking on the link will download and open the PDF file directly. If you don't, then save the PDF file on your machine and download the Reader to view it.

Please Note: Packt eBooks are non-returnable and non-refundable.

Packt eBook and Licensing When you buy an eBook from Packt Publishing, completing your purchase means you accept the terms of our licence agreement. Please read the full text of the agreement. In it we have tried to balance the need for the ebook to be usable for you the reader with our needs to protect the rights of us as Publishers and of our authors. In summary, the agreement says:

  • You may make copies of your eBook for your own use onto any machine
  • You may not pass copies of the eBook on to anyone else
How can I make a purchase on your website? Chevron down icon Chevron up icon

If you want to purchase a video course, eBook or Bundle (Print+eBook) please follow below steps:

  1. Register on our website using your email address and the password.
  2. Search for the title by name or ISBN using the search option.
  3. Select the title you want to purchase.
  4. Choose the format you wish to purchase the title in; if you order the Print Book, you get a free eBook copy of the same title. 
  5. Proceed with the checkout process (payment to be made using Credit Card, Debit Cart, or PayPal)
Where can I access support around an eBook? Chevron down icon Chevron up icon
  • If you experience a problem with using or installing Adobe Reader, the contact Adobe directly.
  • To view the errata for the book, see www.packtpub.com/support and view the pages for the title you have.
  • To view your account details or to download a new copy of the book go to www.packtpub.com/account
  • To contact us directly if a problem is not resolved, use www.packtpub.com/contact-us
What eBook formats do Packt support? Chevron down icon Chevron up icon

Our eBooks are currently available in a variety of formats such as PDF and ePubs. In the future, this may well change with trends and development in technology, but please note that our PDFs are not Adobe eBook Reader format, which has greater restrictions on security.

You will need to use Adobe Reader v9 or later in order to read Packt's PDF eBooks.

What are the benefits of eBooks? Chevron down icon Chevron up icon
  • You can get the information you need immediately
  • You can easily take them with you on a laptop
  • You can download them an unlimited number of times
  • You can print them out
  • They are copy-paste enabled
  • They are searchable
  • There is no password protection
  • They are lower price than print
  • They save resources and space
What is an eBook? Chevron down icon Chevron up icon

Packt eBooks are a complete electronic version of the print edition, available in PDF and ePub formats. Every piece of content down to the page numbering is the same. Because we save the costs of printing and shipping the book to you, we are able to offer eBooks at a lower cost than print editions.

When you have purchased an eBook, simply login to your account and click on the link in Your Download Area. We recommend you saving the file to your hard drive before opening it.

For optimal viewing of our eBooks, we recommend you download and install the free Adobe Reader version 9.