ICS 169 a/b Capstone Game Project 2019-20

Class Syllabus

Professor
Theresa (Tess) Tanenbaum

(ttanen@uci.edu)

TA
Jeffrey Bryan
(jsbryan@uci.edu)

Time
Wednesdays 5-7:50pm

Location
Anteater Learning Pavilion Room 1700

Catalog Description

Students work in teams to design and implement a new computer game or virtual world. Emphasis on sound, art, and level design, building a community, cut scenes, production values, full utilization of hardware and software platform, and current industry trends.

Course Objectives and Philosophy

In this course students work in teams to design and develop a game.  This game can be in any genre, developed on any platform, and be about any subject. As a final project class, things are pretty wide open, but there are some “learning objectives” for the class:

  • Learn how to work within a diverse team as a specialist, while also taking ownership of the “big picture”.
  • Learn how to “scope” and “polish” a comparatively “long term” game project.
  • Learn how to coordinate with outside “contractors”, mentors, and collaborators, and how to manage complex communication and organizational tasks.
  • Learn how to position your game within a market that is saturated with independent games so that it stands out.
  • Learn how to test and refine your game with naïve players, how to take critical feedback, and how to “find the fun” through iterative design.

By the end of these two quarters, you should have a portfolio piece that you can proudly take with you as you enter the job market.  You should have a game that you can enter into local, regional, and national design competitions.  You should have something that you could conceivably polish and further refine and attempt to publish or otherwise distribute. By the end of the Fall Quarter you should have a playable prototype that is “feature complete”, meaning that the core mechanics are in place, and the “fun” is present.  You will need the entire Winter Quarter to polish and refine that prototype into something that approaches “content complete”.

Course Related Outside Activities

Save the date now!  January 31-February 02, 2020! I will be coordinating UCI’s GGJ location this year for the sixth year in a row.  Previous GGJs have had amazing turnouts, with participants from UCI, other colleges in the area, and local game companies.  Last year we were the second largest site in the US and the 8th largest site in the world!  This year, you all will participate in the Jam: it will be a chance to clear out the cobwebs, to iterate over some ideas that you might have had to put on the back-burner during the Fall, and a chance to bond with your colleagues. Ordinarily I ask students to come to the Jam without pre-planned teams, but this year, if you want to Jam in your teams for the class I’ll allow it. 

We will be having a “Capstone Games Showcase” at the end of the Winter Quarter in week 10. Each team will set up a table to demo their games, and will have 2 minutes to introduce their game to the assembled guests.  Please feel free to invite family and friends.  We will invite all of the industry mentors to attend, and will also be inviting students and faculty across ICS, and members of the IVECG to join us and see what everyone has made.

This event happens annually in Orange County, and our teams have done quite well in the competition. UCI capstone students have placed first for the last 5 years in a row. Submissions are usually in the Spring, and you are highly encouraged to polish and submit your games to this!

GameSIG Website

Course Logistics and Resources

Course Structure

We meet once a week for three hours. Every other Wednesday the Industry Mentors will visit, and meet with their teams. The other Wednesdays will be for team consulting with the teaching team, and for the occasional guest lecture from industry guests.

Mentors

We are joined by an exciting group of professional game developers from the games industry! Each team will have at least 1 official mentor, as well as access to the “floating mentors” in the room. These folks have a lot of wisdom and experience to offer and are committed to helping you make your games the best they can be.

Course Website

You've found it! This is it!

The syllabus will be posted on the course website, along with any digital resources for your use.

ITCH.IO Sites

Each team will create a project on itch.io where they will be able to post playable builds as the game progresses.

Google Drive

We will provide each team with a Google Drive folder, which we will have access to. This should be used for storing any design documentation, game assets (excluding code), and other materials that you generate during the class. Do not keep source code in this folder: that is what GitHub is for!

GitHub Repositories

We will be using GitHub to store and track the files created for the games in this class. I will create private repositories for each team as part of the course setup. Every student should create a GitHub account if they do not already have one.

Fall Assignments and Grading

Fall Quarter Grading and Deliverables

ICS 169A and 169B are graded together; your official grade for the Fall quarter will be IP (In Progress). Each student will receive an unofficial, “tentative” grade for the Fall quarter, which will be determined as follows:

I will use the tried and true Index Card method to track attendance, and solicit feedback from you. The TA will distribute index cards at the beginning of each class – please return them by the end of class with your name, student number, the date, and any comments or questions you may have for the teaching team.

Please let the teaching team know if you will be missing class.  While you will NOT be able to get credit for attendance, it is helpful for your team and for us to know that your absence is planned.

I will create a shared Google Form for each team. Starting in week 2, by 11:59 pm on the Tuesday before class, each member of the team should add a brief statement about what they plan to do in the coming week, and what they actually did the previous week.  This is done individually, using the same form every week.

Please submit your status reports HERE!

For the final presentation each team will present their game prototype to the class.  This should be playable and should capture the core mechanics and experience of the game that you are developing. The second quarter of the class should be polishing and testing, so you want your prototype to be as feature complete as possible

The tentative Fall quarter grade will be weighted as 45% of the overall grade.

Late submissions will not be accepted under any circumstances.

Fall Weekly Schedule

Week 1

October 2

  • Welcomes
  • Game Concept Development
  • Team Building
Week 2

October 9

Due FRIDAY October 11: First Weekly Status Report

Due the night before class: Final Teams and contact info (submit via an e-mail to entire teaching team)

  • Meet the Mentors
  • Course policy overview
  • Intro to project management tools.

Week 2 Lecture Slides

Week 3

October 16

Due the night before class:  Itch.io links and initial brainstorming info. (submit via an e-mail to entire teaching team)

Due Tuesday October 15, and every Tuesday hereafter: Second Weekly Status Report

  • Paper Prototyping Activity

Week 3 Lecture Slides

Week 4

October 23

Due the night before class: First playable build, posted to Itch.io site. (submit via an e-mail to entire teaching team)

  • Meet with Mentors
  • Guest Lecture TBD
Week 5

October 30

Due the night before class: Second playable build, posted to Itch.io site. (submit via an e-mail to entire teaching team)

During class we’ll be playing the games in their current state:

  • One person at a time from each team is the “demo person”.
  • Everyone else will circulate and playtest the other games.
  • Swap out demo people at the halfway mark.
Week 6

November 6

DUE BY BEGINNING OF CLASS: List of technical problems/questions/blockers (submit via an e-mail to entire teaching team)

  • Meet with Mentors
  • Lecture: Fun Doctoring!
Week 7

November 13

 Tissue Testing #1
Week 8

November 20

  • Meet with Mentors
  • We play your games!
Week 9

November 27

  • (Professor Tanenbaum out of town)
  • No class due to Thanksgiving
Week 10

December 4

  • Meet with Mentors
  • Lecture: Preparing for finals week presentations
Finals Week

December 11th

We will meet in the usual place, at the usual time on the usual day in finals week.

  • Prototype Presentations

Additional Important Course Policies and Resources

I expect everyone in the class to maintain a spirit of kindness, generosity, and inclusivity. We may not always agree with each other, and this classroom should be a space where we can collectively explore our disagreements in the spirit of intellectual curiosity and inquiry. However, I firmly believe that it is possible to disagree passionately while still treating the people around you with care and respect. As such, I have a zero tolerance policy for any behavior that denigrates, insults, attacks, or otherwise mistreats any other person in the classroom. 

My name is Tess and I use she/her/hers pronouns. When you introduce yourself you may choose to share your gender pronouns. If you have a name you would prefer the teaching team and your colleagues to use instead of the one listed on the roster feel free to let us know and we will happily use it. If you have any questions about pronouns in general, or have any requests about your own pronouns or other gender-related needs in this space, you are welcome to chat with me.

Please read and heed the following information regarding academic dishonesty. I cannot and will not tolerate academic dishonesty. For more information, refer to the UCI Student Handbook. The UCI campus policy on academic honesty resides here: http://honesty.uci.edu/

The penalty for plagiarism is at a minimum to receive a 0 on the assignment and have the case reported to the Associate Dean’s office. Particularly flagrant cases may receive more severe punishment (notably failing the course).

Here is an excellent resource to help you determine if you have plagiarized or not?

Due to the nature of this course, there are few opportunities to plagiarize.  However, there are lots of pitfalls around licensing, copyright infringement, and open/closed source software to be on guard for. There are plenty of resources out there for game developers including asset packs of sprites, sounds, and animations. There is also a lot of open source code that can be used to solve problems that others have already solved so that you can focus on your designs. I’m generally comfortable with you using these resources in moderation, but you need to be extremely disciplined about maintaining records of where you are sourcing materials and be confident that you are not violating any copyrights or other intellectual property agreements by including 3rd party materials in your game.

If you are a student with a disability (e.g., physical, learning, psychiatric, vision, hearing, etc.) and think that you might need special assistance or a special accommodation in this class or any other class, please check out the Disability Center online or visit them in person at: 100 Disability Services Center, Building 313, Irvine, CA 92697-5130.   If you are having difficulty with the class for any of these reasons, please let the instructors know so we can work with you to meet your learning needs. If for any reason you are uncomfortable discussing the details surrounding a given situation you need not disclose anything, but at least let us know that something is going on so that arrangements can be made to adjust things for you before you fall too far behind.

We are  always available to meet with students who are having trouble, and we are usually willing to make some reasonable accommodations if you have a legitimate issue, but we require that you check-in with us before a problem gets out of control so we can work something out.

It is common for university students to experience periods of emotional distress, such as depression and anxiety, especially around period of stress or change–for example, the transition to college from high school. At times, these emotional challenges can interfere with school work, making it difficult to attend class or complete assignments. If you are experiencing emotional distress, we strongly recommend contacting the UCI Counseling Center, which offers many forms of resources and support.

While your instructors sympathize with the challenges you may be facing, we are not mental health professionals. Therefore, we cannot grant you special accommodations due to emotional distress (such as a deadline on an assignment) unless you have sought assistance from the UCI Counseling Center or an outside mental health professional and can provide relevant documentation. Do not share the details of your mental health crisis with your  instructors. This is for your privacy and our own emotional health.

If you are concerned about how your emotional health is affecting your overall quarter grade, seek assistance from the UCI Counseling Center immediately. Students whose grades suffer considerably are sometimes able to withdrawal from the course after the drop/add deadline. However, they may only do so if their ongoing mental health issues have been documented by the UCI Counseling Center.

(content adapted from Bonnie “Bo” Ruberg’s ICS60 syllabus)

Office Hours are held by appointment. If you wish to meet with me, please book a slot using this link.

Helpful Resources, Tips, and Tricks

The reality of our class (and our program as a whole) is that programmers outnumber artists three to one.  However, there are many resources for those who want to include art in their games, but are not visual artists by training.

  • Kate Compton’s Procedural Art for Games: Kate specializes in using code to make playful art. She did the special effects and planet generation for Spore, and has created a bunch of open-source PCG tools for things like generating and evolving plants, snowflakes, and other natural things. She is also the brains behind Tracery, a language for text generation that can be used for creating twitterbots, artbots, games, stories and more. Check out her GitHub for code you can use to make pretty things!
  • Processing: Processing is a software sketchbook oriented at creating visual art through code.  The language is very close in syntax to Java, but with a bunch of classes oriented towards creating and manipulating visuals. There are many examples of ideas on the site for how to use code to create art.
  • Learning Shaders: A collection of tutorials on shaders in Unity, which will help you develop the specific look of your game.
  • Linden Reid’s Shader Tutorials: Linden has many awesome tutorials for learning shaders in Unity.  Other useful resources from him include this color spread tutorial and the github repo with the whole Unity project. Here’s the GDC talk about Fortnite’s procedural animations. He writes: “My blog has a post specifically about resources for getting started learning shaders in Unity. I highly recommend the book 3D Math Primer for Graphics and Game Developmentfor anybody interesting in learning shaders from the coding side. If you’re interested in learning about shaders without coding, I recommend Unity’s ShaderLab or Amplify Shader Editor.”

There are many resources to help you manage tasks, keep in communication, and keep your projects moving forward.  here are a few that we recommend:

  • Slack:Increasingly, people in tech, games, and academia are moving some of the conversations that used to happen in e-mail over to Slack.  Slack has the advantage of persistent group conversation threads and the ability to integrate many tools directly into its workflow including Google Drive, GitHub, and Trello.
  • Asana: Asana is a task management and workflow organizing application for complex projects.
  • Trello: An alternative to Asana.  Also good for managing tasks in large projects.
  • (more coming soon)

Yes, we are all very familiar with Unity.  And yes, Unity has many advantages.  However, perhaps you want to do something more specialized, or perhaps you want to try something new.  Here are some alternate engines and platforms to consider.

Unreal Engine: Probably the biggest competitor to Unity.  Unreal has a slight edge over Unity for large complex projects, overall performance, and graphics quality (although this is subject to some debate).  The blueprint system allows for non-programmers to quickly build out games, although it is limited.

Amazon Lumberyard: A relative newcomer to the game engine scene. Built on top of the CryEngine, it adds a new front end and easy Twitch integration, but may not be ready for prime time yet. We have mentors in the class who are working with it, so perhaps it is worth considering for certain kinds of projects.

Inform and Twine Interested in writing interactive fiction? These are the tools!  Inform 7 is the heavyweight hypertext editor of your dreams. Ideal for complex narrative systems, but with a steep learning curve.  Twine is the less fully featured, but profoundly easy to use baby sibling of Inform.  Both are worth exploring if you want to do something story-centric.

(more coming soon)

I’ll be adding resources here throughout the year. There are many relevant books, tutorials, and papers out there to help you make your games better. This list is just a tiny slice of what you can find if you look.

  • Game Feel, by Steve Swink: A great book that looks at some of the elements needed to make your gameplay feel awesome.
  • Start Making Games by Craig Morrison: a great resource for game makers by our very own Craig Morrison. Geared at beginners, but with lots of tools for more advanced designers as well.