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:
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!
Jed worked for many years as a web developer for various companies in Australia and the UK. He co-founded indie games development studio, Whistlefire that recently launched their first game for iOS, Jungle Raider. He currently resides in Berlin where he is working for Toywheel, designing and building mobile games and digital toys for kids.
Introduction (04:12)
|
Nodes (09:58)
|
A Closer Look At Nodes Part 1 (07:54)
|
A Closer Look At Nodes Part 2 (05:45)
|
Adding Images to Projects (05:21)
|
Coordinates (11:05)
|
A Closer Look at Anchor Points (06:20)
|
Game Loops (04:06)
|
Overview of Actions (06:24)
|
Diagnostics (03:58)
|
Space Cannon (10:39)
|
Review: Space Cannon Setup (08:54)
|
Add shoot method (05:11)
|
Working With Angles (06:59)
|
Data Types (05:18)
|
Add physics body (05:51)
|
Shoot Method Review (06:54)
|
Clean up (03:28)
|
Using Breakpoints (08:40)
|
Review of Physics Body Basics (08:38)
|
Timing (04:44)
|
Review of Game Loop (06:18)
|
Adding Edges to the scene (06:55)
|
Challenge: Ball Challenge (01:17)
|
Challenge: Ball Challenge: Solution Part 1 (04:11)
|
Challenge: Ball Challenge: Solution Part 2 (09:57)
|
Challenge: Ball Challenge: Solution Part 3 (06:42)
|
Adding randomness (03:46)
|
Adding Halos (08:02)
|
Review - Random in Range and Spawn Halo Action (06:10)
|
BitFields (07:38)
|
Collision BitMasks (06:46)
|
Contact Test BitMask (06:31)
|
Review: Contact Delegate, Bit Masks (07:47)
|
Particles (07:06)
|
Add Explosion Effect (05:34)
|
Creating SKEmitterNodes Manually (06:45)
|
Shot Limiting (07:01)
|
Challenge: Alternate Shot Limiting (01:57)
|
Challenge: Alternate Shot Limiting: Solution (05:03)
|
Add Shields (06:54)
|
Review - Add Shields (06:51)
|
Add Life Bar (06:12)
|
Challenge: Add Explosion on Bounce (00:27)
|
Challenge: Add Explosion on Bounce Solution (06:16)
|
Game Over and New Game (05:26)
|
Review: Game Reset Functionality (05:19)
|
Add Scoring (04:51)
|
Free art resources: OpenGameArt.org (02:35)
|
Editing Sounds with Audacity (05:38)
|
Converting Sounds to CAF Format (04:02)
|
Space Cannon - Adding Sounds (08:56)
|
Space Cannon - Add Menu (06:22)
|
Space Cannon - Make Menu Functional (06:08)
|
Review: locationInNode (03:20)
|
Space Cannon - Fix Delay (03:50)
|
Space Cannon - Add Scores to Menu (07:38)
|
Review: Adding Scores to Menus (04:55)
|
A Look at NSUserDefaults (04:37)
|
Space Cannon - Save Scores Using NSUserDefaults (05:32)
|
Space Cannon - Bug Fixes (10:21)
|
Space Cannon - Increase Halo Spawn Speed (05:02)
|
Space Cannon - Create Particle File for Trail Effect (03:01)
|
Space Cannon - Add Trail Emitter Node To Balls (04:33)
|
Space Cannon - Adjust Ball Trails With New Ball Class (07:51)
|
Adjust Ball Trails With New Ball Class.mov (07:51)
|
Review: Action Speed and Particle Trail Effect (08:16)
|
Space Cannon - Set Bounce Limit (03:27)
|
Space Cannon - Add Point Multiplier Halo (06:03)
|
Space Cannon - Add Point Multiplier (07:16)
|
Challenge: Add Bomb Power Up (02:37)
|
Challenge: Add Bomb Power Up Solution Part 1 (06:42)
|
Challenge: Add Bomb Power Up Solution Part 2 (07:17)
|
Space Cannon - Create Pool for Shield Nodes (07:30)
|
Space Cannon - Spawn Shield Power Ups (07:29)
|
Space Cannon - Make Shield Power Ups Collectable (06:17)
|
Challenge: Multi Shot Power Up (01:08)
|
Challenge: Multi Shot Power Up Solution Part 1 (04:28)
|
Challenge: Multi Shot Power Up Solution Part 2 (08:02)
|
Challenge: Multi Shot Power Up Solution Part 3 (06:59)
|
Challenge: Multi Shot Power Up Solution Part 4 (09:35)
|
Space Cannon - Add Show and Hide Methods to Menu Class (06:32)
|
Space Cannon - Animate the Menu's Title (06:15)
|
Space Cannon - Animate Score Board (05:32)
|
Space Cannon - Complete Menu Animations (04:15)
|
Space Cannon - Add Pause and Resume Buttons (04:43)
|
Space Cannon - Hook Up Pause Functionality (06:32)
|
Space Cannon - Pause When Quitting Or When A Notification Is Received (04:57)
|
Space Cannon - Add Music (05:08)
|
Challenge: Add Music On Off Button (01:31)
|
Challenge: Add Music On Off Button Solution Part 1 (04:13)
|
Challenge: Add Music On Off Button Solution Part 2 (05:49)
|
App Icon Template (04:55)
|
Complete Space Cannon (04:50)
|
Introduction to Brick Breaker Assignment (06:01)
|
Brick Breaker Assignment Requirements
|
Setup (02:12)
|
Add Paddle and Getting it Moving (05:02)
|
Limit Paddle Movement (04:36)
|
Add Ball (06:56)
|
Setup Category Bit Mask (05:17)
|
Setup Contact between Ball and Paddle (07:33)
|
Complete Contact between Ball and Paddle (08:55)
|
Fix Anti Gravity Ball (01:28)
|
Add Bricks (08:47)
|
Remove Bricks When Hit by a Ball (04:42)
|
Create Class for Brick (09:32)
|
Setup Blue Brick Behaviour (05:07)
|
Create Load Level Method And Array For Level (04:12)
|
Load Level (06:17)
|
Setup Ball Release Functionality (05:38)
|
Add Grey Brick Type (05:38)
|
Add Extra Levels (03:40)
|
Add Method to Check if Level Is Complete (03:08)
|
Load Next Level and Reset Ball (06:22)
|
Requred Touch Began Event to Release Ball (03:54)
|
Add a Hud Bar (05:20)
|
Add a Lives Property (03:23)
|
Display Lives (05:56)
|
Lose Lives and Reset Game (07:45)
|
Add Level Display Label (03:10)
|
Setup Property For Current Level Number (06:32)
|
Create Particle File (03:10)
|
Add Particle Effect When Bricks Are Removed (05:24)
|
Create Menu Class (07:43)
|
Add Text to Menu (04:00)
|
Implement Hide and Show Methods on Menu (04:20)
|
Make Menu Functional (07:11)
|
Update Colors (03:25)
|
Add Sounds (09:38)
|
Restrict Paddle Movement When Positioning Ball (03:36)
|
Create Yellow Brick Type (03:12)
|
Spawn Extra Ball (08:54)
|
Setup Project (07:45)
|
Source Control With SourceTree (03:58)
|
Batch File Rename (02:01)
|
Planes Atlas File (07:00)
|
Add Plane Class (05:03)
|
Add PlanesAnimation plist file (03:02)
|
Method to Create Animation Action From Array (06:15)
|
Get Plane Animating (07:32)
|
Challenge: Animation (01:30)
|
Challenge: Animation Solution (10:44)
|
Create EngineRunning Property (07:54)
|
Review: Animations (07:13)
|
Create Particle file (04:28)
|
Add Puff Trail To Plane (06:27)
|
Configure Gravity (05:23)
|
Add basic physics (06:05)
|
Set Target Node For Puff Trail (02:04)
|
Create Scrolling Node Class (05:58)
|
Create TPScrollingLayer (05:32)
|
TPScrollingLayer - Implement layoutTiles method (04:13)
|
Implement Tile Scrolling (06:40)
|
Review: Scrolling (05:18)
|
Scrolling In Both Directions (04:03)
|
Create Background Layer (07:55)
|
Getting the time elapsed between frames (05:30)
|
Challenge: Left & Right Scrolling (01:49)
|
Challenge: Left & Right Scrolling Solution Part 1 (04:57)
|
Challenge: Left & Right Scrolling Solution Part 2 (07:21)
|
Challenge: Left & Right Scrolling Solution Part 3 (06:52)
|
Challenge: Left & Right Scrolling Solution Part 4 (05:43)
|
Set Background Colour (04:25)
|
Add Foreground layer (06:44)
|
SKPhysics Body Path Generator (06:03)
|
Visualising path based physics bodies (03:59)
|
Create path based physics body for plane (04:13)
|
Setup Category Bit Masks (05:36)
|
Setup didBeginContact method (03:03)
|
Implement Collide Method and Get Plane to Crash (06:44)
|
Reset game (06:19)
|
Tweaks on game reset (04:58)
|
Add Rotation Effect (05:26)
|
Photoshop Tips: Vectors, Smart Object, Export Layers To Files (08:21)
|
Create TPObstacleLayer Class (04:53)
|
Implement Update Method (06:07)
|
Add createObjectForKey Method (05:18)
|
Add Physics Bodies To Mountains (04:07)
|
Create Obstacle Set (05:58)
|
Randomize Mountain Obstacle Heights (06:58)
|
Recycle Mountain Nodes (07:20)
|
Add reset Method (04:50)
|
Add Obstacles To Game (06:17)
|
ObstacleLayer Pseudo Pooling Check and Review (09:40)
|
Source Tree Commits. Context, Discard and Stage by Hunk or Line, Amend Commit (04:15)
|
Set Maximum Altitude for Plane (03:24)
|
Flap Challenge - Intro (01:03)
|
Flap Challenge - Solution (08:27)
|
Create Collectable Star Object (06:40)
|
Add collectables to obstacle layer (08:19)
|
Review of positioning collectables (05:14)
|
Get plane to remove the stars it touches (04:23)
|
Create class for collectables (08:12)
|
Setup creation of collectables to use new class (04:42)
|
Hook up scene as collectable delegate (04:56)
|
Review of Collectable Setup (07:31)
|
Fix Warnings (03:38)
|
Create Class for Bitmap Font (05:31)
|
Implement Bitmap Font Properties (04:30)
|
Start Layout of Bitmap Font Letters (06:39)
|
Complete letter layout (07:20)
|
Center Align Text (05:57)
|
Review of Bitmap Font Class (06:01)
|
Add instance of BitmapFontLabel to display score (08:05)
|
Create Plist For Tileset Graphics (06:19)
|
Setup Singleton (05:06)
|
Start Loading Tileset Plist File (05:57)
|
Complete Loading of Property List (06:46)
|
Randomize Tileset (04:11)
|
Return Texture for Key from Current Tileset (02:23)
|
Use Tileset Texture Provider to Randomize Mountain Textures (07:30)
|
Update Ground Nodes to Use Tileset Texture (03:02)
|
Review of Tileset System (08:15)
|
Update Background Image to Fill To Bottom (05:09)
|
Obstacle Challenge - Intro (02:21)
|
Obstacle Challenge - Setup ChallengeProvider Class (06:42)
|
Obstacle Challenge - Start Implementing Challenge Provider (06:17)
|
Obstacle Challenge - Start Implementing Challenges (06:15)
|
Obstacle Challenge - Using An Image Editor To Design Challenges (09:56)
|
Obstacle Challenge - Load Challenges in Obstacle Layer (08:43)
|
Obstacle Challenge Bonus - Mixing up the Textures (08:46)
|
Create Button Class (03:24)
|
Set Initial Properties on Button (04:27)
|
Set Button Scale Based on Touch Events (05:53)
|
Test Button and Fix Scaling Issue (07:27)
|
Target Action Pattern (06:43)
|
Test Button Press Event (04:01)
|
Source Tree - Discard Changes to TPGameScene (02:56)
|
Review of Button Class (07:14)
|
Import Graphics For Game Over Menu (04:43)
|
Setup Properties on Game Over Menu (04:46)
|
Center Rect Property (08:20)
|
Test Menu Panel Display (04:25)
|
Setup Title Nodes on Game Over Menu (08:56)
|
Add Display of Medal (08:30)
|
Add Text Alignment to TPBitmapFontLabel (07:23)
|
Add Text Labels to Menu (07:58)
|
Add Game Over Text and Play Button to Menu (06:31)
|
Animate Game Over Text (05:02)
|
Animate Menu Panel (05:05)
|
Space Cannon - Crash on Quit Bug Fix (03:00)
|
Complete Show Animation For Game Over Menu (04:28)
|
Setup Game State in the Game Scene (08:50)
|
Trigger Game Over State (06:08)
|
Start New Game On Button Press (07:56)
|
Display Scores and Medal on Game Over Menu (09:53)
|
Use NSUserDefaults to Save Best Score (07:28)
|
Add Fade To Black Transition Between Games (05:16)
|
Add Bump Effect On Plane Crash (04:23)
|
Setup TPGetReadyMenu Class (04:22)
|
Add Get Ready Text (05:47)
|
Add Tap Icons to Get Ready Screen (08:18)
|
Hide Get Ready Menu When Game Starts (07:23)
|
Weather Challenge Intro - Weather Effects in Tappy Plane (02:06)
|
Weather Challenge - Create Snow Effect (04:47)
|
Weather Challenge - Create Rain Effect (03:11)
|
Weather Challenge - Create Weather Layer Class (08:33)
|
Weather Challenge - Setup Weather Conditions Property (04:23)
|
Weather Challenge - Setup Constants For Tileset Name (04:28)
|
Weather Challenge - Display Weather Layer (04:28)
|
Weather Challenge - Complete Weather Challenge (04:59)
|
Tint Plane Red When it Crashes (05:21)
|
Freesound.org for Great Sound Assets (03:36)
|
Creating Looping Sounds with Audacity (05:21)
|
Refresh on Using afconvert to Prepare Audio (04:12)
|
Sound Manager For More Advanced Audio (06:29)
|
Add Crunch Sound on Plane Crash (05:46)
|
Add Star Collection Sound (05:00)
|
Add Button Sound (06:16)
|
Add Engine Sound to Plane (08:15)
|
Add Rain Sound (05:20)
|
We've Completed Tappy Plane (03:23)
|
Making Levels with Tiled (02:29)
|
Resizing Tiles (05:08)
|
Create Tileset Image to Use With Tiled (07:11)
|
Creating a Tiled Map (06:27)
|
Complete Level Using Tiled (07:17)
|
Setup Alien Runner Project (05:30)
|
Import JSTileMap (03:37)
|
Load Tile Map (04:15)
|
Setup Camera Node (06:34)
|
Scroll Map As Camera Moves (03:29)
|
Add Clamping to Camera (06:40)
|
Setup Class for Player (05:34)
|
Add Object Layer to Tiled Level (04:56)
|
Position Player With Marker From Map Object Layer (05:55)
|
Make Camera Follow Player (05:51)
|
Add Velocity to Player and Apply Gravity (07:23)
|
Discussion on Using Time Delta for Updates (08:11)
|
Setup Target Position on Player (03:14)
|
Define Collision Rectangle for Player (05:24)
|
Show Collision Rectangle Visually (04:55)
|
Discussion of Algorithm for World Collision (07:10)
|
Declare Method for World Collision (07:07)
|
Loop Through Coordinates for Tiles to Examine (05:34)
|
Get GID for Tile (06:38)
|
Calculate Intersection Between Player And Tile (08:46)
|
Work Out Which Way To Move the Player (06:35)
|
Complete Collision With World (07:14)
|
Test Collide Method (03:16)
|
Collide Method Review Part 1 (07:40)
|
Collide Method Review Part 2 (04:43)
|
Test Left and Right Movement (04:00)
|
Fix Bug in Collision Algorithm (03:18)
|
Accelerate Player to the Right (06:47)
|
Give Player Jump Ability (06:12)
|
Get Player Jumping (05:59)
|
Setup Properties For Flipping Gravity (04:48)
|
Apply Changes to Gravity (06:22)
|
Test Flipping of Gravity (03:32)
|
Tweak Map and Player Movement (06:25)
|
Frame Size With Atlas Sprites (05:01)
|
Fix Collision Rectangle Dimensions (06:36)
|
Flip Alien Image When Gravity Flipped (05:46)
|
Add Animation to Player (05:04)
|
Add State And Change Texture For Player (06:16)
|
Reset Game When Falling Too Far (05:03)
|
Update Collide Method (04:24)
|
Collide Player With Spikes (04:08)
|
Make Player Bounce Of Screen When Hitting Spikes (06:46)
|
Setup Scene Class for Main Menu (04:55)
|
Add Title And Alien to Menu (04:23)
|
Add Label For Level and Import Button Class (04:22)
|
Add Play And Level Buttons (05:31)
|
Switch Between Scenes (03:22)
|
Create Level Selection Scene (05:41)
|
Add Disabled Property to Button (04:45)
|
Complete Setup of Disabled Property on Button (02:24)
|
Add Level Selection Buttons (06:10)
|
Position Level Selection Buttons (03:41)
|
Respond to Level Selection Buttons (05:55)
|
Create Constants File (04:50)
|
Setup Defaults plist for NSUserDefaults (05:38)
|
Save Selected Level to NSUserDefaults (06:07)
|
Add Constant for Highest Level (03:02)
|
Unlock New Levels at Game Over (06:44)
|
Add Ability To Complete Level (04:53)
|
Add Different Modes to Main Menu (07:24)
|
Add Extra Levels (06:40)
|
Fix Graphical Glitches Between Tiles (05:21)
|
Add Parallax Scrolling Effect (06:03)
|
Sound Discussion (04:08)
|
Challenge: Player Movement - Intro (02:44)
|
Challenge: Player Movement - Double Jump (03:18)
|
Challenge: Player Movement - Left and Right Movement (06:38)
|
Challenge: Player Movement - Hook Up Touch Events (07:44)
|
Challenge: Player Movement - Set Sprite Direction and Animation (04:23)
|
Course Complete!! (02:39)
|