Video Game Programming ITP 380 (4 Units)

Similar documents
Interactive Web Development ITP 301 (4 Units)

Mobile Application Technologies ITP 140 (2 Units)

Introduction to Cloud Technologies ITP 111x (2 Units)

Mobile Application Development ITP 342 (3 Units)

Mobile App Design ITP 340x (3 Units)

Database Web Development ITP 300 (3 Units)

BUAD 310 Applied Business Statistics. Syllabus Fall 2013

Mobile App Project ITP 442x (4 Units)

DESIGN FOR USER EXPERIENCE (ITP 310)

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

ECON 351: Microeconomics for Business

CSCI-599 DATA MINING AND STATISTICAL INFERENCE

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

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


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

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

Fundamentals of Computer Programming CS 101 (3 Units)

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

Advanced Digital Forensics ITP 475 (4 Units)

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

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

Introduction to Information Technology ITP 101x (4 Units)

Introduction to Computer Forensics ITP 499 (3 Units)

IOM431:Foundations of Digital Business Innovation

UNIVERSITY OF SOUTHERN CALIFORNIA Marshall School of Business BUAD 425 Data Analysis for Decision Making (Fall 2013) Syllabus

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

Data Warehouses and Business Intelligence ITP 487 (3 Units) Fall Objective

PSY 2012 General Psychology Sections 4041 and 1H85

Security and Computer Forensics ITP 477 (4 Units)

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

Network Security ITP 457 (4 Units)

**SYLLABUS IS SUBJECT TO CHANGE**

CS 1361-D10: Computer Science I

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

ISE 515: Engineering Project Management

: Foundations of Game Programming

How To Pass The Cis 50 Online Course

Enterprise Information Systems ITP 320x (4 Units)

CS 300 Data Structures Syllabus - Fall 2014

Brazosport College Syllabus for PSYC 2301 General Psychology

This four (4) credit hour. Students will explore tools and techniques used penetrate, exploit and infiltrate data from computers and networks.

ITSY1342 Section 151 (I-Net) Information Technology Security

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

How To Pass Physics 161

CE 473 ENGINEERING LAW, FINANCE AND ETHICS COURSE SYLLABUS FALL 2013

CS 378: Computer Game Technology

Office: D Instructor: Vanessa Jones. Phone: (714) Office Hours: Monday & Wednesday 1:30pm-2:30pm. Jones Vanessa@sccollege.

Multiplayer Game Programming ITP 484x (4 Units)

George Mason University Electrical and Computer Engineering Department ECE 201: Introduction to Signal Analysis Syllabus Fall 2015

Gordon College ECB 362 Cost Accounting Online Summer Flexibility with Responsibility

Fall 2015 GES 4120/5120 Internet GIS

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

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

ISE 515: Engineering Project Management (31505)

Technologies for Interactive Marketing ITP499 (4 Units)

CASPER COLLEGE COURSE SYLLABUS

IML 140: Workshop in Multimedia Authoring

CJ Introduction to Criminal Justice COURSE SYLLABUS: Spring 2013

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

College of Southern Maryland Fundamentals of Accounting Practice(ACC 1015) Course Syllabus Spring 2015

The course assumes successful completion of CSCI E-50a and CSCI E-50b, i.e. at least two semesters of programming, with a grade of C- or better.

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

MSIS 630 Project and Change Management (Fall 2014) Course Syllabus


CS 1340 Sec. A Time: 8:00AM, Location: Nevins Instructor: Dr. R. Paul Mihail, 2119 Nevins Hall, rpmihail@valdosta.

CRIMINAL JUSTICE ADMINISTRATION AND MANAGEMENT. CJ Course Syllabus Fall 2013

IINF 202 Introduction to Data and Databases (Spring 2012)

Course title: Management Information Systems Fall 2010 Course number: CRN: Location: Meeting day: Meeting time:

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

Psychological Testing (PSYCH 149) Syllabus

Carleton University School of Computer Science COMP Computer graphics Fall 2015

231 Consumer and Market Behavior Section 01 Summer 2015

COURSE SYLLABUS DESIGNING WEB PAGES COP3835-RVC-1121 GENERAL INFORMATION IMPORTANT INFORMATION PROFESSOR INFORMATION

IML 140 Workshop in Multimedia Authoring: The Web, Digital Media and Creative Culture

Accounting : Accounting Information Systems and Controls. Fall 2015 COLLEGE OF BUSINESS AND INNOVATION

DePaul University Kellstadt Graduate School of Business ACC 555 Management Accounting for Decision Making

Arch 315: Design of the Luminous and Sonic Environment

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

CS135 Computer Science I Spring 2015

F l o r i d a G u l f C o a s t U n i v e r s i t y S t a t i s t i c a l M e t h o d s F a l l C R N

PSYC 201 GENERAL PSYCHOLOGY Fall 2013

Investment Management Course

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

Accounting 312H: Fundamentals of Managerial Accounting Spring 2014 Lendecky Syllabus - Unique # 02610, 02615, & 02620

ISM 4113: SYSTEMS ANALYSIS & DESIGN

Introduction to Computer Forensics Course Syllabus Spring 2012

BUS Computer Concepts and Applications for Business Fall 2012

Digital Production Art 3-D AET Bringing ones imagination to life has never been easier. Fall 2015 CBA TTH 9:30-11:00 AM

CRJU Introduction to Criminal Justice (CRN 20933) Course Syllabus Spring 2015

STAT 121 Hybrid SUMMER 2014 Introduction to Statistics for the Social Sciences Session I: May 27 th July 3 rd

English 230: Shakespeare and His Time

Transcription:

Video Game Programming ITP 380 (4 Units) 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 MonoGame/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 MonoGame. 3D graphics. Collision detection. Introduction to game physics. 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 2:30 5PM and Thursday 12:00 2:30PM in OHE 530H Lab Assistant Zachary Metcalf and Brian Chen (contact via Piazza) Lecture Tuesday 3 4:50PM in OHE 540 Lab Thursday 3 4:50PM in OHE 540 Course Structure Every week, we will cover a specific game programming concept in lecture. For the first half the semester, students will work on individual labs that reinforce the concepts covered during lecture. The first three individual labs complete MonoStroids, a simple asteroids clone that s designed to teach the basics of game programming. The next four individual labs complete MonoDefense, a tower defense game that includes a pathfinding AI. During the second half of the semester, students will break into groups of 3-4 students and work on a larger game project. Further details regarding this project are provided on the next page. There is a midterm exam, but no final exam. The individual assignments must be completely individually. And of course, the group project will be completed with a group. There will periodically be pop quizzes. These quizzes will generally be short 20-30 minute programming assignments, and can occur during any class session. There are a total of six quizzes, with the lowest quiz grade being dropped. Textbooks Required: Game Programming Algorithms and Techniques. Sanjay Madhav. ISBN- 10: 0321940156. Recommended: XNA Game Studio 4.0 Programming. Tom Miller and Dean Johnson. ISBN-10: 0672333457. 1

Grading The course is graded with the following weights: Individual Labs (5% each) 35% Final Project 35% Midterm Exam 20% Quizzes (6 total, lowest grade dropped) 10% TOTAL POSSIBLE 100% 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+. There is no curving. Students will receive the grade they earn. Extra credit is generally not offered. Final Project At the midpoint of the semester, 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 proposal approved by the instructor. Working on a project which is not approved is not allowed. Schedule Week 8 Form team and submit proposals for approval. Weeks 9 to 11 Work on core game feature sets. Week 12 E3 Playable Demo Presentation (Graded) Week 13 to 15 Work on final polish features Final Exam Final Presentation (Graded) Basic Requirements The game must be implemented in C# using MonoGame. It must utilize 3D functionality, at a minimum, have 3D rendering, input, sound, collision detection, and some sort of physics. The game must feel like a complete experience. A player should be able to load in the game, there should be some sort of instructions on how to play, and it should be able to restart and exit. If the game is level-based, it should end after the level(s) are complete. If it s infinite gameplay, then it should play for as long as the player is successful. 2

Each team member is assigned responsibility for a specific technical challenge known as a major feature. Such features include a significant amount of gameplay work, A* pathfinding, vertex/pixel shaders, particle systems, skeletal animation, continuous collision detection, and so on. For advice on what constitutes a major feature, please consult with the instructor. Project Management Students are required to use Trello (http://www.trello.com) to manage the schedule for their final project. Further instruction will be given during class once work on final projects begins. Proposal Your team will be required to send out a proposal prior to commencing work on the project. The necessary components of the proposal will be covered in class. Grading Your final game project is 35% of your overall semester grade. The final project breakdown is as such: Individual Contribution 10% E3 Demo Grade 10% Final Project Grade 15% Total 35% Individual Contribution 10% of semester grade. This is based on how much code you contributed to the project, how well your assigned major feature was implemented, and the result of peer reviews within your group. If you did not contribute enough to the project, you will lose points in this section. E3 Demo Grade 10% of semester grade, shared by all team members. Approximately four weeks prior to the final presentations, your group will be required to present an E3 demo to the class. This demo must demonstrate the core mechanics of your game in a playable manner. It is not expected to be fullyfeatured, but the gist of your game should be apparent. Final Project Grade 15% of semester grade, shared by all team members. It is broken down in the following manner: 30% Basic project requirements met. 45% Major features as outlined in proposal implemented. 25% Overall quality of the game, relative to other projects both in this particular class section and historically. Peer Reviews The last week of class, students will be required to complete a peer review survey on Blackboard. The results of this evaluation will be taken into account when assigning the individual contribution grades. 3

Policies 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 assignments will be accepted with a 15% penalty per day late, up to a maximum of two days late (for -30%). The final project will not be accepted late. It will be graded based on the submission at the required time of presentation. Before logging off a computer, students must ensure that they have emailed or saved projects created during the class or lab session. Any work saved to the computer will be erased after restarting the computer. ITP 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/. Academic Integrity 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. Students will be referred to the Office of Student Judicial Affairs and Community Standards for further review, should there be any suspicion of academic dishonesty. The Review process can be found at: http://www.usc.edu/student-affairs/sjacs/. Information on intellectual property at USC is available at: http://usc.edu/academe/acsen/issues/ipr/index.html. In this class, all code submissions will be ran against current, previous, and future students using MOSS, which is a code plagiarism identification tool. If your code significantly matches another student s submission, you will be reported to SJACS. Generally, the rule of thumb is that it is acceptable to discuss solutions to problems with other students, but once you are looking at someone else s code, it crosses over into the realm of cheating. It does not matter if this code is online or from a student you know, it is cheating in all situations. Do not share your code with anyone else in this or a future section of the course, as allowing someone else to copy off your code carries the same penalty as you copying the code yourself. Note that there is one exception: for the final project, it is acceptable use external code (from the Internet) to solve certain problems, but please consult with the instructor before doing so to ensure you are not in violation. 4

Students with Disabilities Emergency Preparedness 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. 5

Course Outline Week 1 Course Intro, Intro to C#, and Game Programming Basics - Course Introduction - The Game Loop - "Time" in games - Game Objects: What they are and different representations - Data Structures Review Reading: Madhav: Ch. 1; Miller: Ch. 3 Lab: MonoStroids, Part 1: MonoGame/C# setup, Game Objects Week 2 Vector Math and Games - Vectors - Applications - Why vector math is valuable Reading: Madhav: Ch. 3 (pp. 41-58); Miller: Ch. 4 (pp. 41-53) Lab: MonoStroids, Part 2: Loading/rendering models, spawning asteroids Week 3 Rendering, Part 1 - 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); Miller: Ch. 4 (pp. 53-83), Ch. 5 Lab: MonoStroids, Part 3: Basic input and collision MonoStroids DUE Sunday, 2/2 @ 11:59PM Week 4 Quaternions and Input/Sound - 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; Miller: Ch. 11 (up to 334), Ch. 13 Lab: MonoDefense, Part 1: Advanced game objects Week 5 Artificial Intelligence - AI state machines - A* and basic path finding - Navigation Meshes Reading: Madhav: Ch. 9 Lab: MonoDefense, Part 2: A* Pathfinding Week 6 Collision Detection and Game Physics, Part 1 - Rays and Planes - Raycasting - Types of Collision Geometry - Numeric Integration Reading: Madhav: Ch. 7 (pp. 127-134 and pp. 148-153) Lab: MonoDefense, Part 3: Core gameplay loop Week 7 Midterm Exam during lecture hours Lab: MonoDefense, Part 4: Finalizing MonoDefense MonoDefense DUE Sunday, 3/2 @ 11:59PM 6

Week 8 Camera Systems - Field of view - Basic camera styles - Follow cameras Reading: Madhav: Ch. 8 Lab: Form teams for group project. Week 9 Rendering, Part 2 - Lighting, Shading, and Texture Mapping - Advanced Mapping, Shadows, Particle Effects - Vertex and Pixel Shaders overview Reading: Madhav: Ch. 4 (pp. 76-88); Miller: Chapter 6 (pp. 105-121) Week 10 Collision Detection and Game Physics, Part 2 - Sphere/Sphere (swept) and Sphere/Plane Collision - AABB Collision Reading: Madhav: Ch. 7 (pp. 134-148) Week 11 User Interface Systems - Event-based UI systems - Implementing a HUD Reading: Madhav: Ch. 10 Week 12 Event-Based Systems and Scripting Languages - 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 ) Week 13 Animation and Assorted Gameplay - Evolution of Animation systems (2D to key framed to skinning) - Skeletons and Poses - Gameplay Systems for different genres Reading: Miller: Ch. 6 (pp. 127-140) Lab: E3 Group Project Presentations 4/17 during lab section Week 14 Basic Networking - Separating players - Packet writer and Game services Reading: Madhav: Ch. 12 Week 15 Conclusion - Where to go from here? - Engines, mobile game, multiplayer games, etc. - How to get into the game industry Finals Week Final Group Project Presentations on Thursday, 5/8 @ 4:30PM 7