đź“ś Syllabus
Fall 2024
Broad 4240
Tuesdays and Thursdays, 2 p.m. - 4:50 p.m.
INSTRUCTOR - Hua Chai (he/they)
Office hours: By appointment only; Thursdays, 12:30 p.m. - 1:30 p.m. @ Game Lab (Broad 3252)
Email: huazzers@g.ucla.edu
TEACHING ASSISTANT - Sagan Yee (he/they)
Office hours: By appointment only; Tuesdays, 12:30 p.m. - 1:30 p.m. @ Game Lab (Broad 3252)
Email: saganyee@ucla.edu
Course Description
This course introduces the fundamentals of programming interactive projects in game development software.
Classwork focuses on familiarizing students with game engines, computer programming concepts, player experience, and other skills that are foundational to making digital games.
Lectures, exercises, and class projects teach skills needed to create digital games including custom rules, interactive physics systems, vectors, generative or randomized levels, save data, custom input systems, score-keeping, and sound.
This course is offered in parallel with the concurrent courses, Game Design and Interactive Animation.
Course Prerequisites
- DESMA 24 Motion
- DESMA 101 Media Arts Introduction / DESMA 104 Design Futures
This course will be heavy on C# scripting in Unity scripting API. If you haven't fulfilled the above pre-requisites but have prior experience in either writing code or using the Unity game engine, please let me know.
Learning Outcomes
By the end of this course, you will be able to create a real-time, interactive software with custom rules, generative or randomized levels, save data, responsive controls, physics, sound, and simple animation. The skills you will learn in this class translate well to immersive media, generative animation, and other modes of human-computer expression.
Course Outline
Unit 1: Generative Computation
Using generative design to create random/unique/dynamic ecosystems, worlds, characters, and events in Unity.
Week 0-3 Intro to Unity Game Engine and C#, Vector fundamentals, Prefabs and Instantiation, Arrays and Randomness, UI
Project 1: Auto-Generator
Unit 2: Playing with Physics
Using physics, math, and other game engine tools to design environments and mechanics for interactive gameplay.
Week 4-6 Level Design, Input Systems, Physics Simulations, Static Variables and Singletons, Sound, Coroutines, Persistent Data
Project 2: Ball Game Remix
Intermission: Alt-Engines
Explore other tiny game engines!
Week 7 Micro Game Jam(s) -- Make an entire game in a single class.
Unit 3: Save && Scene
Using dialogue systems, inventory data, and cinematic affordances of the game engine to stage and contextualise your play experiences.
Week 8-10 Cinemachine, Interactive Fiction, Inventory and Collections
Project 3: Zine Game
Assignments and Grading
See How To Submit on instructions for submitting Unity projects
Course Breakdown
- Project 1: 15%
- Project 2: 25%
- Project 3: 25%
- Reading / Homeplay responses: 15%
- Participation / Attendance: 20%
Evaluation Criteria
Projects
Considering the likelihood that everyone is coming in with different skillsets and coding experiences, the expectation for this class is that you approach each project with your own level of skill and comfort in mind. Design a project for yourself that pushes your technical skills a little bit, but also allows you to lean into your existing strengths and practices.
We will evaluate your projects based on:
- Timely submissionDid you submit your project on time? (see Late Work for more details.)
- Completion of Project DeliverablesDoes your project meet the requirements of the assignment?
- Attention to detail and craftDoes the project run? Are there unintended bugs, glitches, etc.
- Project scope / aesthetic and technical ambitionAre you doing the bare minimum, or are you pushing yourself technically and/or aesthetically?
- Creative risk-taking and resourcefulnessAre you pushing the limits of the tools? Hacky solutions are perfectly acceptable and encouraged!
Readings / Homeplays
You will be assigned occasional readings and games that are related to this course, accompanied by a questionnaire for you to complete and bring to class. These are graded pass/fail -- if you did the work, you will get full credit.
Participation / Attendance
This is an in-person course, so please come to class on time. We will be covering a lot of content quickly, so it is very important that you are present for each day.
If you are more than 15 minutes late, you will be marked as late. Three late marks results in an unexcused absence. Any disputes should be discussed with the TA within two weeks
If you anticipate having to miss class, email the TA prior to the class. Absences will not be excused after the fact, except in extreme circumstances. You get one unexcused absence before it starts affecting your grade. Each unexcused absence that follows will result in one full letter grade deduction from your participation score.
Your participation grade will also be determined by your level of engagement in class. If you seem disengaged or are disruptive in class, we will reach out and discuss the matter with you. If a pattern of disruption or disengagement continues, we will be taking note and it will be reflected in your grade.
Other assignment-related rules
Late Work
On the day the project is due:
- Projects should be ready to play prior to the beginning of class.
- Project files and documentation should be submitted by 11:59PM the same day.
After the due date, a full letter grade will be deducted from the project grade for each class day that the assignment is late.
If you anticipate that you won’t be able to complete the work by the due date, please contact us before the due date so we can discuss options.
Appropriation, Fair Use, and Generated Content
You should strive to develop your own assets for your project submissions.
The use of existing prompt-based AI generation programs, including but not limited to ChatGPT, DALLE, Stable Diffusion, and Midjourney, is not allowed in this class. You may consider this to be one of the limitations of this class -- you are here to learn a specific set of technical skills, and the most advisable way to engage with this course is to not use these programs at all. There are many other reliable solutions and resources available to you, please use this opportunity to explore them.
If you're planning to borrow or generate assets from somewhere else, you must consult the instructor beforehand AND be able to justify your decision for doing so. While developing early stage prototypes and testing mechanics, it is acceptable to use placeholder assets.
No credit will be awarded for plagiarised work. All submitted projects should be original and developed within the duration of this class. Remember to acknowledge / cite your tools and sources appropriately in your submission.
Resources
Readings / Games
All assigned readings and games will be provided for you -- no need to purchase textbooks for this class. (see Readings & Homeplays for more details.)
Required Tools
- Unity -- Please install Unity Hub and get the latest LTS version of Unity Editor (currently 2022.3.43f1). Other editor versions may differ slightly from each other, but anything 2021 or later should be ok.
- Visual Studio -- Install Microsoft Visual Studio or Visual Studio Code, you should have the option to do this when installing Unity.
Recommended Tools
2D and 3D production software of your choice:
- Krita -- professional free and open source digital paint tool.
- Blender -- powerful free and open source 3D art and animation tool.
- Piskel -- free pixel art app.
- Aseprite -- inexpensive pixel art and animation tool.
- Sculptris -- “A gateway into the exciting world of 3D.”
- Crocotile 3d -- A tool for creating 3d scenes with 2d tiles.
- Mixamo -- Free, but requires a login. Includes community sourced walk cycles and 3D animations which you can apply to any model that can T-pose.
Audio resources:
- freesound.org -- audio database that has search filters sorted by licenses. login required for downloading files. good source for adding sound effects and music to your projects.
- Audacity -- free software for recording and editing audio; the version without Muse Hub should suffice for your purposes.
For more asset creation tools, check out this exhaustive list of cheap and free tools compiled by Everest Pipkin.
Additional resources for C# scripting and Unity development:
- Unity documentation -- Scripting Reference and Editor Manual.
- Community Forums -- Stack Exchange, Unity Discussions.
- Learn C# in One Day and Learn it Well by Jamie Chan.
Campus-wide resources and information
Land Acknowledgement
The University of California, Los Angeles occupies the ancestral, traditional, and contemporary Lands of the Tongva and Chumash peoples. Our ability to gather and learn here is the result of coercion, dispossession, and colonization. We are grateful for the land itself and the people that have stewarded it through generations. While a land acknowledgment is not enough, it is the first step in the work toward supporting decolonial and indigenous movements for sovereignty and self-determination. Read more about what land you’re occupying: https://native-land.ca/
Other resources on land repatriation:
- UCLA Mapping Indigenous LA -- an online archive of a storymapping research project about indigenous Los Angeles peoples, histories, and geographies from past and present.
- California History (Winter 2023), Respecting the Ancestors: On Repatriating American Indian Remains -- 2023 essay report on the history of repatriating indigenous peoples remains (mostly a lack thereof), including UC-specific case studies.
- Decolonization is not a metaphor -- article on what is unsettling about decolonisation as a caution against the loose use of the term in advocacy and scholarship.
Commitment to Diversity & Safer Spaces
We understand the classroom as a space for practicing freedom; where one may challenge psychic, social, and cultural borders and create meaningful artistic expressions. To do so we must acknowledge and embrace the different identities and backgrounds we inhabit. This means that we will use preferred pronouns, respect self-identifications, and be mindful of special needs. Disagreement is encouraged and supported, however our differences affect our conceptualization and experience of reality, and it is extremely important to remember that certain gender, race, sex, and class identities are more privileged while others are undermined and marginalized. Consequently, this makes some people feel more protected or vulnerable during debates and discussions. A collaborative effort between the students, TA, and instructor is needed to create a supportive learning environment. While everyone should feel free to experiment creatively and conceptually, if a class member points out that something you have said or shared with the group is offensive, avoid being defensive; instead approach the discussion as a valuable opportunity for us to grow and learn from one another. Alternatively, if you feel that something said in discussion or included in a piece of work is harmful, you are encouraged to speak with the instructor or TA.
(Statement adopted from voidLab at https://github.com/voidlab/diversity-statement)
COVID-19
It is important that everyone stay safe and avoid coming to class if you have any concerns about your health status.
If you find that external struggles and/or COVID related challenges are affecting your ability to attend class, please reach out to us. We want you to be successful in the class, but we care about your well-being more than anything else. Open communication with us is most important in this regard, please let us know if you're sick and/or require additional accommodations.
Students must adhere to the current campus directives related to COVID-19 mitigation, and refusal to do so may result in the student being asked to leave the classroom or referred to the Dean of Students. For more information about COVID-19 requirements on campus, please visit: https://covid-19.ucla.edu/information-for-students/.
Center for Accessible Education (CAE)
The UCLA Center for Accessible Education (CAE) is responsible for ensuring students with documented disabilities have access to an inclusive, supportive learning environment. Students with disabilities or other needs requiring academic accommodations should speak with me as early in the quarter as possible to be sure they get the support they need.
Students needing academic accommodations based on a disability should contact the Center for Accessible Education (CAE) at (310) 825-1501 or in person at Murphy Hall A255. When possible, students should contact the CAE within the first two weeks of the term as reasonable notice is needed to coordinate accommodations. For more information visit www.cae.ucla.edu.
Academic Integrity and Information on Student Conduct
UCLA is a community of scholars. In this community, all members including faculty, staff and students alike are responsible for maintaining standards of academic honesty. As a student and member of the University community, you are here to get an education and are, therefore, expected to demonstrate integrity in your academic endeavors. You are evaluated on your own merits. Cheating, plagiarism, collaborative work, multiple submissions without the permission of the professor, or other kinds of academic dishonesty are considered unacceptable behavior and will result in formal disciplinary proceedings usually resulting in suspension or dismissal. As specified in the UCLA Student Conduct Code, violations or attempted violations of academic dishonesty include, but are not limited to, cheating, fabrication, plagiarism, multiple submissions or facilitating academic dishonesty. When a student is suspected to have engaged in academic dishonesty, Academic Senate regulations require that the instructor report the allegation to the office of the Dean of Students. For more information, see the UCLA Student Conduct Code.
TITLE IX
UCLA prohibits gender discrimination, including sexual harassment, domestic and dating violence, sexual assault, and stalking. If you have experienced sexual harassment or sexual violence, there are a variety of resources to assist you.
Confidential Resources
You can receive confidential support and advocacy at the CARE Advocacy Office for Sexual and Gender-Based Violence, 1st Floor Wooden Center West, CAREadvocate@careprogram.ucla.edu, (310) 206-2465. Counseling and Psychological Services (CAPS) also provides confidential counseling to all students and can be reached 24/7 at (310) 825-0768.
Non-Confidential Resources
You can also report sexual violence or sexual harassment directly to the University’s Title IX Coordinator, 2241 Murphy Hall, titleix@conet.ucla.edu, (310) 206-3417. Reports to law enforcement can be made to UCPD at (310) 825-1491. These offices may be required to pursue an official investigation.
Faculty and TAs are required under the UC Policy on Sexual Violence and Sexual Harassment to inform the Title IX Coordinator—A NON-CONFIDENTIAL RESOURCE—should they become aware that you or any other student has experienced sexual violence or sexual harassment.
Psychological Health, Well-Being and Resilience
UCLA is renowned for academic excellence, and yet we know that many students feel overwhelmed at times by demands to succeed academically, socially and personally. Our campus community is committed to helping all students thrive, learn to cope with stress, and build resilience. Remember, self-care is a skill that is critical to your long-term success. Here are some of the many resources available at UCLA to support you:
- Counseling and Psychological Services (CAPS): https://www.counseling.ucla.edu/ Provides counseling and other psychological/mental health services to students. Walk-in hours are Monday-Thursday 8am-4:30pm and Friday 9am-4:30pm in John Wooden Center West. Crisis counseling is also available 24 hours/day at (310) 825-0768.
- Ashe Student Health and Wellness Center: http://www.studenthealth.ucla.edu Provides high quality and accessible ambulatory healthcare and education by caring professionals to support the academic success and personal development of all UCLA students.
- Healthy Campus Initiative (HCI): https://healthy.ucla.edu Provides links to a wide variety of resources for enhancing physical and psychological well-being, positive social interactions, healthy sleep, healthy eating, healthy physical activity and more.
- Campus and Student Resilience: https://www.resilience.ucla.edu/ Provides programs to promote resilience and trains students to help support their peers.
- UCLA Recreation: https://www.recreation.ucla.edu/ Offers a broad array of services and programs including fitness, yoga, dance, martial arts, meditation, sports, and much more.
- Equity, Diversity and Inclusion: https://equity.ucla.edu/ Committed to providing an equal learning, working and living environment at UCLA and supports a range of programs to promote these goals campus-wide.
- UCLA GRIT Coaching Program: https://www.grit.ucla.edu/ GRIT stands for Guidance, Resilience, Integrity and Transformation. In this program, UCLA students receive individualized support from trained peer coaches to manage stress, foster positive social connections, set goals, and navigate campus resources.
Resources for Students Dealing with Financial Stress
- Economic Crisis Response: https://www.studentincrisis.ucla.edu/Economic-Crisis-Response provides support and guidance to students who have self-identified, or are identified by UCLA faculty or staff, as experiencing a financial crisis that impacts their academic success at UCLA.
- Bruin Shelter: http://www.bruinshelter.org/ provides a safe, supportive environment for fellow college students experiencing homelessness by fostering a collaborative effort between universities, community-based organizations, and service providers.
- The CPO Food Closet: http://www.cpo.ucla.edu/cpo/foodcloset/ provides free food for any UCLA student who may be experiencing hunger and/or struggling to attain food due to financial hardships.