代做CMPM 121 - Game Development Patterns Spring 2025

2025-05-17 代做CMPM 121 - Game Development Patterns Spring 2025

CMPM 121 - Game Development Patterns

Quarter: Spring 2025

COURSE INFORMATION

In this course, we will discuss how to build and organize large software projects in a way that will feel friendly and familiar to designers and programmers who have never seen it before. One aspect for doing this is the use of familiar tropes, or design patterns, which we will talk about in this class.

Another is to avoid anti-patterns, which we also be covering.

To provide you with hands-on experience in working on a (somewhat) large-scale project, you will be adding different "modules" to a game throughout the quarter. The first 3 of these modules will be done in teams of two, while the last (and largest) will be done in teams of 4.

LEARNING OUTCOMES

By the end of this class students should be able to:

1. Describe what software design patterns are and why they are useful

2. Define and apply the covered design patterns in an implementation

3. Analyze given software design problems and identify suitable design patterns

4. Apply software engineering practices when developing software

5. Identify code structure problems in their own and other people's code

6. Apply refactoring techniques to resolve code structure problems

PREREQUISITES/COREQUISITES

Course CMPM 120 (Game Development Experience) is a prerequisite. Game Development Patterns builds upon the game programming knowledge students develop in CMPM 120, and expects entering students to have substantial expertise writing game software for a 2D  framework in a high-level language.

Experience using Unity is a plus, but not required.

REQUIRED MATERIALS, TEXTBOOKS AND TECHNOLOGY

This class has no set textbook, but it makes extensive use of readings available on the web.  The readings include blogs, videos of game play, conference talks, and primary research articles.

Two textbooks that may sometimes appear as a reference are:

· Robert Nystrom: Game Programing Patterns (freely available online (https://gameprogrammingpatterns.com/))

· Martin Fowler: Refactoring Improving the Design of Existing Code (website (https://refactoring.com))

COMMUNICATION

Our primary communication platform. for the class will be Discord. However, as Discord is owned by a private entity not affiliated with the university, please keep all confidential communication (grades, DRC accommodations, medical absences, etc.) to email: [email protected] (mailto:meger@ucsc.edu)

ASSIGNMENTS & ASSESSMENT GRADING POLICY

We are here to learn, not to get or give a grade. Grading is a necessity of the systems in which we operate, and I will try to make it work for your learning, not the other way around.

The course is structured so that you can earn up to 100 points:

· Assignment 0 (Unity tutorial): 5 points

· Assignments 1-3: 3*15 points = 45 points

· Assignment 4a (getting started): 5 points

· Assignment 4: 25 points

· Reading quizzes: 20 points

The points will then be converted to letter grades according to the standard grading scale: A+ 97-100

A 93-96.9        B 83-86.99         C 70-76.99    A- 90-92.99        B- 80-82.99        D 60-69.99 B+ 87-89.99        C+ 77-79.99        F < 60