
Discover the complete iOS game course with SpriteKit and Swift 3, covering Xcode setup, Swift basics, and building games like Jack the Giant, with assets, questions, and announcements.
Register for an Apple developer account and create an Apple ID, securely store security questions, then download Xcode from the developer site or App Store to begin building iOS apps.
Open Xcode, create a new playground to explore Swift basics, including variables, their types, and the basics of object oriented programming.
Explore declaring and using variables in Swift with playgrounds, covering strings, integers, doubles, and booleans. Learn var and let, type inference, and the difference between variables and constants.
Summarize variable and constant usage in Swift: var enables changes while let creates immutable values; learn update names and avoid errors, and use // and /* */ comments document code.
Understand Swift number variables, including integers, floats, and doubles, and compare 32-bit versus 64-bit precision, overflow issues, and the need for matching types in operations.
Explore conditionals and if statements using boolean variables to decide actions, such as eating, continuing a game, and buying courses based on money.
Learn to evaluate multiple conditions with and/or, nest if statements, and use else if and else, with operators like >, <, >=, <=, and == to drive iOS game logic.
Explore Swift switch and case statements for integers and strings. Use the default clause and break statements to implement exhaustive conditions, and compare with if-else for clarity.
Learn to perform addition, subtraction, multiplication, and division with integers and doubles in Swift, including type safety and casting to ensure precise decimal results like 13.2.
Master swift functions and methods by declaring with func, calling them, and creating parameterized and non-parameterized functions. Return values, multiple parameter types, and reusable code drive game logic.
Learn how to manipulate function parameters in Swift by storing them in a temporary variable and modifying that variable, since parameters are constants by default.
Define a class as a blueprint to create multiple objects, like players with name, health, power, and weapon. Use properties and methods to model their walk and attack actions.
Discover how initializers in Swift replace verbose property setups with a single constructor, using parameters for name, power, health, and weapon and self to assign them.
Learn how objects, instances, and classes interact, pass objects as function parameters, and modify object properties through references, not copies.
Explore visibility modifiers in Swift for iOS game development, learning private versus public access, and how to use getters, setters, and static variables for data encapsulation in SpriteKit.
Learn how inheritance lets you create a wizard as a subclass of a player, reusing name, power, health, and weapon while overriding init and attack.
Explore arrays and tuples in Swift: declare, initialize, and access elements with zero-based indexing, then append and manage arrays of various types.
Master for loops in Swift to process arrays efficiently. Iterate over every element or by index, using 0 to names.count - 1, and grasp zero-based indexing and count.
Learn how to implement a while loop to traverse an array with an index, incrementing the index to avoid infinite loops and end the loop when count is reached. Compare while with repeat-while, notice that repeat-while executes the code at least once before checking the condition, and understand why the ++ operator is deprecated in favor of plus-equals 1.
Learn how Swift optionals manage unknown values, unwrap safely to prevent crashes, and gracefully handle user input in text fields using nil checks and conditional unwrapping.
Learn how casting in Swift resolves type ambiguity when arrays mix strings and integers by casting elements to integers, a concept used in game development with sprite and label nodes.
Address the new Xcode UI changes and clarify file creation steps, including adding Swift files and scene files under resources, while distinguishing Swift files from other project assets.
Explore the basics of SpriteKit by creating a new iOS game project in Xcode, using Swift, and running a Hello world scene to understand sprites, nodes, and actions.
Explore sprite nodes in SpriteKit: create, size, color, and image-based nodes, position with anchor points, add to scenes, and mix code and scene editor workflows to build game objects.
Learn how the update function runs before every frame at 60 fps to move sprites with a time interval, and how touches began, moved, ended, and cancelled manage scene interactions.
Discover how SKAction controls game objects with rotate, move, and fade actions, including repeat forever. Learn about anchor points and how actions affect a node’s position in SpriteKit.
Explore Spryte kid’s physics system by attaching SKPhysicsBody to nodes, toggling gravity and masses, and defining shapes like circle radii; learn dynamic versus static bodies and collisions.
Explore collision control in SpriteKit with category bit masks, collision bit masks, and contact bit masks, and implement didBeginContact and didEndContact to detect and respond to collisions.
Explore creating and customizing SKLabelNode objects in SpriteKit, setting text, font, color, and position, and using the scene editor to place labels in a sks scene.
Preview jack the giant and explore the menu with start game, high score, options, and quit, toggle music, set easy to hard, and view difficulty high scores and coin scores.
Create a new iOS SpriteKit project, name your game, and set up an assets folder. Import and group assets, then enable version control to keep the project organized.
Import assets and create a gameplay scene in SpriteKit, set anchor points and size, add color sprites and backgrounds to form an infinite background, and prepare scene loading.
Create a gameplay scene class with SpriteKit, load it from the game view controller, add a player sprite with texture and zPosition to render above background, and outline update-based movement.
Create a player class in SpriteKit to control left and right movement, wiring touches, a custom class inspector, and the module name to enable movement in the gameplay scene.
Set up and control the main camera in a SpriteKit scene, naming it main camera, initializing it, and moving it via update to simulate downward movement and an infinite background.
Create a background class in SpriteKit to manage three backgrounds, enabling an infinite vertical scrolling effect as the camera moves downward, with proper scene setup and custom class connections.
Develop a clouds controller in SpriteKit that creates and configures cloud sprites, assigns names, scales, and positions them to form an infinite scrolling cloud platform for gameplay.
Shuffle the clouds array to randomize cloud positions in the scene. Implement a random between two numbers function to determine cloud x-positions.
Explore using a shuffle function to randomize sprite positions in a SpriteKit scene, with random between two numbers, place clouds around center, and add rigid bodies for landing.
Add physics bodies and colliders to the player and clouds using a collider type struct for category, collision, and contact masks, and set gravity behavior.
Fix physics body problems by resizing colliders, setting restitution to zero, and disabling rotation to prevent edge bounces, then iteratively tweak sizes for clouds and the player.
Spawn new clouds as the camera moves downward, using a distance threshold to trigger cloud creation and initialize spacing with a clouds controller.
Create the main menu scene in SpriteKit by adding a color sprite, setting the anchor point, and placing start game, high score, options, and quit buttons.
Animate and position the main menu buttons with SpriteKit move actions, tuning start times, durations, and offsets, then verify z positions and correct main menu scene loading.
Create and navigate SpriteKit scenes with Swift 3 by building the high score and options scenes. Handle touches, load scenes with transitions, and return to the main menu.
Import fonts into your SpriteKit project by enabling target membership and adding the font to fonts provided by application, then enter the font name for the high score label.
Add and position UI elements like the pause button, score, lives, and coin score as children of the main camera to keep them on screen and above the game scene.
Learn how to create a pause panel in a SpriteKit game, configure a pause button with a panel that shows resume and quit options, and reload main menu on quit.
Adopt a singleton pattern with a private initializer to create a single gameplay controller instance that initializes and shares the score across scenes, accessible via instance and used for restarts.
Initialize the gameplay controller with score, coin, and life labels, using a singleton game manager to track and reset game state, while wiring labels via the main camera.
Create a collectibles controller to spawn life and coin items using sprite kit, driven by a random between 0 and 7, with physics bodies and collision masks for player collection.
learn to implement collision detection in SpriteKit by setting physics contact delegate, handling didBeginContact to detect player collisions with coins, life, and dark clouds, updating scores and removing collected items.
Implement a check for out-of-bounds children to remove off-screen clouds and coins while preserving the background, and name collectibles to prevent nil reference errors, boosting performance.
Constrain the player's movement within bounds in a SpriteKit game by checking out-of-bounds conditions and stopping the scene when the player crosses top, bottom, left, or right limits.
Design a game data class that saves and loads easy, medium, and hard scores and coin scores using key-value pairs with NSCoding, NSKeyedArchiver, and boolean music state.
The lecture explains a singleton manager that stores game data, exposes getters/setters for difficulty scores, coin score, and music, and saves/loads via a file path with keyed archivers.
Configure the options menu to set game difficulty (easy, medium, hard), initialize and save game data via the game manager, and update a check sign to reflect the chosen setting.
Set up high score and coin labels, load scores via the game manager by difficulty, and configure camera speed with acceleration and max speed for easy, medium, and hard.
Create a private player died function that destroys the player, updates lives, scores and coin scores by difficulty, saves data, and restarts or returns to the main menu on death.
Pause the game on player death, decrement lives, and display the life count while scheduling a delayed reset using a timer, with proper life checks and UI updates.
Create and display the end score panel with the final score and coin score using a sprite node and labels with the fonts, centered on the main camera.
Build a singleton audio manager using AVFoundation to load and play background music across the app, with error handling, looping, and a toggle in the main menu.
Set up and control background music with a game manager and audio manager via a music button. Use SK actions to play coin and life sounds and ensure proper initialization.
Finish a SpriteKit game by positioning the player on the first cloud, resetting the score, and handling pause, resume, and quit interactions for a polished final touch.
create a flappy bird style game from scratch using spritekit, featuring an animated bird, pipes with a scoring collider, bird color selection, high score tracking, and restart or quit options.
Import and organize assets in a new SpriteKit iOS project to build flappy bird, creating folders for birds, fonts, sounds, pipes, backgrounds, and ensuring asset references.
Create gameplay scene in SpriteKit, add an sks scene and a Swift gameplay class with didMove to view, set iPhone 6 resolution, and load it in the game view controller.
Initialize three background and three ground sprites, position them across the scene, and scroll them to create an infinite background effect.
Move backgrounds and grounds as named child nodes to simulate movement, creating an infinite scrolling effect with depth by repositioning off-screen nodes during each update.
Add a bird class to the scene in the iOS game course using SpriteKit and Swift 3; initialize it, set z positions and anchors, and attach the bird for play.
Add physics bodies for the bird and ground, define collision categories, and enable contacts with pipes and score. Implement the flap impulse and velocity normalization to control bird movement.
Learn to add pipes as obstacles by creating a pipes holder, configuring pipe up and pipe down with physics bodies, and placing them above the ground for collision-aware gameplay.
Learn to build SKAction sequences in SpriteKit to move the pipes holder to the zero position on the x axis, then remove it, and spawn obstacles every two seconds.
Apply Swift extensions by adding a public CGFloat extension with a random between numbers function to randomize pipe y positions and create a gap for scoring with a core collider.
Implement a score system in SpriteKit by adding a score label, creating a score node for pass-through detection, configuring fonts in Info.plist, and incrementing the score on collision.
Detect collisions in a SpriteKit game by implementing the physics contact delegate, tracking bird, pipes, ground, and score, and handling game over with restart and main menu options.
Learn to handle bird collisions with pipes and ground, update the score, and show retry and quit buttons via a bird died function and is alive and game started flags.
Add finishing touches with a press button to start, and enable restart by clearing the scene, resetting score, and reinitializing, main menu to select among three birds and save scores.
Create the main menu scene in SpriteKit, add a background and play and high score buttons, and handle touches to load the gameplay scene with a transition.
Create a bird button as SKSpriteNode with a bird image, set anchor, position, scale, and z-position, and link it to a singleton game manager cycling blue, green, and red birds.
Animate the bird button by building an SK texture array from the bird frames and looping them with an SKAction, and increment the index on taps to cycle birds.
Animate the bird with a texture array and a sprite action, choose blue, green, or red via the game manager, and apply a dyed death texture.
Save and display the high score in a SpriteKit game using UserDefaults, a game manager, and a main menu high score label and button.
Preview an infinite cowboy runner game with moving ground and animated backgrounds, featuring jumping over cactus obstacles, collecting a high score, and pause, restart, and quit controls.
Import and organize assets for an iOS SpriteKit game by creating a project, grouping files (player, sounds, fonts, obstacles, buttons, backgrounds), and configuring landscape orientation for the build.
Create and configure the gameplay scene for the iOS SpriteKit game, setting the scene size to 1334 by 750 and adding the Swift gameplay scene file in a structured project.
learn to add backgrounds and grounds to a scene by creating an initialize function, looping to create three bg nodes with proper anchors and positions for seamless scrolling.
Move backgrounds and grounds to create an infinite scrolling effect, updating their positions every frame and repositioning off-screen sprites using scene width and background counts.
Create a player class in SpriteKit, initialize the player, add it to the scene. Set its name, position, anchor point, and scale; then prepare physics bodies for ground collisions.
Learn to add physics bodies to the player and ground in SpriteKit, configure collider types and category bit masks, manage gravity and disable rotation for stable collisions with obstacles.
Implementing player jumping in SpriteKit by normalizing velocity, applying a vertical impulse, and using a canJump boolean with ground contact to limit jumps to the ground.
Create an obstacles system in SpriteKit. Build an obstacles array, instantiate six obstacles (with cactus as obstacle 0), and configure their physics, scale, anchor, and placement.
Spawn obstacles by randomizing from the obstacles array, copy the sprite, and launch it across the screen with SK actions before removing it; use a timer to spawn at intervals.
Implement a random between numbers function for CGFloat to stagger obstacle spawns, and use physics contact to handle collisions with obstacles and cacti, dragging the player and triggering restarts.
Detect when the player stands on an obstacle and drag the player along with it using move player and player on obstacle. Reset on contact end to allow jumping.
Implement out-of-bounds death by adding a player died function, remove the player from the scene, stop movement with an is alive flag, and show restart and quit buttons.
Create a dynamic main menu scene in SpriteKit with scrolling backgrounds, animated title, and play and score buttons. Use touch handling to transition to gameplay scene or reveal high scores.
Reload the game on death by tapping restart to load the gameplay scene or quit to return to the main menu, using touches and SKTransition doorway with duration 1.5 seconds.
Create a score label in the gameplay scene, start a 1-second timer to increment the score by 1 per second and update the label with meters; stop on player death.
Create a multi-frame walk animation from textures, using SKAction to animate the player with a time interval, and loop it forever while testing run speed and jump height.
Create a pause panel in the gameplay scene with a pause button and resume and quit options, pausing timers and game logic until the panel is dismissed.
displaying a high score label in the main menu using SKLabelNode and user defaults, updating on game over and persisting the value across sessions.
***** The Course Is Updated For Swift 3 And Xcode 8 *****
***** Enroll Now And Master 2D iOS Game Development *****
We built an impressive game development course that teaches you all fundamentals so you can build your own games for iOS.
The course is structured so that it begins slowly, giving you the basic stuff that you need to move forward, and after each video you will understand more and more fundamentals about developing games with SpriteKit.
We take practical approach in teaching, so we are going to build real world games that you can play after you finish building it.
You will also benefit from my super fast response if you have any issues that you are stuck with(I check Udemy forums every day if someone posts a question). Oh and all the students taking the course will also be there to help you!
All project files will be included and you are free to use them for anything that you like, personal or commercial use!
Lets take a look at the games that we are going to create inside of this course:
- Jack The Giant -
We are going to start with a simple game that I call Jack The Giant. In this game we are going to help Jack climb down the beanstalk, along the way we can jump on white clouds but we need to avoid dark clouds. Besides of creating our gameplay we are going to create menus, implement background music, save our game progress, and much much more.
- Flappy Bird -
The next game that we are going to create is Flappy Bird, and I know what you are thinking oh not another Flappy Bird clone, but this is not a regular Flappy Bird clone, oh no, I've added a lot of features that you can't find in any other flappy bird clone such as selecting a bird(choose between different flappy birds), using advanced features of SKActions and many other features that you will see inside of the course.
- Cowboy Runner -
After Flappy Bird we are going to create one of the most popular
games out there - Infinite Runner!! In this game we are going to see how
can we scroll our backgrounds, how can we use NSTimer to help us control our game and much much more.
What You will learn
That And Much More Is Awaiting For You In This Course
The course teaches everything from basic to more advanced stuff on how to plan, design and develop your game, however the course WILL NOT teach you every single aspect of SpriteKit and how to use it because it's impossible to teach everything.
Using
what you obtain in this course, you will be equipped with more than
enough knowledge in order to continue improving yourself in the field of
game development, using SpriteKit or any other game development framework.
If You ever had an idea for an awesome game, then enroll in this course and learn the tools that you need to develop Your next hit game!!!
What Is Your Risk By Taking This Course?
Nothing!! If you are not satisfied with the course, I promise I will give you a full refund of your money NO questions asked!!
Enroll Now!! You Will Not Be Disappointed!!