CS 4730 - Fall 2017 Syllabus

Basic Info

2017 Fall Semester
http://cs4730.cs.virginia.edu

Lectures

Lecture: Mondays and Wednesdays, 11:00am - 11:50am - MEC 205
Mario Lab: Fridays, 10:00am - 11:20am - Rice 340
Luigi Lab: Fridays, 11:30am - 12:50pm - Rice 340

Staff Information

Instructor: Prof. Mark Sherriff
Office: Rice 401
Office Hours: TBD Phone: (434) 982-2688
Email: sherriff@virginia.edu
Twitter: @MarkSherriff

Teaching Assistants: TBD

Message boards: Piazza @ TBD
TBD and use the threads for quick questions, assignments, and for discussion with other students and staff. You can also post private messages here that will only be seen by staff members. This includes regrade requests for homework assignments.

Office Hours

All office hour times are posted on the course calendar at the bottom of the Schedule page on the course website. TA office hours are held Rice 340. Professor office hours are held in Rice 401. Note that we will update this calendar for any and all office hour changes due to the changing needs of the course. Students should refer to this calendar before going to any office hours.

Primary Text

  • Game Design Workshop: A Playcentric Approach to Creating Innovative Games by Tracy Fullerton - Amazon or Online through UVa Library
  • Reality Is Broken: Why Games Make Us Better and How They Can Change the World by Jane McGonigal - Amazon

Other Texts

These are books that I will be referencing throughout the course, but they are not required.

  • Rules of Play by Katie Salen and Eric Zimmerman - Amazon
  • Creating Games: Mechanics, Content, and Technology by Morgan McGuire and Odest Jenkins - Amazon

Course Description

This course will introduce students to the concepts and tools used in the development of modern 2-D and 3-D real-time interactive computer video games. Topics covered in this include graphics, parallel processing, human-computer interaction, networking, artificial intelligence, and software engineering. -UVa Course Description

Our course is an introductory course in video game design and production. We will focus on both the design and technical aspects of creating a game, from concept inception and prototyping through coding and playtesting. This course practices what it preaches with students earning experience points (XP) throughout the semester as opposed to letter grades on assignments. Students must complete a variety of quests (assignments) in order to level up to the point they can pass the course.

Upon successful completion of this course, students will:

  • Understand the social and ethical context in which video games are developed, marketed, and played;
  • Understand the technologies and platforms upon which modern interactive video games are developed;
  • Understand the software engineering concepts necessary to develop video games (and other large systems) in a large development group;
  • Comprehend the computational theory used in video games design, as well as, to a lesser extent, related fields (artificial intelligence, computer graphics, networks, etc.);
  • Understand the theoretical topic of game theory, and how that applies to multi-player games (and, to a lesser extent, artificial intelligence).

Course Topics:
The topics to be covered in the course include:

  • Client Hardware (Desktop vs. Mobile)
  • Android Development w/ Java
  • iOS Development w/ Swift
  • RESTful and Non-RESTful apps
  • Creating and Incorporating Web/Cloud Services
  • Mobile Sensors
  • Security and Trust Management
  • Privacy and Ethics
  • Usability and Accessibility

The topics to be covered in the course include:

  • What exactly are games?
  • Game design documents and storyboarding
  • Game engines
  • Game physics
  • Collision detection
  • Game mechanics
  • AI
  • Pathfinding
  • Graphics / Lighting
  • Statistics / Probability / Game Theory
  • Game balancing

Course Requirements

You should meet the following requirements to take this class:

  1. Have taken CS 2150 with a C- or better. We’ll assume you have mastered the material in the courses leading up to CS 2150 also, which includes software developments skills in Java and C++.
  2. Can attend class and lab regularly.
  3. You will be expected to learn programming languages and platforms on your own in this class! If you don’t feel comfortable with this, please talk to Prof. Sherriff as soon as possible!
  4. Must have an appreciation for games. This does not mean that you are a “hardcore” gamer. What this means is that you will be expected to play games in this class in addition to the ones you create. Another way of thinking about it is you wouldn’t take a film making course if you hated watching movies...

Different for Fall 2017

The game engine we will use for Fall 2017 is still being determined. In the past, I taught this course using MonoGame (the open source version of the XNA engine used for Xbox Live games). That is still a consideration as that engine is still being used for modern releases (FEZ, Bastion, Axiom Verge, etc.). If that engine is not used, we may use either Unity or Unreal. Most likely we will not use the Java engine used in the recent semesters.

Assessment

Coming soon.

Class Management

Coming Soon.

Frequently Asked Questions

Q: How do I get off the waitlist?
A: Here is how we are going to pull people (or not pull people) off the wait list:

  • 4th year students (i.e. will graduate fall 2017 or spring 2018), have the highest priority (assuming they did not add to the waitlist within the last few days/weeks).
  • I anticipate a few more 3rd years will get into the class, but I make no promises.
  • If you are not a declared BSCS major, BACS major, CPE major, or CS minor, you have lower odds at getting into the course.
  • After this, the wait list ordering comes into play and we will follow the order that appears in the SIS wait list.
  • No course action forms will be signed.

Q: When do I have to get the books?
A: You should order the McGonigal book ASAP. The other book you should get soon, or just read it online through the UVa Library website.

more ...