iOS Game Programming Cookbook
By Chhavi Vaishnav and Birani Bhanu
()
About this ebook
- Learn to create 2D graphics with Sprite Kit, game physics, AI behaviours, 3D game programming, and multiplayer gaming
- Use native iOS frameworks for OpenGL to create 3D textures, allowing you to explore 3D animations and game programming
- Explore powerful iOS game features through detailed step-by-step recipes
This book is for developers who are willing to explore iOS game programming in depth.
Good knowledge level and understanding of iOS game development will be an added advantage. You should already have a working installation of Xcode and Sprite kit.
Related to iOS Game Programming Cookbook
Related ebooks
Swift 2 Design Patterns Rating: 0 out of 5 stars0 ratingsMastering iOS Game Development Rating: 0 out of 5 stars0 ratingsGameSalad Essentials Rating: 0 out of 5 stars0 ratingsiOS Game Development By Example Rating: 0 out of 5 stars0 ratingsiOS 13 Programming for Beginners - Fourth Edition: Get started with building iOS apps with Swift 5 and Xcode 11, 4th Edition Rating: 0 out of 5 stars0 ratingsSwift Essentials - Second Edition Rating: 0 out of 5 stars0 ratingsLearning Android Game Development Rating: 0 out of 5 stars0 ratingsHTML5 Game Development with GameMaker Rating: 0 out of 5 stars0 ratingsApplication Development with Swift Rating: 0 out of 5 stars0 ratingsLibGDX Game Development By Example Rating: 0 out of 5 stars0 ratingsMastering Oculus Rift Development Rating: 0 out of 5 stars0 ratingsSwift Cookbook Rating: 5 out of 5 stars5/5Mastering Android Game Development Rating: 0 out of 5 stars0 ratingsiOS Development with SwiftUI: Acquire the Knowledge and Skills to Create iOS Applications Using SwiftUI, Xcode 13, and UIKit Rating: 0 out of 5 stars0 ratingsLearn iOS Application Development: Take Your Mobile App Development Skills to the Next Level with Swift and Xcode (English Edition) Rating: 0 out of 5 stars0 ratingsUnity Virtual Reality Projects Rating: 0 out of 5 stars0 ratingsOuya Unity Game Development Rating: 0 out of 5 stars0 ratingsSwift 5 for Absolute Beginners: Learn to Develop Apps for iOS Rating: 0 out of 5 stars0 ratingsSwift Functional Programming - Second Edition Rating: 3 out of 5 stars3/5Game Development with Three.js Rating: 0 out of 5 stars0 ratingsGetting Started with Unity 5 Rating: 5 out of 5 stars5/5Mastering Android Game Development with Unity Rating: 0 out of 5 stars0 ratingsSwift iOS Programming for Kids Rating: 0 out of 5 stars0 ratingsBecoming Comfortable with Unity Rating: 0 out of 5 stars0 ratingsInstant IntroJs Rating: 0 out of 5 stars0 ratingsUnity 5.x Shaders and Effects Cookbook Rating: 0 out of 5 stars0 ratingsUnity Game Development Scripting Rating: 0 out of 5 stars0 ratingsAndroid Wearable Programming Rating: 0 out of 5 stars0 ratingsSwiftUI for Absolute Beginners: Program Controls and Views for iPhone, iPad, and Mac Apps Rating: 0 out of 5 stars0 ratingsInstant HTML5 2D Platformer Rating: 0 out of 5 stars0 ratings
Applications & Software For You
Learn to Code. Get a Job. The Ultimate Guide to Learning and Getting Hired as a Developer. Rating: 5 out of 5 stars5/5Logic Pro X For Dummies Rating: 0 out of 5 stars0 ratingsSound Design for Filmmakers: Film School Sound Rating: 5 out of 5 stars5/5Excel : The Ultimate Comprehensive Step-By-Step Guide to the Basics of Excel Programming: 1 Rating: 5 out of 5 stars5/5GarageBand For Dummies Rating: 5 out of 5 stars5/5Synthesizer Cookbook: How to Use Filters: Sound Design for Beginners, #2 Rating: 3 out of 5 stars3/5Hilarious Jokes for Minecrafters: Mobs, Creepers, Skeletons, and More Rating: 1 out of 5 stars1/5How to Create Cpn Numbers the Right way: A Step by Step Guide to Creating cpn Numbers Legally Rating: 4 out of 5 stars4/5The Unofficial Guide to Open Broadcaster Software: OBS: The World's Most Popular Free Live-Streaming Application Rating: 0 out of 5 stars0 ratingsAdobe Photoshop: A Complete Course and Compendium of Features Rating: 5 out of 5 stars5/5The Little SAS Book: A Primer, Sixth Edition Rating: 5 out of 5 stars5/5iPhone Photography For Dummies Rating: 0 out of 5 stars0 ratingsAdobe Illustrator: A Complete Course and Compendium of Features Rating: 0 out of 5 stars0 ratingsBlender 3D Basics Beginner's Guide Second Edition Rating: 5 out of 5 stars5/5Mastering QuickBooks 2020: The ultimate guide to bookkeeping and QuickBooks Online Rating: 0 out of 5 stars0 ratingsStart Your Own Podcast Business: Your Step-By-Step Guide to Success Rating: 5 out of 5 stars5/5Experts' Guide to OneNote Rating: 5 out of 5 stars5/5GarageBand Basics: The Complete Guide to GarageBand: Music Rating: 0 out of 5 stars0 ratingsData Science and Big Data Analytics: Discovering, Analyzing, Visualizing and Presenting Data Rating: 0 out of 5 stars0 ratingsVocal Rescue: Rediscover the Beauty, Power and Freedom in Your Singing Rating: 4 out of 5 stars4/5Affinity Photo How To Rating: 0 out of 5 stars0 ratingsHow Do I Do That In InDesign? Rating: 5 out of 5 stars5/5Mastering ChatGPT Rating: 0 out of 5 stars0 ratingsSix Figure Blogging In 3 Months Rating: 4 out of 5 stars4/5Adobe InDesign CC: A Complete Course and Compendium of Features Rating: 0 out of 5 stars0 ratingsiPhone X Hacks, Tips and Tricks: Discover 101 Awesome Tips and Tricks for iPhone XS, XS Max and iPhone X Rating: 3 out of 5 stars3/5FL Studio Cookbook Rating: 4 out of 5 stars4/5
Reviews for iOS Game Programming Cookbook
0 ratings0 reviews
Book preview
iOS Game Programming Cookbook - Chhavi Vaishnav
Table of Contents
iOS Game Programming Cookbook
Credits
About the Authors
About the Reviewers
www.PacktPub.com
Support files, eBooks, discount offers, and more
Why Subscribe?
Free Access for Packt account holders
Preface
What this book covers
What you need for this book
Who this book is for
Sections
Getting ready
How to do it…
How it works…
There's more…
See also
Conventions
Reader feedback
Customer support
Downloading the example code
Downloading the color images of this book
Errata
Piracy
Questions
1. iOS Game Development
Introduction
Getting started with the SpriteKit game framework
Getting ready
How to do it...
How it works...
Developing a mini game using SpriteKit
Getting ready
How to do it...
How it works...
2. SpriteKit
Introduction
Learning the basics of SpriteKit – The FlyingSpaceship tutorial
Getting ready
How to do it...
How it works...
There's more...
Understanding scenes, nodes, and sprites
Getting ready
How to do it...
How it works...
Anatomy of game projects
Getting ready
How to do it...
How it works...
Applying actions on sprites
Getting ready
How to do it...
How it works...
Adding infinite scrolling
Getting ready
How to do it...
How it works...
Moving characters
Getting ready
How to do it...
How it works...
There's more...
See also
3. Animations and Texture
Introduction
Animating your textures
Getting ready
How to do it...
How it works...
Creating a texture atlas
Getting ready
How to do it...
How it works...
There's more...
Adding animations using a texture atlas
Getting ready
How to do it…
How it works…
Collision detection
Getting ready
How to do it…
How it works…
Parallax background
Getting ready
How to do it…
How it works…
4. Particle System and Game Performance
Introduction
Installation of the particle system
Getting ready
How to do it
How it works
There's more
See also
Using the particle system in games
Getting ready
How to do it
How it works
There's more
See also
Particle emitter integration
Getting ready
How to do it
How it works
There's more
See also
Game performance analysis
Getting ready
How to do it
Debug navigator
Instruments
There's more
See also
5. Adding Music to iOS Games and an Introduction to iCloud
Introduction
Adding music to games
Getting ready
How to do it...
System Sound Services
AVAudioPlayer
Audio Queue Services
How it works…
There's more…
See also
Adding background and sound effects
Getting ready
How to do it…
How it works…
There's more…
See also
Introduction to iCloud
Getting ready…
How to do it…
How it works…
There's more…
See also…
Integration of iCloud with iOS games
Getting ready
How to do it…
How it works…
There's more…
See also
6. Physics Simulation
Introduction
Introduction to physics simulation
Getting ready
How to do it...
Integrating physics engine with games
Getting ready...
How to do it...
How it works…
There's more…
Adding real-world simulation
How to do it...
7. Adding Reality to Games
Introduction
Creating physics bodies in the world
Getting ready
How to do it...
Physics joints
Getting ready
How to do it…
Detecting contact and collisions
Getting ready
How to do it…
8. Introduction to Game Math and Physics
Introduction
The Pythagorean theorem
Getting ready
How to do it
Using vectors
How to do it
How it works
Physics
How to do it
How it works
9. Autonomous Moving Agents
Introduction
Introduction to steering behaviors
Getting ready
How to do it
Implementing the seek
Getting ready
How to do it
There's more
Implementing flee
Getting ready
How to do it
There's more
Implementing arrive
Getting ready
How to do it
There's more
Implementing evade
Getting ready
How to do it
There's more
Implementing wander
Getting ready
How to do it
There's more
Implementing wall avoidance
Getting ready
How to do it
Obstacle avoidance
Getting ready
How to do it
There's more
10. 3D Game Programming with OpenGL
Introduction
Introducing OpenGL
Getting ready
How to do it
Building a mini 3D animation game using OpenGL
How to do it
See also
11. Getting Started with Multiplayer Games
Introduction
Anatomy of multiplayer games
Getting ready
How to do it...
How it works...
Setup for a multiplayer game
Getting ready
How to do it
How it works
Assigning roles to players
Getting ready
How to do it
How it works
There's more
See also
12. Implementing Multiplayer Games
Introduction
Creating our TankRace environment
Getting ready
How to do it
How it works
Movement of players
Getting ready
How to do it
How it works
Implementing game play
Getting ready
How to do it
How it works
There's more
See also
Index
iOS Game Programming Cookbook
iOS Game Programming Cookbook
Copyright © 2015 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the authors, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
First published: March 2015
Production reference: 1200315
Published by Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham B3 2PB, UK.
ISBN 978-1-78439-825-5
www.packtpub.com
Credits
Authors
Bhanu Birani
Chhavi Vaishnav
Reviewers
Rahul Borawar
Andrew Kenady
Chinab Shah
Commissioning Editor
Taron Pereira
Acquisition Editor
Neha Nagwekar
Content Development Editor
Shweta Pant
Technical Editor
Bharat Patil
Copy Editors
Sonia Mathur
Wishva Shah
Sameen Siddiqui
Laxmi Subramanian
Project Coordinator
Shipra Chawhan
Proofreaders
Ting Baker
Maria Gould
Chris Smith
Indexer
Hemangini Bari
Graphics
Disha Haria
Abhinash Sahu
Production Coordinator
Shantanu N. Zagade
Cover Work
Shantanu N. Zagade
Cover Image
Abhinash Sahu
About the Authors
Bhanu Birani has 5 years of experience in the software industry and a lifetime association with the technical industry. After years of programming experience in different programming languages, he started developing applications for iOS devices. He started software development along with his graduation and was really interested in learning the new technologies in the market. He then joined a software company and started developing games for them, focusing on artificial intelligence development in games.
He has also authored Application Development with Parse using iOS SDK and Getting Started with Flurry Analytics, both published by Packt Publishing.
I would like to dedicate this book to my family, which gave me the courage and confidence to write this book and supported me throughout the entire process. I would also like to give special thanks to my mom and dad for their relentless efforts to assist me in every way imaginable as well as for helping me keep my life together. Finally, I would like to thank all my friends for sharing my happiness when I started this project, which was followed with encouragement when it seemed too difficult to be completed.
Chhavi Vaishnav has more than 4 years of experience in the software industry. After her master's, she started working with IBM as a test engineer and then with extraordinary talent, she was promoted to the role of release manager in the organization. Despite being in the management profile, she has a relentless inclination towards iOS and mobility. She has contributed and worked on several projects directly and indirectly by strategizing and managing the technology in depth. She is a complete package for the organization with a get it done mindset.
I would like to dedicate this book to my mother (Mrs. RP Massey), who has given her relentless support to me in every phase of life.
About the Reviewers
Rahul Borawar is a computer science graduate from Jodhpur Institute of Engineering and Technology in Rajasthan, India. He is a passionate software craftsman and loves designing software for mobile. From the start, he has been a mobile application developer creating applications for iOS and Android platforms. He has been working since 2011 on mobile development and has published many apps on the App Store, such as Catch the Aliens (a 2D level-based game) and Draw Your Stories (a kid's app to create fables with drawing stuffs). He is currently working as a software development engineer in the mobile team for a real estate product-based company (CommonFloor).
You can follow him on Twitter (https://twitter.com/RahulBorawar) and on GitHub (https://github.com/Rahul2389). You can also check out his website http://rahulborawar.branded.me.
First of all, I would like to thank Packt Publishing for giving me the opportunity to review this technology-rich cookbook and enlighten my game development skills. Secondly, thanks to my family for supporting me in my career as a technical guy. Last but most important Praveen Kansara and Robin Kansara, who have guided me for a very long period, helping me enrich my skills. A huge thanks to both of them.
Andrew Kenady is a game developer from Bowling Green, KY, with a strong passion for both playing and creating compelling video games. Starting in his youth, Andrew graduated from the Gatton Academy of Mathematics and Science at WKU at the age of 17 in May 2011, and continued his educational path at Western Kentucky University. He received his bachelor's degree in computer science at the age of 19 and continued to work as the lead game developer for the Kentucky-based software company Hitcents.com after spending time working as a computer science tutor for local colleges. Now, Andrew works with a team of developers to design and produce exciting and engaging new titles for mobile, PC, and console platforms while satisfying his creative itch by developing his own indie prototypes and games at home. Titles to which Andrew is credited include Draw a Stickman: EPIC and Battlepillars.
Chinab Shah is an entrepreneur who owns a company called Nextsavy Technologies, which is based in Ahmedabad. They provide services in mobile application designing and development. He is also an iOS developer and a technology evangelist. He believes in creativity and thinks that everyone and everything in this world can be creative.
www.PacktPub.com
Support files, eBooks, discount offers, and more
For support files and downloads related to your book, please visit www.PacktPub.com.
Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.PacktPub.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at
At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a range of free newsletters and receive exclusive discounts and offers on Packt books and eBooks.
https://www2.packtpub.com/books/subscription/packtlib
Do you need instant solutions to your IT questions? PacktLib is Packt's online digital book library. Here, you can search, access, and read Packt's entire library of books.
Why Subscribe?
Fully searchable across every book published by Packt
Copy and paste, print, and bookmark content
On demand and accessible via a web browser
Free Access for Packt account holders
If you have an account with Packt at www.PacktPub.com, you can use this to access PacktLib today and view 9 entirely free books. Simply use your login credentials for immediate access.
Preface
Since the iOS devices are breathing in the market, the games have been started ruling this segment as well. iOS devices provide us with a really powerful gaming platform, which enables all the game developers to develop amazing games for this segment.
This book provides you with simple, direct solutions to all your common problems faced during game programming in iOS devices. This book covers a wide range of topics with detail and practical explanations. This book serves starts with simple game animations and an introduction to SpriteKit and then will grow the horizon towards working with the physics engine, 3D game programming, Artificial Intelligence for games and finally we will end up learning multiplayer game programming.
The book contains more than 45 interesting game recipes, which you need to learn and implement in your next game. This book serves as an all-in-one package for beginners, intermediates, and experts. You have complete control of each step of the game development. We also provide the solution kit at the end of each chapter once the recipe is finished.
What this book covers
Chapter 1, iOS Game Development, gets you started with the game development techniques with an understanding of the default game template and developing a mini game.
Chapter 2, SpriteKit, explains the basic structure of SpriteKit with the anatomy of game projects. Then later in the chapter we will take a deeper look into scenes, sprites and nodes. By end of the chapter we will be able to build a mini game with infinite scrolling.
Chapter 3, Animations and Texture, helps us to explore the depth of animations, which can be accomplished in iOS games. We will learn to create a texture atlas and create animations on them. We will also explore character animations and parallax backgrounds in this chapter.
Chapter 4, Particle System and Game Performance, makes us learn and understand the anatomy of particle effects and emitter system in games. In addition to that we will be exploring the evaluation of game performance in this chapter.
Chapter 5, Adding Music to iOS Games and an Introduction to iCloud, teaches us the numerous ways to add the music in the games. We will explore the various events to add music to the games such as background music and various other sounds effects on specific events. At end of the chapter, we will learn about iCloud integration in our games.
Chapter 6, Physics Simulation, gets us started on working with the physics engine in games in order to add more reality to the games. In this chapter, we will learn some exciting real-world simulations by creating a small game.
Chapter 7, Adding Reality to Games, broadens your scope in physics simulation by explaining the nitty gritty of physics joints, contact detection, and collision. In this chapter, we will explore the depth of physics and its impact on the overall game development process.
Chapter 8, Introduction to Game Math and Physics, brushes up your basic mathematics skills in the initial half of the chapter and then going forward explains their usage in the games. This chapter explains various aspects and properties of math and physics that are used in games.
Chapter 9, Autonomous Moving Agents, reveals the most interesting part of the games that is, artificial intelligence. In this chapter, we will practically implement various artificial intelligent behaviors in our game. We will explore, seek, flee, wander, arrive, pursuit, evade behaviors. Other than this, we will also learn group behaviors such as alignment cohesion and separation.
Chapter 10, 3D Game Programming with OpenGL, helps you in exploring 3D game programming. In this chapter we will learn the basics of OpenGL and then going forward in the chapter we will learn create a working 3D game model.
Chapter 11, Getting Started with Multiplayer Games, starts from the basics of the multiplayer game including the anatomy of multiplayer games. You will learn to set up a connection between two iOS devices and then will also learn to send and receive data from one device to another.
Chapter 12, Implementing Multiplayer Games, creates a multiplayer game using which two players can play simultaneously. In this chapter, we will use all the methodologies that we have learned in the introduction chapter.
What you need for this book
You'll need the following setup to get started with iOS game programming using SpriteKit:
An Intel-based Macintosh running Snow Leopard (OS X 10.6.8 or later)
Xcode
You must be enrolled as an iPhone developer in order to test the example projects on your device
iOS device with 7.0 or later
Who this book is for
If you are willing to learn game programming to develop your own games, then this book is for you. In this book, you will learn about various verticals of game development. This book will teach you a step-by-step way to write your own game.
This book uses Objective-C as its main language, so some basic knowledge of Objective-C is a must. This book assumes that you understand the fundamentals