Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
The Complete iOS Game Course - Build a Flappy Bird Clone
Rating: 4.4 out of 5(85 ratings)
5,341 students

The Complete iOS Game Course - Build a Flappy Bird Clone

Over 350+ videos taking you step-by-step through process of building 8+ different applications using Sprite Kit
Last updated 7/2014
English

What you'll learn

  • Build iOS Games using Sprite Kit
  • Use the Objective-C language to build iOS games
  • Understand game physics and mechanics

Course content

62 sections349 lectures30h 22m total length
  • Introduction1:38

    Project Repositories and Resources

    We will be posting additional course information here. During the course if you find yourself unable to get a bit of code to work you can find the completed code repositories here:

    Main Space Cannon repo:

    Bomb power up challenge:

    Multi power up challenge:

    Music On/Off button challenge:

    Bouncing Ball challenge:

    Alien Animation Challenge:

    Scrolling Challenge:

    Tappy Plane:

  • Nodes8:57

    Nodes

    Code

    In this video, we use the following code to update the spaceship's rotate action to instead make it move forward:

    SKAction *action = [SKAction moveByX:0.0f y:200.0f duration:1];
    
    Links

    Apple's introduction to Sprite Kit: Sprite Kit Programming Guide: About Sprite Kit

  • A Closer Look At Nodes Part 16:54
    A Closer Look at Nodes

    In this video we talk about nodes in a bit more detail. We discuss a few of the different types of nodes that Sprite Kit makes available to us as well as many of the properties and methods that make up the SKNode class. We run through an example of creating a colored rectangle using SKSpriteNode and see how adding it as a child to different nodes in our node tree affects how it behaves.

    Links

    * SKNode Class Reference

  • A Closer Look At Nodes Part 24:44
    A Closer Look At Nodes

    In this video we talk about nodes in a bit more detail. We discuss a few of the different types of nodes that Sprite Kit makes available to us as well as many of the properties and methods that make up the SKNode class. We run through an example of creating a colored rectangle using SKSpriteNode and see how adding it as a child to different nodes in our node tree affects how it behaves.

    Links

    * SKNode Class Reference

  • Adding Images to Projects5:21
    Adding Images to Projects

    This video is just a refresher on how to add images to your Xcode projects. If you are familiar with doing this then you may want to skip this video. Graphics are a big part of games, and so we'll often be adding images to our projects throughout the course. Whenever we add new images in a video, you'll be able to find the images featured in that video for download as part of that video's notes.

    * Space Backgrounds by Rawdanitsu

  • Coordinates11:04

    Coordinates

    Having a solid understanding of how your game assets are positioned within the coordinate systems of the various nodes and scenes within your game is important for developing code that does exactly what you expect it to. In this video we explore how nodes can effect each others positions depending on how they are organised in the hierarchy of your scene's node tree and we look at how we can make adjustments to the coordinate systems of our nodes by changing the AnchorPoint property.

    Be sure that you understand the positioning relationships between nodes by spending a bit of time playing with them. Try building up a node tree with a number of levels by adding nodes as children of children. Notice how this effects the order in which your nodes are drawn. Also note that position and rotation are not the only properties that a node passes along to its descendants. Other properties that are passed down the tree include scale, alpha, hidden and speed.

    Suggested Exercise

    Change the action on the spaceship back to the original rotation action of the default Sprite Kit template and then see if you can adjust the anchor point of the spaceship and positions of the flame nodes such that the spaceship rotates around its nose with its flames still in the correct positions.

    Code

    In this video we use the following code to add the two flames to our spaceship:

    SKSpriteNode *leftFlame = [SKSpriteNode spriteNodeWithImageNamed:@"Flame"];
    leftFlame.position = CGPointMake(-12, -109);
    [sprite addChild:leftFlame];
    SKSpriteNode *rightFlame = [SKSpriteNode spriteNodeWithImageNamed:@"Flame"];
    rightFlame.anchorPoint = CGPointMake(0.5, 1.0);
    rightFlame.position = CGPointMake(12, -87);
    [sprite addChild:rightFlame];
    

    Links

    Apple's documentation on coordinates, anchor points, node tree, draw order, etc. Well worth having a glance at: Sprite Kit Programming Guide: Building Your Scene

  • A Closer Look at Anchor Points6:20
    A Closer Look at Anchor Points

    In this video we discuss anchor points in a bit more detail and experiment with some code in the standard Sprite Kit template to see how changing the anchor point property of the space ship, alters the positioning of the sprite image and affects how it rotates.

  • Game Loops4:06

    Game Loops

    The game loop is at the core of just about every game. The state of our game needs to be updated over time, and the game loop is responsible for driving this process. Our game loop will run once per frame of animation and each time it runs we need to process all aspects of our game, e.g. player input, artificial intelligence, physics, scoring etc. When developing games, getting into the mindset of the game loop can help when thinking about how to solve certain problems as it's important that we know when different events will occur throughout the processing of a frame. Developing a solid game loop can be challenging, and fortunately, Sprite Kit has already done that work for us and so we don't need implement our own game loop. In this video we have a quick look at the Sprite Kit game loop and see how different aspects of our game state are processed throughout a frame.

    Links

    A breakdown of how a Sprite Kit scene processes a frame of animation: Sprite Kit Programming Guide: Advanced Scene Processing

    An in depth discussion of game loops as a pattern. In Sprite Kit the design of the game loop has already been done for us, so this link only serves as further (somewhat advanced) reading if you are interested: Game Programming Patterns: Game Loop

  • Overview of Actions6:24
    Overview of Actions

    Actions in Sprite Kit allow us to relatively easily add movement and animation to the nodes in our game. In this video we discuss actions and the tasks things we can use them for and how we implement them.

  • Diagnostics2:57

    Performance

    The performance of our game is obviously important, as we want our games to run as smoothly as possible. In order to make sure that we're achieving this goal, we need some sort of benchmark that we can keep track of. The frame rate is the most fundamental benchmark we can use for this purpose. If we see our frame rate drop when a particularly complex event occurs in our game, it could be a clue to us that we might need to do some optimizing in that area. Sprite Kit can report the frame rate to us along with a couple of other basic pieces of diagnostic information about how our scene is being processed. In this video we'll have a quick discussion how this info can help us when considering our game's performance.

Requirements

  • Familiarity with object-oriented programming (does not need to be Objective-C)
  • An intel-based Mac that has Mac OS X Snow Leopard or later installed

Description

We built an immersive game development course that teaches you all of the fundamentals so you can build your own games on iPhones and iPads. We combine videos, notes, collaborative discussion forums, and challenging assignments to have students build real apps. Teaching online is not new to us. Our highly successful Beginner iOS Bootcamp (over 18k students and 5 star review) teaches students the basics of programming iOS apps. We use the same proven pedagogy to teach game development.

The course will include over 120 hours of content (30 hours of video plus notes and challenges), an active discussion forum where students and teachers answer questions, and multiple fully coded example projects that you can download.

Topics covered:

  • Introduction to Game Development , Sprite Kit , Scenes and Nodes, Coordinates, Game Loop
  • Sprite/Texture Creation, Sprite Theory, Atlas Files
  • Animation, Parallax Scrolling, Character animation
  • Physics Bodies, Physics Properties, Bit Fields, Collisions, Contact Response
  • User Input, Input Handler
  • Character Movement/Physics, State machines, Player Physics, Jump Curve, Double Jump, Boost, etc.
  • Tile Based Game World, Tile Sprites, Tiled + Kobold Kit, Creating and Loading Tiled files
  • Collision Detection, Axis Alined Bounding Box, Collision Bit Masks
  • Obstacles & Enemies, Basic Enemy AI
  • Collectables, Power Ups
  • Effects, Particle Effects
  • Sound, Adding Music, Adding Sound Effects
  • Scoring, HUD, Stats/Progress Tracking, Score Board
  • Game Menus, Saving/Loading Game Progression

Reviews from our iOS course

"I must say that so far, this course is awesome. Having the challenging assignments, daily discussions and feedback from the instructors, has been the missing piece that I have been looking for. I have read a handful of books, watched hours of video & typed in a bunch of tutorials, and finally, having to work through tough assignments and applying what I have been learning, it is all starting to click - Finally!" - Mark S.

“Code Coalition's discussion board is one of the best resources for a beginning iOS developer. So much help being offered” - Omar S.

“I've just completed the iOS101 course, which I thought was a great intro to the XCode environment... I feel it's been well worth the investment. ” - Herdy H.

"Wow, @CodeCoalition! Moving quickly! Week 2 is so different than week 1...and I like it :) Thnx for the challenge" - Melissa B.

“Just discovered @CodeCoalition! An excellent resource for anyone who wants to make their first iPhone app.” -Novall K.

“Can't reiterate it enough how this course is helping me with my iOS dev skills. I think using protocols and delegation is finally becoming second nature. Fingers crossed :-)” -Alex P.

“I am really loving the class. I have taken classes at Code School & Treehouse and both were missing a key element. The ability to ask questions as you complete a section and get an answer. “ -Lisa A.

“Your training is the best out there so far. I wish I had the time away from regular job to follow along.” -Christian S.

“Im loving this.. I have been through at least 5 books, and many online deals. Yours is super so far. Finally, i can get from start to finish on a lesson without wondering why on "Everything" thank youCant wait to do more.. “ -Kevin R.

Why take this course and how much time does it take to complete?

iOS game development, and software development as a whole, is a booming career. The demand for new developers at all levels far outweighs the supply. Barrier to entry is not as high as one would think - though passion and hard work are necessary, a degree in computer science or any other technical field is not required.

We aim to take you from complete beginner to junior game developer in three months. The apps you create in this course can be used on your portfolio so you have something to show when you apply for jobs. Not only that, you can throw your apps on the app store and be the next Flappy Bird!

Who this course is for:

  • Novice or advanced programmers who are interested in game development
  • Game programmers from other languages/frameworks