CS 4640 Game Development I Fall 2014 Syllabus

General Information

Instructor: Richard Fry, PhD, Associate Professor, Department of Science E-mail: [email protected] (Preferred) or [email protected] (Forwarded) Please DO NOT send messages via the Canvas system (I may not see them) Instant Chat: [email protected] on Google Hangouts Class Meetings: Tuesdays and Thursdays 11:30 AM – 1:20 PM Office Hours: By appointment request

Required Textbook:

Unity 4 Fundamentals By: Alan Thorn Publisher: Focal Press Publication Date: 2013 ISBN: 978-0415823838 AVAILABLE IN ELECTRONIC FORMAT FREE VIA SAFARI

Course Description

Introduction to the programming and development of computer/video games, especially through the use of a computer and 3D Modeling (e.g. Unity and ). Course will cover the major aspects of programming and creating games within a game engine, including world/ design, programming within a game engine, basic interaction between code and game assets (character, buildings, objects, weapons, camera, etc.), movement and manipulation of game assets, events such as object collisions, triggers, and timed events, common gameplay mechanics, creating a game interface (HUD), non-player characters and AI, multiplayer games and networking, and animation and game sequences. The course is a project-based course, culminating with the students integrating the many topics and tools to develop their own complete game.

Pre-Requisites

 CS 1010 (or permission from instructor)  General programming experience in #

This course supports the achievement of the following ABET Accreditation program objectives:

 An ability to apply knowledge of math, science, and engineering.  An ability to design and implement programs as well as to analyze and interpret code and data.  An ability to design a system, component, or process to meet desired needs.  An ability to identify, formulate, and solve computing problems.  An ability to communicate effectively.  An ability to use techniques, skills, and modern computing tools necessary for computing practice.

Course Delivery

Class will consist of a mix of lecture, demonstrations, student discussions, labs and homework related to the responsibilities and activities of the and designer. Questions and comments during class time are encouraged (and participation is encouraged). Gaming concepts will be illustrated in class using reading assignments and tutorials. It is expected that students will have read the covered chapters prior to the class on the topic. The instructor will ask questions of the students to ensure that learning is taking place.

Accommodations

Any student requiring accommodations or services due to a disability must contact Services for Students with Disabilities (SSD) in room 181 of the Student Services Center. SSD can also arrange to provide course materials (including the syllabus) in alternative formats, if necessary. For more information about the SSD, contact them at 801-626-6413, [email protected], or http://departments.weber.edu/ssd/.

Cell Phones

For obvious reasons, cell phones should be set to silent or vibrate during class. If you must take a phone call, please excuse yourself from the classroom.

Surfing the Net (and other inappropriate behavior) during class

Please don't waste my time or yours by surfing the , playing video games, instant messaging, working on assignments from other classes, etc., while class is in session. It distracts me and other students. If I see you doing something else during a lecture, I will ask you to leave the classroom. If I were your boss, I'd fire you.

Cheating and Our Departmental Policy if you are caught…

Although cheating has many forms, I generally consider cheating to be any attempt to claim someone else's work as your own. Any assistance provided and/or received on problem solving or programming assignments without being publically posted on our course website (so I know about it) is considered cheating...because I always assume you are doing your own original work. Also, any possession of materials from previous semesters is considered “cheating”. You are encouraged to assist other students whenever possible or cite internet website resources that provide help, but this help must be transparent, and posted via the discussion forum so everyone gets the same information. If you have any questions about this policy, please ask me. WARNING: CS Department policy dictates that any verifiable evidence of student academic cheating, as defined and determined by the instructor above, will result in: 1) an automatic failing grade for the class and 2) a report to the Dean of Students that will include a detailed description of the student's dishonest conduct.

Class Notifications / Cancellations

For all official announcements regarding this class, or any cancellations of classes, I will notify you via your weber e-mail account. I strongly suggest that you forward your WSU mail to your regular mailbox, so you do not miss these important announcements. Grading, Evaluation Policies and Procedures

Course work will consist of a combination of 3D Modeling tutorial assignments and short programming assignments (individual). There will be one final programming project (delivered in 3 parts) where you (ideally, working with 1 or 2 others) will implement a complete game of your own design (or using a design from CS 1010).

Points / % Assessment Description Final Grade Homework Deliverables and Enhancements to Unity projects started in class…plus any 350 / 70% Tutorial Assignments other individual work “as assigned” during the semester Game Pitch – Evaluated Against Team Game Pitch and Presentation (1st place 25 points, 2nd 25 / 5% Peers 24, 3rd 23, 4th 22, 5th 21, 6th 20 points) or less. Class votes. Partially functional prototype – Beta Copy of Game (1st place 75 points, 2nd 72, 3rd 67, 4th 65, 75 / 15% Evaluated Against Peers 5th 62, 6th 57 points) or less. Class votes. Grade based off changes/improvements (or lack thereof) Final Playable Game 50 / 10% since Beta Individual Assignments = 70%, Team Project = 30% TOTAL 500 Points Possible - It's easy to figure your grade at ANY TIME during the course, just divide your current points by possible points (to date). 500/100% Grading Scale

473-500= A, 448-472 = A-, 438-447 = B+, 410-437 = B, 398-409 = B-, 388-408= C+, 360-387 = C A Student with less than 360 points will not pass the course

Complaining About Grades

I recognize and encourage a student's sacred right to complain about their grade. There are, however, a few rules under which such complaining should take place, and those students who don't follow the rules will be less successful in their complaints than those students who do follow the rules. First, the only complaint that matters is that something got marked wrong when it was actually right. When you come to complain, be prepared to present, in explicit detail, what it is you did and why you think it is right. Second, complaints about a particular test or assignment are only valid until the next test or assignment is due; after that point the book is permanently closed on all previous test or assignment grades.

Assignment Due Dates

All assignment due dates are clearly posted several weeks in advance, and you are always allocated AT LEAST one FULL WEEKEND PLUS IN-CLASS LAB TIME to work on your assignments. In order to schedule MY grading time and provide you with timely feedback on your assignments, the posted due dates will be the absolute latest you can turn in an assignment for full potential credit (11:59 PM MST on the SECOND Friday after it’s assigned (also known as “FRYday”, so you can remember my policy easier). I will not accept late work for full credit under any circumstance (even emergencies). Late assignments are my pet peeve and are penalized severely (see below). If you are a procrastinator, then I suggest you give yourself a deadline of a week earlier than the actual due date. I find procrastinators who wait until the last couple of days often encounter an emergency situation the last minute or do not have enough time to adequately finish the work. Conversely, if you start off on the right foot by working a week ahead, you’ll have substantially less stress and more flexibility. If Assignment is submitted… You are awarded (or penalized)… On-Time BEFORE the due date Awarded Original Earned Credit (on or before “FryDay” @ 11:59 PM) 1 min to 12 hours late (Saturday by Noon) -10% penalty subtracted from original score 12-24 hours late (Saturday by 11:59 PM) -25% penalty subtracted from original score 24-48 hours late (Sunday by 11:59 PM) -50% penalty subtracted from original score 48-72 hours late (Monday by 11:59 PM) -75% penalty subtracted from original score More than 72 hours late (Tuesday or later) No points awarded – No exceptions

Software and Tutorial Resources

Unity game engine:

Unity website

Download Unity game engine

Asset Store (free assets available too)

Unity guides, manuals, and wiki:

Unity User Guide

Unity Wiki

Blender tools:

Blender website

Download Blender

Official Blender Wiki

Blender 3D: Noob to Pro (excellent online wiki; Units 1 and 2A especially relevant)

Blender 3D Design Course by Neal Hersig (Blender cheat sheet; Lessons 1-3, 5, and 12 especially relevant to this class)

More Advanced Topics on Using Blender with Unity:

Exporting from Blender to Unity by Mat-D (more detailed exporting)

Tutorial on advanced texturing in Blender for Unity (more advanced texturing)

Autodesk FBX Converter (for adding textures into .fbx file)

Calendar and Topics Covered THIS IS A PRELIMINARY SCHEDULE FOR PLANNING PURPOSES ONLY. SUBJECT TO CHANGE!! ALWAYS CHECK THE ON-LINE CALENDAR FOR CURRENT INFORMATION, MATERIALS AND DUE DATES.

The following topics will be covered via demonstration. It is imperative you attend class during demonstration days:

 Introduction to Unity and Game Engines  Introduction to C# (or JavaScript)  Unity Scripting and Unity Libraries  Building Game Worlds / Levels (Scenes) in Unity  Types of Assets (game objects), and Unity Asset Store  Modifying and Creating your own Assets and Prefabs  Adding Components to Assets  Interaction between Assets and Scripts  The Player Character, Camera Views, and Movement  Gameplay Mechanics (and Effects)  Physical Challenges  Objects, Collisions, Collection, and “Power Ups”  Triggers (location-based events) and Timed Events  Non-Player Characters and  Multiplayer Games and Networking  Creating the Game Interface (HUD)  Animation and Game Sequences

TUESDAY THURSDAY “FRY”DAY

Aug 26 Aug 27 Aug 28

Presentation: Introduction to the Demonstration: Unity 3D (Ball & Paddle) course and Unity Sept 2 Sept 4 Sept 5

Lab – 1A Lab – 1B Assignment 1 due by Midnight Instructor Available for Assistance Instructor Available for Assistance with Assignment 1 with Assignment 1 Sept 9 Sept 11 Sept 12

Demonstration: Unity 3D (Robot Demonstration: Unity 3D (Finish Repair) Robot Repair)

Sept 16 Sept 18 Sept 19

Lab – 2A Lab – 2B Assignment 2 due by Midnight Instructor Available for Assistance Instructor Available for Assistance with Assignment 2 with Assignment 2

Sept 23 Sept 25 Sept 26

Demonstration: Unity 3D (The Demonstration: The Break Up Breakup Continues

Sept 30 Oct 2 Oct 3

Lab – 3A Lab – 3B Assignment 3 due by Midnight Instructor Available for Assistance Instructor Available for Assistance with Assignment 3 with Assignment 3

Oct 7 Oct 9 Oct 10

Demonstration: Unity 3D Shoot the Demonstration: Shoot the Moon Moon Continues

Oct 14 Oct 16 Oct 17

Lab – 4A Lab – 4B Assignment 4 due by Midnight Instructor Available for Assistance Instructor Available for Assistance with Assignment 4 with Assignment 4

Oct 21 Oct 23 Oct 24

Demonstration: Unity 3D Scoring Demonstration: Blender Models and Clock

Oct 28 Oct 30 Oct 31

Lab – 5A Lab – 5B Assignment 5 due by Midnight Instructor Available for Assistance Instructor Available for Assistance with Assignment 5 with Assignment 5 Game Pitch by Midnight (Monday Nov 3) Nov 4 Nov 6 Nov 7

GAME PITCH DAY Presentation: Advanced Topics

Nov 11 Nov 13 Nov 14

Presentation: Advanced Topics Lab – 6A Work on Final Project

Nov 18 Nov 20 Nov 21

Presentation: Advanced Topics Lab – 6B Game Beta by Midnight Work on Final Project (Mon Nov 24th)

Nov 25 Nov 27 Nov 28

BETA PLAY DAY No Class THANKSGIVING

Dec 2 Dec 4 Dec 5

Lab – 7A Lab – 7B Final Project due by (Mon Dec 8th) Work on Final Project Work on Final Project

Finals Week Dec 9

FINAL GAME PLAY DAY

Copyright ©2014 Richard Fry – Last Modified 26 August 2014.