Programming
for Interactivity (Introduction to Game Development)
USC School
Cinematic Arts, CTIN 483
Instructor: Peter Brinson
|
Lecture: 10am-1pm Wednesday Lab: 10am-12pm Monday |
Course Description:
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.
Meeting Information:
Lecture: 3 hours (Wednesday)
Lab: 2 hours (Monday)
Units: 4
Evaluation of student performance:
|
Participation (in critiques) and attendance |
10 |
|
Prototype 1 |
10 |
|
Prototype 2 |
10 |
|
Prototype 3 |
10 |
|
Midterm Presentation |
10 |
|
Milestones for Final (2) |
10 |
|
Final Project |
40 |
|
Total: |
100 |
Course content
the role of prototypes
what is code?
varibles and functions
Torque Game Builder (our engine)
Week 2: Methods
callback, console, and custom methods
initialization
if/then
physics (Torque)
Photoshop basics
- Assignment 1 due next week
Week 3: Behaviors (part 1)
* Assignment 1 due (self-deprication)
the behavior as an object
sprite properties
user input (mouse events)
collision basics
types of game events
recursion
Week 4: Behaviors (part 2)
states and flags
user input (keyboard)
dynamic fields
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
feedback
states
sound
paths
- 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
Week 11
get approval on Milestone 1
Week 12
*Milestone 1 due
critique
Week 13
get approval on Milestone 2
Week 14
*Milestone 2 due
critique
Week 15
*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.
Academic Integrity:
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.