Syllabus
Getting Connected
Instructor: Robbie Hott
- Email: jrhott_at_virginia.edu
- Office: Rice 401 updated!
- Office Hours: Tuesdays 9am-10am, Wednesdays 2-3:30pm updated!
Course Meetings
Monday, Wednesday, Friday
- 10 am
- Physics 242
Course Description and Requirements
SIS 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.
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.
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).
Major Topics
- What exactly are games?
- Game design elements
- Game engines and frameworks
- Game physics and collision detection
- Game mechanics
- Level and character design
- Prototyping
- AI and pathfinding
- Graphics / Lighting
- Statistics / Probability / Game Theory
- Game balancing
Course Communication
We will be using two main communication platforms in this course: Piazza and email. Please follow the instructions below when posting or emailing, including which platform to use, so that we can communicate most effectively.
Piazza
We will be using Piazza for the following:
- Long-form questions about the class, code, or project (please post all code privately!)
- Private messages for faculty or the entire staff
- A searchable repository of common questions in the course about the project, assignments, etc.
- Note: While you’re waiting for an answer on Piazza, see if you can answer someone else’s question. You might know that Godot or PICO-8 trick that will help someone else out!
We will not be using Piazza for:
- Reassessment of graded work (use Gradescope)
We will be using email (to the professor) for the following:
- Personal issues that can and should only be handled by a professor
- Team issues that need to be escalated beyond the TA
We will not be using email for:
- Reassessment of graded work (use Gradescope)
- Tech help (use Piazza)
- Project questions (use Piazza)
For emails, PLEASE make sure to put “CS 4730” in the subject line somewhere so I can keep track of your request! And please be patient with me in responding. I receive A LOT of email and it’s easy to get behind. If there is a time-critical nature to your note, please let me know that as well.
Additionally, I have two small children who I love very much! To spend more time with them, I try to limit my evening email times; I may respond the next day.
Course Requirements
You should meet the following requirements to take this class:
- Prerequisite: CS 3140 with a grade of C- or higher. Students that do not meet this prerequisite may be dropped at any point from the class. It is the student’s responsibility to check this prerequisite and/or speak with the instructor ASAP.
- Willing and able to attend in-person lectures.
- Be a meaningful contributor to your team project, which includes being in contact with your team AND writing code that will be incorporated into the final version of the product.
- 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 the staff as soon as possible!
Textbooks
- Game Design Workshop: A Playcentric Approach to Creating Innovative Games by Tracy Fullerton - Available online as a PDF through UVA Library for free
Assessment and Grading
As the purpose of this class is for you to gain experience as a software game developer working in a team on a larger-scale project, your grade in this course will be based on experience points (XP). Everyone begins the course with 0 XP. As you complete assessments, work on the project, defeat bosses (tests), complete Random Encounters (in-class activities), etc. you will earn XP.
| Assessment | Who | Instances | Max XP | Max XP Avail |
|---|---|---|---|---|
| Random Encounters | Small Groups or Individual | ??? | 10 | min 60 |
| Critical Analysis Quests | Individual | 2 | 45 | 90 |
| PICO-8 Game Jam Quest | Individual | 1 | 80 | 80 |
| Godot Game Jam Quest | Individual | 1 | 80 | 80 |
| Game Design Document | Team | 1 | 40 | 40 |
| Physical Game Prototype | Team | 1 | 50 | 50 |
| Team Game Project | Team | 1 | 250 | 250 |
| Mini-Boss Battle (Midterm) | Individual | 1 | 150 | 150 |
| Final Boss Battle (Final Exam) | Individual | 1 | 200 | 200 |
| Total Course XP | 1000 |
| Letter Grade | XP Required |
|---|---|
| A+ | 1000 |
| A | 950 |
| A- | 900 |
| B+ | 875 |
| B | 850 |
| B- | 825 |
| C+ | 775 |
| C | 750 |
| C- | 700 |
| D+ | 675 |
| D | 650 |
| D- | 625 |
Assessment Notes
Game Jam Quests
- We will be using two different game framework/engines this semester - PICO-8 and Godot.
- Students will create two small games individually with each toolset.
- It is allowed to create the same game twice, once with each toolset, if desired.
Mini-Boss Battle and Final Boss Battle
- There are two tests in the course - the Mini-Boss Battle (Midterm) and the Final Boss Battle (Final Exam).
- The dates for these are set on the course calendar. Students that cannot make either of these dates must inform the instructor at least 72 hours in advance.
- Students with SDAC accommodations should make those known to the instructor at least 72 hours in advance and should proceed with scheduling a time with SDAC to take their test.
Critical Analysis
- Students will write at least two 3-4 page papers during the semester analyzing different video games.
- See the Critical Analysis section of the course website for more information.
Random Encounters
- Random Encounters are short, in-class assessments to ascertain a student’s understanding of a single concept we have been discussing recently.
- These could take the form of single-question quizzes, analyzing a game in class, or some other activity.
- The “planned” Random Encounters this semester (all 6 of them) are based around in-class activities that cannot be made up outside of class. Students who miss these, for whatever reason, cannot make them up.
- However, there will likely be more than 6 and students can earn bonus XP for completing more random encounters.
- Students with SDAC accommodations for modified attendance can opt to do an extra Critical Analysis in place of the Random Encounters.
Team Assessments
- Game teams will jointly submit a physical prototype, a game design document, and a final game.
- Teams will be comprised of 2-4 students and can be self-selected.
Reassessment Policy
You may request a reassessment of any graded work in this course, subject to the following conditions:
- Students may only request the reassessment of returned coursework in writing via Gradescope. A verbal appeal is not appropriate and will not be accepted nor will requests made through other methods (e.g. email, office hours, etc.). If a follow up is necessary, we will reach out to you to come to office hours to provide additional information. All reassessment requests will be handled by the instructors.
- Reassessment requests will open 24 hours after grades are released and will close 7 days after a grade has been released.
- Students must provide a written rationale for requesting reassessment, with specific reference to: the learning outcomes, assessment rubric, qualitative grade descriptors, and any feedback provided to you.
- Reassessment requests that are based on feeling or hearsay rather than information indicated above will not be considered and no further reassessment may be made. Examples include: “I feel you graded this too harshly”, “My friend did the same thing and got a better score”, etc.
- Students who submit an item for reassessment are advised that the entire work will may be reconsidered and that the result of the reassessment may be that the grade will increase, stay the same, or decrease accordingly.
- Graded work may only be reassessed once – you may not request reassessment a second time for the same item/problem and any changes to the grade made during reassessment will be final.
Class Management
Attendance
- In-person attendance is expected and generally required for this class, especially on activity days.
- Attendance will be taken on all activity and random encounter days. There will be (on average) one activity day per week.
Late Policy
- Game Jam Quests, Critical Analyses, and Game Design Document: An extension of up to seven calendar days may be requested for any reason by filling out the appropriate Google form with the assignment. No extensions will be given beyond what is requested through this form. SDAC students with modified deadlines should use this form to request their extension as needed.
- Random Encounters: As these are in-class only, they are not accepted late.
- Physical Game Prototype: No late submissions allowed as we will demo these in class on the due date.
- Team Game Project: No late submissions allowed as we will demo these in class on the due date.
- Mini-Boss Battle: If the Mini-Boss Battle will be missed, it must be made up before scores are returned (typically within 48 hours of the assessment).
- Final Boss Battle: Students who may miss the Final Boss Battle should contact the professor ASAP.
Professionalism
In this course, there will be a focus on working well together and learning about programming languages and web design. Students and staff are all expected to treat each other with respect. This includes, but certainly is not limited to:
- Misuse of class platforms (Piazza, Canvas, Gradescope, etc.)
- Disrespectful language or actions to course staff or other students
- Promptness for all deadlines and class meetings
- Quality work
- Not working well with your partners
- Collaborating with other teams
- Not being mindful of others
Students can and will be penalized for unprofessional behavior.
Academic Integrity
Summary
- Know the honor code
- Work with your team, but not any other team
- Using code from other students (from any semester) is an honor violation
- Wholesale copying of an entire project of feature from any source is an honor violation
- Using publicly-available example code and libraries is fine, but you must cite your resources
- Using Generative AI for coding questions is fine, but you must cite your usage
- Using Generative AI to generate sprites, portions of world maps, or a few (very) small snippets of code for your games is fine, but you must cite your usage
- Using Generative AI to write your entire code, games, or any part of your creative prompts for you is an honor violation
- More information on what is allowed will be included with each assignment if necessary
- It never hurts to ask the staff what is allowed or not allowed!
The School of Engineering and Applied Science relies upon and cherishes its community of trust. We firmly endorse, uphold, and embrace the University’s Honor principle that students will not lie, cheat, or steal, nor shall they tolerate those who do. We recognize that even one honor infraction can destroy an exemplary reputation that has taken years to build. Acting in a manner consistent with the principles of honor will benefit every member of the community both while enrolled in the Engineering School and in the future.
Students are expected to be familiar with the university honor code, including the section on academic fraud. Assessments will describe allowed collaborations, and deviations from these will be considered Honor violations. If you have questions on what is allowable, ask! Unless otherwise noted, all assessments will be considered pledged that you have neither given nor received help. (Among other things, this means that you are not allowed to describe problems on an exam, assignment, or project to a student who has not taken it yet. You are not allowed to show exam papers to another student or view another student’s exam papers while working on an exam.) Sending, receiving, or otherwise copying or describing the contents of electronic files that are part of course assignments are not allowed collaborations (except for those explicitly allowed in assignment instructions).
Assignments or exams where honor infractions or prohibited collaborations occur will receive a 0 (zero) grade for that entire assignment or exam. Such infractions will also be submitted to the Honor Committee if that is appropriate. Students who have had prohibited collaborations may not be allowed to work with partners on remaining homeworks.
Using code developed by previous students in the course or code written for your use by someone outside the course is not allowed and will likely be an honor violation. This does not apply to the use of publicly available frameworks and libraries, unless indicated in the assessment instructions.
In general, we expect that you will be using code, examples, and ideas from many different websites and resources for your projects. This is allowed within reason. Wholesale copying of an entire project or any major feature from any source (the web, another student, etc.) is definitely not allowed. Using code snippets that you find to round out a feature is allowed. If you ever have a question about what is or is not appropriate, ask first!
In ALL cases, you need to cite all sources at the top of the file where the code or algorithm was used AND you should note all sources in your documentation. Failure to properly attribute your sources will result in a 50% penalty for the project at a minimum.
How to Cite Code
Use the following format (or something functionally similar) as an example citing code you use. You may not have all of these fields available, but this should give you a good idea of things to look for. Order by title of the software package. Use the appropriate commenting format for the programming language of your source code. Below is a general example of a citation format. Does yours have to look exactly like this? No, nor does it have to have all the fields. It does have to have enough to give the proper credit and so we can find the resource if needed.
/***************************************************************************************
* REFERENCES
* Title: <title of program/source code>
* Author: <author(s) names>
* Date: <date>
* Code version: <code version>
* URL: <where it's located>
* Software License: <license software is released under>
*
* Title: ....
*
***************************************************************************************/
Policy on Use of Generative AI
Restrictions and General Policy
In general, we will treat the use of generative AI the same as we would a student asking for help on StackOverflow or finding other sources of code. For coding questions (i.e. “How do I make a 2D sprite appear in Godot?”), students are welcome to use generative AI. This includes tools such as ChatGPT, GitHub Copilot, and other code completion systems.
Use of generative AI should be limited to assistance and not writing your code or games for you!
You may, however, use generative AI to assist in the artwork portions of your game, using it to create sprites or portions of world maps. Treat it as you would an available assets from itch.io or elsewhere; you should not use it to design all the graphical elements in your game and you must cite usage as defined below.
For critical analyses or other creative prompts, generative AI is not allowed. While these tools can give you some impressive boilerplate text that would work for a generic presentation, it’s not going to touch on the things that I expect to see in these documents. However, usage of AI for cleaning up grammar or other structural aspects of documents is allowed.
Available Models (No Cost)
Two different Generative AI models are available for you to use during this course (within the restrictions above).
- Our Office Hour queuing system (ASCI) has a built-in local LLM model. It has access to our course material, including slides when available, so it will be able to provide direct answers with references to specific course documents. Please note that it takes a few seconds to respond as it is running on a server in the basement of Rice Hall.
- UVA provides access to Microsoft Copilot through Office 365. With UVA’s license agreement, your interactions are not used to train the model, providing some privacy guarantees over other paid models.
Risks of Generative AI
Generative AI tools can be powerful learning aids, but they also come with important limitations and risks. Remember that generative AI can only generate content from their training data, which is out of date, and they may provide incorrect or false information. Therefore, please keep the following in mind:
- Outdated or inaccurate content: AI systems are trained on past data, so their knowledge may be out of date. They may also produce responses that sound confident but are factually incorrect.
- Plagiarism and copyright concerns: AI models are trained on pre-existing material, which may include copyrighted content. Using AI output without proper citation may lead to plagiarism or copyright violations.
- Not designed for accuracy: The goal of these tools is to generate human-like text, not necessarily reliable or correct information. Submissions based solely on AI output may therefore be inaccurate or incorrect.
Ultimately, you are responsible–not the AI–for ensuring that your work is accurate, original, and consistent with the standards of this course. Please carefully evaluate AI responses against course material and, whenever in doubt, don’t hesitate to visit a TA or instructor during office hours. We enjoy discussing the material with you!
Honesty and Generative AI Use
You must properly document and credit the generative AI tools themselves when your use is connected with any assignment in the course. Cite each tool you used, in the form shown below for Copilot. Note: you must include the name of the tool, the URL for the tool, and a brief description of how you used it in relation to the assignment.
Example Generative AI Citation
Microsoft Copilot (UVA licensed version). Accessed from https://copilot.microsoft.com. Generated practice problems similar to the homework assignment to get extra experience before starting on the actual problems. Used Copilot to check my work on the practice problems and provide feedback.
Failure to cite the use of the tool as a source is a serious violation of academic integrity. If you use generative AI tools to complete assignments in this course, in ways that we have not explicitly authorized, we will apply the course’s policies on academic integrity (listed above) appropriate to your specific case. In addition, you must be wary of unintentional plagiarism or fabrication of data. Please act with integrity, for the sake of both your personal character and your academic record.
Illness Policies
In this course, we will diligently follow all University regulations in effect at that time. I may occasionally wear a mask when lecturing and may ask that you wear a mask as well in the classroom, too, as needed. We will interpret wearing a mask as being considerate and caring of others, not that you’re sick.
If you’re not feeling well, for all our safety and health, please stay home and watch the recorded lecture–whether you might think it’s actually a cold or just seasonal allergies. We will ensure that staying home for illness does not impact your grade compared to being in person, so that you can take the time you need to get better, quarantine, and/or isolate. (Some days will not have a lecture recording or may have a Random Encounter. Coming to class and engaging on the days you are not ill will more than offset missing a class or two due to illness.)
Life
Bad things happen. People forget things and make mistakes. Bad days coincide with due dates. etc.
If you believe that circumstances warrant an change in deadline, a second chance, or some other accommodation in order to more accurately synchronize grade with knowledge, come talk to your professor and we’ll resolve the situation as best we can.
Special Circumstances
It is our goal to create a learning experience that is as accessible as possible. If you anticipate any issues related to the format, materials, or requirements of this course, please meet with me outside of class so we can explore potential options. Students with disabilities may also wish to work with the Student Disability Access Center (SDAC) to discuss a range of options to removing barriers in this course, including official accommodations. We are fortunate to have an SDAC advisor, Courtney MacMasters, physically located in Engineering. You may email her at cmacmasters@virginia.edu to schedule an appointment. For general questions please visit the SDAC website: sdac.studenthealth.virginia.edu. If you have already been approved for accommodations through SDAC, please send me your accommodation letter and meet with me so we can develop an implementation plan together.
Since we are a large course, we ask that students with special circumstances let us know as soon as possible, preferably during the first week of class.
Religious Accommodations
It is the University’s long-standing policy and practice to reasonably accommodate students so that they do not experience an adverse academic consequence when sincerely held religious beliefs or observances conflict with academic requirements.
Students who wish to request academic accommodation for a religious observance should submit their request in writing to me as far in advance as possible. If you have questions or concerns about academic accommodations for religious observance or religious beliefs may contact the University’s Office for Equal Opportunity and Civil Rights (EOCR) at UVAEOCR@virginia.edu or 434-924-3200. Accommodations do not relieve you of the responsibility for completion of any part of the coursework missed as the result of a religious observance.
Safe Environment
The University of Virginia is dedicated to providing a safe and equitable learning environment for all students. If you or someone you know has been affected by power-based personal violence, more information can be found on the UVA Sexual Violence website that describes reporting options and resources available – www.virginia.edu/sexualviolence.
The same resources and options for individuals who experience sexual misconduct are available for discrimination, harassment, and retaliation. UVA prohibits discrimination and harassment based on age, color, disability, family medical or genetic information, gender identity or expression, marital status, military status, national or ethnic origin, political affiliation, pregnancy (including childbirth and related conditions), race, religion, sex, sexual orientation, veteran status. UVA policy also prohibits retaliation for reporting such behavior.
If you witness or are aware of someone who has experienced prohibited conduct, you are encouraged to submit a report to Just Report It (justreportit.virginia.edu) or contact EOCR, the office of Equal Opportunity and Civil Rights.
If you would prefer to disclose such conduct to a confidential resource where what you share is not reported to the University, you can turn to Counseling & Psychological Services (CAPS) and Women’s Center Counseling Staff and Confidential Advocates (for students of all genders).
As your professor and as a person, know that we care about you and your well-being and stand ready to provide support and resources as we can. As a faculty member, we are responsible employees, which means that we are required by University policy and federal law to report certain kinds of conduct that you report to me to the University’s Title IX Coordinator. The Title IX Coordinator’s job is to ensure that the reporting student receives the resources and support that they need, while also determining whether further action is necessary to ensure survivor safety and the safety of the University community.
Well-being
If you are feeling overwhelmed, stressed, or isolated, there are many individuals here who are ready and wanting to help. The Student Health Center offers Counseling and Psychological Services (CAPS) for all UVA students. Call 434-243-5150 (or 434-972-7004 for after hours and weekend crisis assistance) to get started and schedule an appointment. If you prefer to speak anonymously and confidentially over the phone, Madison House provides a HELP Line at any hour of any day: 434-295-8255.
Support for Your Career Development
Engaging in your career development is an important part of your student experience. For example, presenting at a research conference, attending an interview for a job or internship, or participating in an extern/shadowing experience are not only necessary steps on your path but are also invaluable lessons in and of themselves. We wish to encourage and support you in activities related to your career development. To that end, please notify us as far in advance as possible (at least one-week in advance of such an event) to arrange for appropriate accommodations.
Student Support Team
At UVA, you have many resources available to you when you experience academic or personal stress, and we understand that it’s hard to know where to go, especially for CS students as our undergraduates span both the College of Arts and Sciences (BACS) and SEAS (BSCS).
In addition to your professor, the Computer Science department has staff members located in Rice Hall who you can contact to help talk through your academic or personal challenges and get you connected to the right resources. You may reach out directly to either SJ Jimènez-Calhoun (smj4z@virginia.edu) or Sheri Grimes (prk2zq@virginia.edu), or visit during walk-in advising hours posted on the CS Advising Site. Please do not wait until the end of the semester to ask for help!
Learning
- Lisa Lampe, Assistant Dean for Undergraduate Affairs, ll4uu@virginia.edu
- Georgina Nembhard, Director of Student Success, gnembhard@virginia.edu
- Courtney MacMasters, Accessibility Specialist, cmacmasters@virginia.edu
- Free tutoring is available for many CS and Engineering classes
- More academic support programs around Grounds for a wide variety of other courses, too
Health and Wellbeing
You may schedule time with the CAPS counselors through Student Health. You are also urged to use TimelyCare for either scheduled or on-demand 24/7 mental health care. If you need immediate assistance, call (434) 243-5150 to speak with an on-call clinician.
Accommodations
Learn about the process of applying for Student Disability Access Center (SDAC) services, completing an online application, submitting documentation, undergoing a review, and attending an appointment to establish accommodations.
Community and Identity
The Center for Connection (The Connect) is a dedicated student space within UVA Engineering that fosters academic success and personal growth. Through its programs and initiatives, The Connect helps students strengthen their engineering identity while providing resources to help them thrive during their studies and beyond. Our work centers on three key areas: student belonging and development, academic support, and community programming grounded in intentional, data-driven strategies.
The Connect features an open study area, a flexible event space, and on-site staff who provide direct support and advising to students. It is part of the Office of Community, Opportunity, and Engagement.
Additional Notes
Syllabus Note: This syllabus is to be considered a reference document that may be adjusted throughout the course of the semester to address necessary changes. This syllabus can be changed at any time without notification; it is up to the student to monitor the website for news of any changes. Final authority on any decision in this course rests with the professor, not with this document.
Research: Your class work and related data might be used for research purposes. For example, we may use anonymized scores from student assignments to compare to other student performance data. Any student who wishes to opt out can contact the instructor or TA to do so after final grades have been issued. This has no impact on your grade in any manner.