|Introduction to Game Development
USC School Cinematic Arts, CTIN 483
Instructor: Peter Brinson
Lecture: 10am-1pm Wednesday
Lab: 10am-12pm Monday
This production class is focused on developing 2D games. As a core course for Interactive Media undergraduates, students will learn the art of creating the digital game prototype - a practice they will hone throughout their time in the program. Although students are encouraged to take classes in computer science, this semester begins with the fundamentals of procedural programming before introducing object oriented programming.
There are three major reasons students of game design learn to program. First, in games there is no written word equivalent to the screenplay. With cinema, the screenplay is an excellent beginning in conceptualizing a film so that all members involved can participate in preproduction with a shared understanding of the goals and potential pitfalls of the final piece. The central form for preproduction in games is the digital prototype. A concise and clear prototype provides an excellent template from which to engage collaborators, to discover unexpected play patterns, and to receive constructive criticism. If and when such a core game idea is proven to be engaging and interesting, the designer can move forward with confidence when forming a team and spending resources.
The second reason the game design student learns to program is to understand – at least in broad terms – what the programmers on a team do on a day to day basis. This is essential for facilitating communication among team members.
Finally, the rules sets, patterns, and behaviors found the game experience are a direct reflection of the algorithms and logic of the code itself. Not just a technical means to an end, computer programming is an artform that informs the software‘s aesthetic experience for the user.
In CTIN 483, students will work on projects as individuals in preparation for CTIN 484 in which they work in pairs. During the semester, students will develop 3 prototypes, one (final project) complete game, and a mid-term group (non-technical) presentation.
We will use the game engine Torque Game Builder, which provides a number of editors, game-relevant methods, as well as its own programming language, Torquescript.
For all projects, students are encouraged to experiment with game tropes. Although student games need to satisfy the minimum technical requirements, the primary grading criteria is based on creative merit – in particular, a demonstrated exploration of experimental mechanics, a blending of genres, or a focus on challenging themes.
To that end, we will discuss the history and practice of games relevant to the prototypes developed early in the semester. We will study relevant topics including game time vs. real time, player/camera perspective, multiplayer roles, perfect vs. imperfect information, real world physics simulation, and cybernetic systems.
A good prototype is literally an experiment; it asks questions about game design. More often than not, prototypes prove that a given design direction is not viable or worth further pursuit, and such an outcome is a valuable failure. Obviously, the ultimate goal – this semester and after - is to develop innovative and compelling prototypes.
Lecture: 3 hours (Wednesday)
Lab: 2 hours (Monday)
Evaluation of student performance:
Participation (in critiques) and attendance
Milestones for Final (2)
Week 1: Introduction/Overview
the role of prototypes
what is code?
varibles and functions
Torque Game Builder (our engine)
Week 2: Methods
callback, console, and custom methods
- Assignment 1 due next week
Week 3: Behaviors (part 1)
* Assignment 1 due (self-deprication)
the behavior as an object
user input (mouse events)
types of game events
Week 4: Behaviors (part 2)
states and flags
user input (keyboard)
start on Tutorial C
- Assignement 2 due next week
Week 5: Narrative Patterns
*Assignment 2 due (a personal dilemma)
offscreen space as a narrative opportunity (for Assignment 3)
review of Tutorial C
spawning sprites and behaviors
individual help on Assignment 2
Week 6: Cybernetic Systems
- Assignment 3 due next week (work on it now)
Week 7: Genre
*Assignment 3 due (maze experiment)
work in groups on presentation
Week 8: Presentations
*Presentation Assignment (hybrid genre)
Week 9: Proposal
present final project proposal
Week 10: Begin Final Project
work in class on final
get approval on Milestone 1
*Milestone 1 due
get approval on Milestone 2
*Milestone 2 due
*Final Project due
Missing an Assignment Deadline, Incompletes:
The only acceptable excuses for missing an assignment deadline or taking an incomplete in the course are personal illness or a family emergency. Students must inform the professor before the assignment due date and present verifiable evidence in order for a make-up to be scheduled. Students who wish to take incompletes must also present documentation of the problem to the instructor or teaching assistant before final grades are due.
Note for students with disabilities:
Any student requesting academic accommodations based on a disability is required to register with Disability Services and Programs (DSP) each semester. A letter of verification for approved accommodations can be obtained from DSP. Please be sure the letter is delivered to us as early in the semester as possible. DSP is located in STU 301, and is open 8:30am5:00pm Monday through Friday. The phone number for DSP is (213) 740-0776.
The School of Cinematic Arts expects the highest standards of academic excellence and ethical performance from USC students. It is particularly important that you are aware of and avoid plagiarism, cheating on exams, submitting a paper to more than one instructor, or submitting a paper authored by anyone other than yourself. Violations of this policy will result in a failing grade band be reported to the Office of Student Judicial Affairs. If you have any doubts or questions about these policies, consult “SCAMPUS” and/or confer with the instructor.
Programming for Interactivity
USC School of Cinematic Arts, CTIN 483