iOS & tvOS Game Development

IGME-590

Syllabus

Instructor Information

Prof. Tony Jefferson

tony@mail.rit.edu
Office Location: GOL-2139 (in IGM Main Office)
Office Hours: Tuesday 12:30PM-1:30PM & Wednesday 1PM-4PM

Teaching Assistant: Aaron Sky

Meeting times and Location

Section 01: TR 9:30AM-10:45AM in room GOL-2025

Overview

Hopefully you are excited about learning the material in this class as I am excited about teaching it. Read below for details about this course.

Course Description (from course catalog)

In this course students will design and build 2D/3D games and media rich mobile applications for the iOS and tvOS platforms. Devices we will be targeting include iPod Touch, iPhone, iPad, Apple Watch, and Apple TV. Topics covered include the mobile game application design process, best practices for each device family, the Xcode IDE, the Swift programming language, 2D and 3D iOS game frameworks, hardware controllers, and software design patterns.

Individual and group programming projects will be required. 3 Credits

Required Class Textbooks

There a two required textbooks for this class.

Title: Swift Programming: The Big Nerd Ranch Guide
Author: by Matthew Mathias & John Gallagher
Publisher: Big Nerd Ranch Guides; 1st edition (December 25, 2015)
ISBN-13: 978-0134398013
Amazon Link: http://www.amazon.com/Swift-Programming-Ranch-Guide-Guides/dp/0134398017

This should be in the bookstore by the time class starts - we'll be using this book immediately - so make arrangments to have it the first day of class. Alternatively, you can order it from Amazon, or purchace a Kindle version. Here's where you can buy the PDF version: https://www.informit.com/store/swift-programming-the-big-nerd-ranch-guide-9780134398013

Title: 2D iOS and tvOS Games by Tutorials: Beginning 2D iOS and tvOS Game Development with Swift 2
Author: Ray Wenderlich et al
Publisher: Razeware LLC; 1st edition (October 28, 2015)
ISBN-13: 978-1942878148
Amazon Link: http://www.amazon.com/iOS-tvOS-Games-Tutorials-Development/dp/1942878141

This book WILL NOT be in our campus bookstore - you'll have to make arrangments to buy this elsewhere. If you'd like an electronic copy of this book (recommended because you can often score a free ebook update from the publisher) you'll have to buy it from the publisher: http://www.raywenderlich.com/store/2d-ios-tvos-games-by-tutorials

Computer Accounts

You don't need an account to login in to the classroom Macs. 12 more IST Macs are available in the IST Open Lab GOL-2670.

All of these Macs are on "deep freeze" which means when you restart the machine every change you made or file you saved is wiped out. Always restart the machine (rather than logout) when you are done for the day. So bring a USB drive to class, or save your files to the cloud before you leave.

If you have a problem using any of the Macs, please bring it to my attention.

Software

Xcode 7.2, iOS Simulator, and Instruments. All are available for free for registered developers from developer.apple.com. You should have received an invite from me to join the Apple Developer Education program already.

Your text editor of choice to author HTML documents for project proposals

Your FTP client of choice to transfer files to gibson.

Your image editor of choice to optimize digital images for both the web and iOS apps.

iOS 9.2x - it runs on iPhone 4S+, iPad 2+, and iPod Touch 5th Gen or iPod Touch 6th Gen (the latest iteration)

Hardware

iOS Hardware

Many of you already have access to an iOS device. For the others we have a selection of iOS devices (iPad 2/iPad Mini/iPad Air) to loan out.

Those of you who already own an iOS device will need to send me the 32-digit UDID of the device to be able to install apps on the device. You can obtain this identifier this using either iTunes - see this tutorial - or by using Xcode (Window > Organizer ... and then choosing the Devices tab)

Once you have the device identifier, post it to the dropbox along with a short description (ex. Ima Student's iPhone 5S).

** Important - bring your iOS device and cable to class every day **

Mac Hardware

You have access to 2 labs with Macs (see above), but you may wish to install Xcode on your own computer. A newer Mac is required to run Xcode 7. If you install Xcode on your personal machine, you will be able to install iOS apps onto your device.

To do so, you will need to generate a digital certificate with your Mac, and then submit a "certificate signing request" (CSR) to the developer portal. This video tutorial demonstrates both of these tasks. After you take these steps, I will approve your certificate signing request, and I will update the provisioning profile with your information and post it to mycourses.

** Important - when creating your CSR, be sure to use the same email address that you are using with the developer portal. **

You will then download the certificate from the developer portal, and the provisioning file from mycourses. You can then install apps onto your iOS device from your home computer.

The process is a little annoying the first time, so please ask for help and I can walk you through it.

Course Goals and Outcomes

See course topics and outcomes page.

Attendance

Attendance is mandatory and you are expected to be on time. Lectures will start promptly at the beginning of class, and will be followed by an in-class assignment or exercise that you are expected to work on until the end of the meeting (i.e. no leaving early).

Classroom Behavior

You should not be talking to another student while the instructor is speaking. Doing so means that:

  • you cannot hear what the instructor is saying ...
  • neither can the person you are speaking to ...
  • nor can nearby students.

These are all bad things - so please respect this rule, and raise your hand if you have a question.

Keep your voice at a reasonable level:

Typically after the lecture you will be given time to work on an assignment. Quiet discussion and conversation is allowed and the volume needs to be kept at a low level so as to not disturb your classmates. If you are easily distracted by background noise, you may wish to bring headphones to class and wear them while working on assignments.

Excessively checking your email, playing games, surfing the web, or working on assignments during lectures can have negative impacts:

  • Performing more than one task at the same time is difficult. While you are paying attention to the computer, you are likely missing out on the content of the lecture.
  • You are also distracting neighboring students..
  • If your computer screen is visible to the hallway, your behavior is broadcast to a broader audience (students, faculty, administrators, visiting parents, ...) and reflects poorly, especially on you.

Violations of these classroom behavior policies will be dealt with through deductions in your attendance grade.

How to succeed in this class

iOS programming can be difficult for newcomers - the new Swift language is an improvement over Objective-C but it's only a year old so it still has its quirks. You may have to work harder than you are used to, especially at the beginning.

  • Get to class everyday, on time, and be ready to work. Lectures will start promptly at the beginning of class.
  • Buy the textbook, read it, and complete the Study Guides. Be sure to save the Study Guides after you get them back - future test questions will be pulled from them and the in-class assignments.
  • Take notes - either handwritten or electronically (Word Doc or Google Doc). It will help you to pay attention and remember the material.
  • Start assignments early! Don't wait until the night before.
  • On the projects, do portfolio quality work that you would be willing to show a potential employer.
  • Ask questions in class for clarification
  • See me outside of class if you are having trouble.
  • Install apps on your iOS hardware whenever you can! Don't just run everything in the iOS simulator. Why?
    1. Your app is "cooler" when it's on your phone, even if it's just a lame demo.
    2. Usability issues are often immediately apparent, especially when you let someone else try the app.
    3. Apps install faster and run faster on your device than they do on the iOS simulator.

Grading

  • Projects: 60%
  • Exams: 25%
  • HW: 10%
  • Attendance: 5%

Note: Grade A = superior work, not just satisfactory.
90+=A, 80+=B, 70+=C, 65+=D, 64.999-=F

Note: 1 absence 4/5 points, 2 absences 3/5 points, 3 absences 1.5/5 points, 4 absences 0 points. Each additional absence is 2.5% off of final average. Late is 1/2 absence. Facebooking or similar off-task activity during lectures or demos will count as a absence for the day.

Note: There are no make-ups and no extra credit.

Note: HW and ICE will NOT be accepted late without a valid excuse (procrastination, and missing the dropbox by 1 minute, are not valid excuses). If you feel you have legitimate excuse, please contact the professor outside of class either by email or during office hours. The lowest homework grade will be automatically dropped by mycourses, so you can get a zero on 1 assignment and not be penalized.

Note: Late projects are sometimes accepted.

Note: The MAXIMUM grade awarded on any late project is an 85%

Academic Honesty

ANY instance of academic dishonesty (cheating, collusion, or duplicate submission) will result in a failing grade in the course and will be reported to the chair of the student's home department. This policy includes all assignments, including seemingly trivial ones like homework. There will be no second chances given.

IGM Academic Integrity Policy (pdf)
RIT Academic Honesty Policy

Notices of Accommodation

If you have a "Notice of Accommodation", I should have received a copy electronically. Please discuss this with me after class or during office hours, so that I can make sure all of your accommodations are met.

Important RIT Deadlines

  • Last day of add/drop is the beginning of week 2.
  • Last day to withdraw with a grade of W is the end of week 12.
  • You have one semester to challenge your grade. After that, grades cannot be challenged (IGM department policy).

All of the information on this page is subject to change.