📜 Syllabus
LOCATION: Broad 4230
TIME: Tuesdays and Thursdays, 9 a.m. - 11:50 a.m.
INSTRUCTOR
Office hours: Thursdays 12 p.m. - 1 p.m., by appointment only.
Email: huazzers@g.ucla.edu
TEACHING ASSISTANT
Office hours: Tuesdays 12 p.m. - 1 p.m., by appointment only.
Email: elliotbyu@g.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 28 Interactivity
- 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
Design modular or procedural algorithms to create random/unique/dynamic behaviours, environments, and characters in Unity.
Week 1-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, gamepad mapping tools to design environments and mechanics for interactive gameplay.
Week 3-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 Alt-Game Engine Jam(s) -- Make an entire game in a single class.
Unit 3: Engine for Expression
Using dialogue systems, inventory data, and cinematic affordances of the game engine to stage and contextualise your play experiences.
Week 7-10 Cinematic Tools, Interactive Text, Inventory Databases
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 and Homeplay responses: 15%
- Participation: 20%
Optional Extra credit: Attend a Game Lab event, or any other guest talk, art exhibition, or performance related to games and interactive media, and tell me about your experience!
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 DeliverablesDid you submit your project files and documentation?
- Fulfilment of Project RequirementsDoes your project meet the intended direction and 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 / resourcefulnessAre you pushing the limits of the tools and making full use of the possibilities they offer? Hacky solutions and unconventional "misuse" are perfectly acceptable and encouraged!
Readings / Homeplays
Reading and homeplay responses will be assigned according to conceptual and technical topics covered in class, and are designed to support early ideation stages for each respective project assignment.
These are graded pass/fail -- if you did the work, you will get full credit.
Participation:
Participation will be evaluated based on the following:
- Attendance
- Participation in class discussion / critique
- Active communication with TA and instructor in course-related matters, including project discussions and attendance notices
- Staying on task during in-class work periods
Attendance Policy
If you are more than 5 minutes late to class (ie. 9:05 a.m.), you will be marked as late.
Two late marks results in an unexcused absence.
Unexcused absences will lower your grade. More than three (>3) unexcused absences will result in an automatic fail, and must be addressed on a case-by-case basis.
Any attendance-related disputes should be discussed with the TA within a week.
If you anticipate being late or absent, you should inform me AND the TA before class begins. It is also your responsibility to arrange alternative plans with me and the TA for any work you've missed from being absent (eg. attending office hours, sharing project updates, etc.)
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.
If you anticipate that you won’t be able to complete the work by the due date, please contact the instructor before the due date so we can discuss options.
Appropriation, Fair Use, and Generated Content
Although generative AI, template projects, and readymade assets can offer seemingly more "professional" results quickly, your purpose here to learn, and the best way to learn is to do it yourself or make things with others around you. So even if it means spending more time getting less done, or making mistakes along the way, I strongly advise against using any shortcuts while you're in this class.
You are also expected to develop your own assets for project submission -- use this opportunity to explore the resources available to you.
The bottom line:
- No prompt-generating code from scratch -- we can tell.
-
If you're going to use generative tools, template projects, or readymade assets in your submission:
- consult the instructor or TA beforehand, and be able to justify your decision in doing so;
- cite your sources in your project submission. Failure to cite any major use of such resources will be considered an academic integrity violation and evaluated accordingly.
-
Placeholder assets are okay during early stage prototypes for testing mechanics.
- All submitted projects should be original and developed within the duration of this class.
- If you have technical questions:
- ask the instructor or TA in class, through email, or book office hours;
- ask your peers during work time or outside of class -- I recommend setting up a group chat or discord server where you can share resources and troubleshoot questions together;
- browse manuals, community forums, and tutorials created by other practicing developers.
Resources
Readings / Homeplays
All assigned readings and homeplay projects will be provided for you -- no need to purchase textbooks for this class.
Required Tools
- Unity and Visual Studio / Visual Studio Code (Mac)
- A three-button mouse -- always bring your mouse to class!
- 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.
Other Recommended Resources
For Making Project Assets
- 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.
C# scripting and Unity development
- Unity documentation -- Scripting Reference and Editor Manual.
- Community Forums -- Stack Exchange, Unity Discussions.
- YouTube. Here are a few channels that are usually pretty good.
- Unity’s official channel
- Game Maker’s Toolkit
- Code Monkey
- Brackeys (no longer updated)
- 3 Minute Game Design
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.
Know your Rights - ICE on Campus
This classroom is a place that honors the experiences of all students regardless of nationality, immigration status, or other factors. I understand that this quarter is likely to be a particularly challenging time for students navigating issues related to immigrant and international student rights. I pledge instructional flexibility including flexible deadlines, online documentation of course materials, and options for remote participation. You do not need to disclose your immigration or visa status to me to access these flexibilities. If you would like to request these accommodations, just let me know.
Students who have concerns about their legal rights as immigrants or international students may seek resources via the Undocumented Students Program, IDEAS, and the Dream Resource Center. You may also approach me for advice or help connecting to these resources. In particular, the Undocumented Student Program Legal Services provides legal advice and representation for undocumented UC students or UC students with undocumented family members. You can reach Gina Pech, the Supervising Attorney for the Legal Services Team at gpech@saonet.ucla.edu. If you are detained, or need urgent immigration related legal counsel, you may call Ms. Pech at 424-832-0977.
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.