Throughout this course we are going to be developing an iOS game in Swift! We will be going to cover a lot to get you up and running as a game developer for iOS, covering everything from getting started with Xcode to beta testing to actually submitting your app the App Store.
We will be developing a side-scrolling game in which the user will play as a ninja that can jump, slide, and slash through obstacles. The game will keep track of points and will allow for saving your high score to game center to compare with friends. Assets for animations and the in-game scenery are all included.
The main timeline of the course includes going through some Programming Basics, Developing the Game, Implementing Game Center, Beta Testing, and finally Submitting Your App to the App Store. The course builds on programming concepts introduced at the beginning of the course to help you see how and where they are applied in a real-world setting.
It should take approximately ten to twenty hours to complete depending on your level of experience and depth of study in the concepts introduced.
You should take this course if you are relatively new to programming and want to learn through the experience of developing an iPhone game!
Creating a basic program that prints out "Hello, world".
Introduction to variables.
Introduction to loops.
Introduction to arrays.
Introduction to classes.
Explanation of SKNode and adding the background to the scene.
Making the ground repeat back so that it provides the illusion of moving infinitely.
Implementing a basic initializer for our CCHero class and adding the hero to the scene.
Introduction to animation and implementing the hero run animation.
Implementing the hero slide animation.
Intro to gesture recognizers and adding basic recognizers to the scene.
Implementing hero jump functionality.
Implementing the hero attack animation.
Intro to the generator class and adding the generator to our scene.
Intro to timers and adding a timer to the generator class.
Rearranging some of the GameScene functions for better readability.
Generation of the first obstacles.
Synchronizing the movement of the ground and obstacles and implementing a basic attack obstacle.
Implementing the slide obstacle.
Generating obstacles randomly between the jump, slide, and attack varieties.
Adding textures to the obstacles.
Setting up physics bodies on the hero and three obstacle types.
Implementing the physics world contact delegate and calling the didBeginContact function.
Detecting a hero and attack obstacle collision and removing attack obstacle if hero is currently attacking.
Animating the hero falling over and applying physics to cause the hero to fall.
Removing movement on obstacles and ground and stopping generation of new obstacles.
Implementing the restart function, presenting a fresh scene to the view.
Adding the "Tap to Start" and "Game Over" labels.
Implementing and running the blink animation on the "Tap to Start" and "Game Over" labels.
Implementing the class that displays the points and high score.
Tracking the points as the hero passes obstacles.
Removing obstacles from the generator node when the obstacles go off screen in order to save computational resources.
Saving the users high score using NSUserDefaults.
Creating a basic MenuScene with title and background.
Implementing the CCButton class for creating buttons with rounded corners.
Getting the start button to present a new GameScene and implementing basic print functionality for the Game Center button.
Adding a dummy hero next to the game title for looks.
Authenticating the user with game center upon opening the app.
Presenting a view controller to display the current game leaderboard.
Adding your App to iTunes connect and adding a leaderboard to be used for score saving.
Saving the users high score the game center leaderboard.
Adding an icon to your app in images.xcassets
Archiving and submitting a build of your app to iTunes connect.
Hi there! My name is Michael and I run a channel called CrashCourseCode on YouTube for iOS-related tutorials. I've been developing for the last four years, the last two of which iOS has been my main focus. I think tech is pretty much the coolest thing since sliced bread and I really am looking forward to seeing how technology shapes our lives over the coming years.