Video Game Programming ITP 380 (4 Units) Fall 2014

Similar documents
Video Game Programming ITP 380 (4 Units)

Introduction to Java Programming ITP 109 (2 Units) Fall 2015

Introduction to Information Technology ITP 101x (4 Units)

Interactive Web Development ITP 301 (4 Units)

3D Modeling, Animation, Compositing, and Special Effects ITP 215x (2 Units)

English 230: Shakespeare and His Time

Mobile Application Development ITP 342 (3 Units)

3D Modeling, Animation, and Special Effects ITP 215x (2 Units)

Mobile Application Technologies ITP 140 (2 Units)

Database Web Development ITP 300 (3 Units)

Introduction to Cloud Technologies ITP 111x (2 Units)

Mobile App Design ITP 340x (3 Units)

DESIGN FOR USER EXPERIENCE (ITP 310)

BUAD 310 Applied Business Statistics. Syllabus Fall 2013

ITP 300: Database Web Development. Database Web Development (Monday section) Fall 2012 Course Units

GESM 160 Seminar in Quantitative Reasoning Wireless Computing Technologies for Medicine with Legal and Ethical Implications.

Mobile App Project ITP 442x (4 Units)

Introduction to Programming System Design. CSCI 455x (4 Units)

Mobile Application Development ITP 342 (3 Units)

ISE 544: Management of Engineering Teams Summer 2014 Mon, Wed 6:00-9:10pm Location: RTH 105 and

CSCI-599 DATA MINING AND STATISTICAL INFERENCE

IML 400 Creative Coding for the Web

ITS1100: Train the Trainer

Sociology 302: Contemporary Social Problems

Fundamentals of Computer Programming CS 101 (3 Units)

ECON 351: Microeconomics for Business

Geza Bottlik ISE310L Facilities and Logistics Fall /09/13 Instructor:

Sociology 314: Analyzing Social Statistics Spring 2014 Class Meetings: Tues. & Thurs. 12:30-1:50 PM Classroom: KAP 305

SAMPLE ONLY. COMM 304 Interpersonal Communication Spring 2015 Tu/Th 11:00 12:20 ANN L101

CS 1361-D10: Computer Science I

MAT 1500: College Algebra for the Social and Management Sciences General Syllabus

IOM431:Foundations of Digital Business Innovation

MATH 1900, ANALYTIC GEOMETRY AND CALCULUS II SYLLABUS

TA contact information, office hours & locations will be posted in the Course Contacts area of Blackboard by end of first week.

STAT 1403 College Algebra Dr. Myron Rigsby Fall 2013 Section 0V2 crn 457 MWF 9:00 am

CS 301 Course Information

College Algebra MATH 1111/11

BADM323: Information Systems for Business Professionals SU2016 Online Course

Seattle Central Community College BITCA Division. Syllabus MIC Online

The University of Akron Department of Mathematics. 3450: COLLEGE ALGEBRA 4 credits Spring 2015

How To Pass Physics 161

MARSHALL SCHOOL OF BUSINESS University of Southern California. FBE 555: Investment Analysis and Portfolio Management

Introduction to Psychology Psych 100 Online Syllabus Fall 2014

Multiplayer Game Programming ITP 484x (4 Units)

Building the High Tech Startup ITP 499x (4 Units)

Prerequisites: C grade or above in ACG 2021

Course Syllabus OPRE/MIS Supply Chain Software The University of Texas at Dallas

MCS5813 Cryptography Spring and select CRN 3850

MAC2233, Business Calculus Reference # , RM 2216 TR 9:50AM 11:05AM

CE 460 Course Syllabus

College Algebra Online Course Syllabus

MAT 117: College Algebra Fall 2013 Course Syllabus

Course Overview. CSCI 480 Computer Graphics Lecture 1. Administrative Issues Modeling Animation Rendering OpenGL Programming [Angel Ch.

CS 378: Computer Game Technology

PTE505: Inverse Modeling for Subsurface Flow Data Integration (3 Units)

Social Games Workshop ITP499 (3 Units) Spring 2010 (2010-1)

CE 460 Course Syllabus

1. COURSE DESCRIPTION

ECON-2105, Principles of Macroeconomics, 1rst Half Term, Spring/2016

BIOL 2301 Anatomy & Physiology I Lecture COURSE SYLLABUS

MGMT 360 (Hybrid) Organizational Theory

Students will be notified by the instructor of any changes in course requirements or policies.

PSYCH 3510: Introduction to Clinical Psychology Fall 2013 MWF 2:00pm-2:50pm Geology 108

COURSE SYLLABUS INTRODUCTION TO INTERNATIONAL BUSINESS MGT ONLINE FALL 2014

COMP-557: Fundamentals of Computer Graphics McGill University, Fall 2010


GEOG 5200S Elements of Cartography : Serving the Community Through Cartography Spring 2015

The objectives of the course are to provide students with a solid foundation in all aspects of internet marketing. Specifically my goals are:

How To Pass The Cis 50 Online Course

MATH 1310, SECTION 17086

MATH 101 E.S. COLLEGE ALGEBRA FALL 2011 SYLLABUS

MATH 1351 (3:3:0) Fundamentals of Mathematics II (Online Course) MATHEMATICS DEPARTMENT. Division of Arts & Sciences

Tentative: Subject to Change CHEM 205Lxg Chemical Forensics: the Science, and its Impact. Course Overview:

Syllabus for PM538 Introduction of Biomedical Informatics and the Applications

BBA SMALL BUSINESS MANAGEMENT Spring 2016

Course information: Copy and paste current course information from Class Search/Course Catalog.

Multimedia & the World Wide Web

Introduction to Computer Graphics. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012

Geza Bottlik ISE310L Facilities and Logistics Spring /21/2009 Pre-Requisites: Test Schedule

The University of Texas at Austin School of Social Work SOCIAL WORK STATISTICS

CASPER COLLEGE COURSE SYLLABUS HOSP 1520-Intro to Hospitality Management-N1 Fall 2015

CSG 1205 Microsoft PowerPoint - Web

Introduction to Computer Forensics ITP 499 (3 Units)

Business Ethics (BUS 105) Cycle II, Spring, 2012 Semester

Digital Design Graphics Technology DDGT 110 Drafting Fundamentals ENGI 122 Intro to Engineering Fall 2015 Course Syllabus

SYLLABUS MAC 1105 COLLEGE ALGEBRA Spring 2011 Tuesday & Thursday 12:30 p.m. 1:45 p.m.

Stephen F. Austin State University DeWitt School of Nursing INTRODUCTION TO NURSING SYLLABUS Course Number: NUR 305 Section Number: 003 Fall 2010

Kent State University, College of Business Administration. Department of Accounting, Fall 2014 M & W * * * REVIZED 8/15/2014 * * * Instructor:

Math : Applied Business Calculus

Syllabus: IST451. Division of Business and Engineering. Penn State Altoona

Turtle Mountain Community College

Course Syllabus. Tuesday 4 pm to 5 pm & Thursday 4 to 5 pm

FIN 430: Financial Modeling (Spring 2016) Professor Russell Jame Course Overview and Objectives Course Prerequisites Required Materials

SYLLABUS MIS 6713: Delivering Business Value through Information Systems Fall 2014

Security and Computer Forensics ITP 477 (4 Units)

Transcription:

Video Game Programming ITP 380 (4 Units) Fall 2014 Objective This course provides students with an in-depth introduction to technologies and techniques used in the game industry today. At semester s end, students will have: 1. Implemented a variety of core game systems (incl. rendering, input, sound, and collision/physics) 2. Developed a strong understanding of essential mathematics for games 3. Written multiple-fully functional games with Unreal 4 and C++, both individually and as a team. 4. Learned the critical thinking required to continue further study in the field Concepts 3D mathematics for games. Working with Unreal Engine 4. Intermediate C++. 3D graphics. Collision detection. Events and scripting. Introduction to animation and A.I. Implementing game play. Getting a job in the game industry. Prerequisites CSCI 104 or ITP 365x Instructor Sanjay Madhav Contact Any questions related to the course and material should be posted on Piazza. Email: madhav@usc.edu (Only for non-course questions or prospective students). Office Hours Monday Thursday 2:30 4:30PM in OHE 530H Lab Assistant Zachary Metcalf (contact via Piazza) Lecture Monday 5 6:50PM in KAP 267 Lab Wednesday 5 6:50PM in KAP 267 Course Structure Every week, we will cover a specific game programming concept in lecture. For the first few weeks of the semester, students will work on an individual game assignment in Unreal 4. After this individual game assignment is complete, students will break into groups of three and work on a larger game project. Further details regarding this project are provided on the next page. The individual assignments must be completely individually. And of course, the group project will be completed with a group. Textbooks Grading There is a midterm exam, but no final exam. There will also periodically be pop quizzes. These quizzes will generally be 15-20 minutes in length, and can occur during any class session. There are a total of six quizzes, with the lowest quiz grade being dropped. Required: Game Programming Algorithms and Techniques. Sanjay Madhav. ISBN- 10: 0321940156. The course is graded with the following weights: Individual Game Assignment 20% Group Project 45% Midterm Exam 25% Quizzes (6 total, lowest grade dropped) 10% TOTAL POSSIBLE 100% 1

Grading Scale Letter grades will be assigned according to the following scale: 93%+ A 90-92% A- 87-89% B+ 83-86% B 80-82% B- 77-79% C+ 73-76% C 70-72% C- 69 D+ 67-68 D 66 D- 65 and below F Half percentage points will be rounded up to the next whole percentage. So for instance, 89.5% is an A-, but 89.4% is a B+. Group Project There is no curving. Students will receive the grade they earn. Extra credit is generally not offered. Starting in Week 6, students will break into groups of 3-4 to work on a larger 3D game of their own design. Before commencing work on their project, students must have their proposed game approved by the instructor. Working on a project which is not approved is not allowed. The primary learning objectives of this project are two-fold: first, we expect you to apply and expand your knowledge of gameplay programming in Unreal 4. By the end of this project, every team member should be confident and knowledgeable regarding a wide range of aspects of how gameplay code works in Unreal 4. Second, as this is a fairly lengthy project (~11 weeks in length), the other primary learning objective is to learn the process of how to manage group projects of longer duration. Specifically, we will utilize Agile/Scrum and the online task board Trello. This will give students real world game development experience. Policies Must greater detail on how the project is graded, as well as the weekly schedule is provided in the lab guide available on Blackboard. Make-up policy for exams: To make up for a missed exam, the student must provide a satisfactory reason (as determined by the instructor) along with proper documentation. Make-ups are only allowed under extraordinary circumstances. Late Assignments: Late individual games will be accepted with a 15% penalty per day late, up to a maximum of two days late (for -30%). An individual game more than two days late will be given a 0. The final project will not be accepted late. It will be graded based on the submission at the required time of presentation. 2

Software Students will be able to setup their own PC and/or Mac computers to use Unreal 4. This will require purchasing an Unreal 4 license at least for a single month (it is $20/month, but you are allowed to purchase one month and then cancel once you have all of the source code). Academic Integrity Plagiarism Students with Disabilities Emergency Preparedness ITP also offers Open Lab use for all students enrolled in ITP classes. These open labs are held beginning the second week of classes through the last week of classes. Hours are listed at: http://itp.usc.edu/labs/. USC seeks to maintain an optimal learning environment. General principles of academic honesty include the concept of respect for the intellectual property of others, the expectation that individual work will be submitted unless otherwise allowed by an instructor, and the obligations both to protect one s own academic work from misuse by others as well as to avoid using another s work as one s own. All students are expected to understand and abide by these principles. SCampus, the Student Guidebook, (www.usc.edu/scampus or http://scampus.usc.edu) contains the University Student Conduct Code (see University Governance, Section 11.00), while the recommended sanctions are located in Appendix A. In this class, all homework submissions will be compared with current, previous, and future students submissions using MOSS, which is a code plagiarism identification program. If your code significantly matches another student s submission, you will be reported to SJACS with the recommended penalty of an F in the course. It is okay to discuss solutions to specific problems with other students, but it is not okay to look through another student s code. It does not matter if this code is online or from a student you know, it is cheating. Do not share your code with anyone else in this or a future section of the course, as allowing someone else to copy your code carries the same penalty as you copying the code yourself. Any student requesting academic accommodations based on a disability is required to register with Disability Services and Programs (DSP) each semester. A letter of verification for approved accommodations can be obtained from DSP. Please be sure the letter is delivered to me (or to TA) as early in the semester as possible. DSP is located in STU 301 and is open 8:30 a.m. 5:00 p.m., Monday through Friday. Website and contact information for DSP: http://sait.usc.edu/academicsupport/centerprograms/dsp/home_index.html, (213) 740-0776 (Phone), (213) 740-6948 (TDD only), (213) 740-8216 (FAX) ability@usc.edu. In case of a declared emergency if travel to campus is not feasible, USC executive leadership will announce an electronic way for instructors to teach students in their residence halls or homes using a combination of Blackboard, teleconferencing, and other technologies. Please activate your course in Blackboard with access to the course syllabus. Whether or not you use Blackboard regularly, these preparations will be crucial in an emergency. USC's Blackboard learning management system and support information is available at blackboard.usc.edu. 3

Course Outline Week 1 Course Intro, Game Programming Basics, C++ Crash Course (8/25 and 8/27) - Course Introduction - The Game Loop - Game Objects: What they are and different representations - Intermediate C++ Concepts Reading: Madhav: Ch. 1 Homework: Setup Unreal 4; Follow Tutorial Series (not graded, but essential) Week 2 Vector Math and Games (9/3) - Vectors - Applications - Why vector math is valuable Reading: Madhav: Ch. 3 (pp. 41-58) Lab: Begin work on UnrealShmup (Individual) Week 3 Rendering, Part 1 (9/8 and 9/10) - Color systems/formats - Rendering Pipeline - Matrices, Coordinate Spaces and Projections - Painter's Algorithm and Z-Buffer Reading: Madhav: Ch. 3 (pp. 58-end), Ch. 4 (pp. 65-75) Lab: Continue work on UnrealShmup (Individual) Week 4 Quaternions and Input/Sound (9/15 and 9/17) - Euler Rotations and Quaternions - Human Input Devices and Event-Based Input Systems - Sound basics Reading: Madhav: Ch. 4 (pp. 88-91), Ch. 5, Ch. 6 Lab: Continue work on UnrealShmup (Individual) Week 5 Artificial Intelligence (9/22 and 9/24) - AI state machines - A* and basic path finding - Navigation Meshes Reading: Madhav: Ch. 9 Lab: Finish work on UnrealShmup (Individual) UnrealShmup DUE Sunday, 9/28 @ 11:59PM Week 6 Collision Detection and Game Physics, Part 1 (9/29 and 10/1) - Rays and Planes - Raycasting - Types of Collision Geometry - Numeric Integration Reading: Madhav: Ch. 7 (pp. 127-134 and pp. 148-153) Lab: Group Project: Form groups; Create product backlog; Begin Sprint 1 Week 7 Midterm Exam on Monday, 10/6 Lab (10/8): Group Project: Continue Sprint 1 4

Week 8 Camera Systems (10/13 and 10/15) - Field of view - Basic camera styles - Follow cameras Reading: Madhav: Ch. 8 Lab: Group Project: Continue Sprint 1 Week 9 Rendering, Part 2 (10/20 and 10/22) - Lighting, Shading, and Texture Mapping - Advanced Mapping, Shadows, Particle Effects - Vertex and Pixel Shaders overview Reading: Madhav: Ch. 4 (pp. 76-88) Lab: Group Project: Continue Sprint 1 Week 10 Collision Detection and Game Physics, Part 2 (10/27 and 10/29) - Sphere/Sphere (swept) and Sphere/Plane Collision - AABB Collision Reading: Madhav: Ch. 7 (pp. 134-148) Lab: Group Project: Sprint 1 Review; Begin Sprint 2 Week 11 User Interface Systems (11/3 and 11/5) - Event-based UI systems - Implementing a HUD Reading: Madhav: Ch. 10 Lab: Group Project: Continue Sprint 2 Week 12 Event-Based Systems and Scripting Languages (11/10 and 11/12) - Closer look at event-based systems - Scripting Languages - Case Study: UI Mods in World of Warcraft Reading: Madhav: Ch. 11 (skip Implementing a Scripting Language ) Lab: Group Project: Continue Sprint 2 Week 13 Animation and Assorted Gameplay (11/17 and 11/19) - Evolution of Animation systems (2D to key framed to skinning) - Skeletons and Poses - Gameplay Systems for different genres Reading: None Lab: Group Project: E3 (Sprint 2 Review); Begin Sprint 3 Week 14 Basic Networking (11/24) - Separating players - Packet writer and Game services Reading: Madhav: Ch. 12 Lab: No lab due to Thanksgiving Week 15 Conclusion (12/1 and 12/3) - Where to go from here? - Engines, mobile game, multiplayer games, etc. - How to get into the game industry Lab: Group Project: Continue Sprint 3 Finals Week Final Group Project Presentations on Wednesday, 12/10 @ 4:30PM 5