Robert Williamson

RHIT CSSE352 - Video Game Development

Course Info

Course Description

An introduction to designing and developing computer games. Topics include game genres, game design, sprites, game physics, collisions, characters, scripting, graphics, and sound. Students will design and implement their own game using an available game engine.

Prerequisites: CSSE230

Instructor

Robert Williamson - Robert’s schedule

Office: Moench F205

Book a meeting with Robert

Schedule

You are assumed to have a working knowledge of object oriented programming, UML, and basic software architecture patterns. If you need a review you should ask for additional sources.

Over the term more details and links to assignments will appear in this schedule. Topics may shift with prompt notice to students, based on interest of the class and pacing of the material.

You are expected to complete readings by Friday of each week. Reading chapters before the start of the week will help, however.

Week 1 - Unity Intro

Week 2 - Raycasts and physics

Week 3 - Input, Game Managers

Week 4 - Scenes and UI

Week 5 - Sprites and Animations

Spring Break

Week 6 - Midterm Project

Week 7 - Sound and Modding

Week 8 - More Game Features and Deploying

Weekend - Game Jam

Week 9 - Game Demos and Advanced topics

Week 10 - Advanced topics

Course Management

Course Objectives

Upon completion of this course, students will be able to:

  1. Apply software engineering techniques to design and implement video games.
  2. Identify when to use features of a game engine or build custom software.
  3. Explain why they have chosen particular design elements for their software.

Tools

We will be using Unity for this course, you will need to download and install Unity hub from here.

After install you’ll need to make a free account with Unity, you can use your RHIT email or a gmail or any of the other options.

Finish reading this paragraph before you click things. After you have Unity hub installed you should download and install Unity 2020.3 released June 15, 2021, If that link does not work you can go to the Unity download archive and navigate to the correct version. This is a slightly older version of Unity, we’re using this to stay consistent with the textbook. You should be able to click the “Unity Hub” button to have the download launch Hub and get everything set up, regardless of your OS. During install it will prompt you to install Unity Editor, agree. Then you will be prompted to get a personal edition license, agree to this as well. It will take a few minutes to install then you will see the appropriate version listed in the “Installs” section of Unity Hub. Check the version of unity that installs from that link, the first time I installed Unity Hub showed only Unity 2021.3.20f1, I had to click the link and install a second time to get the correct version (it prompted me to install Visual Studio for Mac the second time).

Unity has some click-intensive activities, you are required to bring a mouse to class for working with this tool. Track-pads are not sufficient.

You can use any IDE you chose for code editing, I’ll be using Visual studio, but Unity comes bundles with Mono if you prefer.

We’ll be using Github classroom for code submissions, you can find the link for the homework assignments repos here

Texts

Required text:

  1. Hocking, Joe. “Unity in Action: Multiplatform game development in C#” Third edition. Manning (ISBN: 1617299332) Called UiA below

Optional reading:

  1. Baron, David. “Game Development Patterns with Unity 2021” Second Edition. Pakt (ISBN: 1800200811)

Other resources

For all sources of creative materials below please ensure that you check the license requirements. You may need to add an attributions page to your game somewhere, or at the very least a README in the code.

Every time you download an asset from any of these links you should copy-paste the link into a text document in your repo. Even if you aren’t sure you will use the asset. Save all the links, and sort out which you used later. It is a tragedy to find the perfect asset and then days or weeks later realize you have lost the source, meaning you cannot use it. Misattributing sources, or not following the rules of whatever CC license is attached to any work will result in an automatic fail for any assignment.

  1. Unity 2020.3 manual
  2. OpenGameArt.org
  3. List of CC music sources
  4. Leshy Sound Effect Designer
  5. GIMP - open source art program
  6. Texture Packer - make 2D sprite sheets
  7. Pyxel Edit - tilesets and pixel art
  8. Blender - 3D modelling

Assessments

Assessments in this course will be based on the following items:

Homework

These will usually consist of coding assignments where you will implement part of a system for a game. Occasionally these homeworks may include design and written assignments.

In-Class Participation

You are expected to participate in discussions, activities, and some group work as part of class. This grade will reflect your participation in activities and assessments of reading. I don’t plan on having reading quizzes, but will implement them if it becomes necessary.

Game jam

During week 10 we will host the RHIT (semi)annual Game Jam. The preceding Friday your instructor will announce a theme for the jam. In a group of 1-4 people you will design and create a game based on the theme. You will be expected to create a design document that specifies the gameplay mechanics, and the software designs of your system. You will be expected to deploy your game and source code online in an appropriate place (e.g. github and itch.io). On Friday of week 10 we will have a demonstration of the games open to the whole class and all of campus.

A rubric for the assignment will be posted partway through the quarter.

Course Administrative Info

Formatting guidelines

Assignments will be submitted and returned via gradescope or github classroom. If you need assistance using these tools contact your instructor.

Class attendance

This class will be highly interactive, I expect you to have read and assigned material before class and come prepared to discuss, ask questions, and think deeply about the topics of the day.

Collaboration

Collaboration is a key part of the software development process, therefore collaboration is encouraged on homework, quizzes, and laboratories. When you collaborate, you must properly credit your collaborators and clearly indicate the extent of the collaboration. In all cases, each individual is responsible for understanding and writing out the entire solution. Copying is not collaboration.

Any kind of plagiarism or cheating will result in a severe penalty in the course and Student Affairs will be notified. See this page for details.

Most importantly, any actions that reduce your ability or your opportunity to learn can be considered academic misconduct. Make sure you learn!

Concerns or Feedback

I strongly encourage students to document special academic needs with staff at the Office of Student Affairs and/or the Counseling Center, and then to contact me as soon as possible so that we can work together to provide recommended academic accommodations while protecting your privacy.

If you have any concerns about any course matters, you should tell someone. You can email your instructor, speak to your instructor, or leave anonymous feedback in Moodle. You can also contact the department head, Student Affairs, or another Rose employee you feel comfortable with.

While you are more than welcome to consult any member of our department if you have concerns, we realize it’s helpful to have a few names to start with. If you have a concern and are not sure where to go, the following CSSE faculty have volunteered to be help out with any concerns you may have: Amanda Stouder (F222) and Kim Tracy (D216) or appropriate BIO faculty.

This syllabus is subject to revision with prompt notification of enrolled students.