CSCI 394 Special Topics:
Game Development
Spring 2012
Meeting Time/Place: MWF 11-11:50am
Fitzelle 310
Prerequisites: CSCI 203 Data Structures; or consent of the instructor
Instructor: Don
Allison
Office: 225
Fitzelle Hall
Phone: (607)
436-3439
Email: allisodl(at)oneonta.edu
Office Hours: MW 2-4
Others by
appointment (or just drop by)
Course Description (from the online catalog):
Possible topics
include Boolean algebra, computer arithmetic, optimization, numerical methods
in ordinary and partial differential equations, automata theory, and artificial
intelligence. May be repeated with new topics.
Course Description (the inside scoop):
This course will look at the various aspects
of game development: the people, the tasks, and the computer science. Students will do several game related
projects in addition to the lectures and exams.
Course Goals:
The
goal of this course is simple: to give students a better understanding and
appreciation of the processes involved in producing a game from start to finish. Students will become familiar with the
different game genres, the roots of computer gaming, and all the parts of the
process involved in developing a large AAA game title.
Text:
The required text for
the course is Steve Rabin’s book, Introduction
to Game Development, 2nd edition, published by Course Technology
in 2010, ISBN-13 978-1584506799. This
book provides an overview of all areas of game development and covers the
curriculum suggested by the IGDA for a game development course.. You should read it
as indicated in the schedule below as we cover the various topics. The book Python
Pocket Reference, 4th edition, by Mark Lutz, published by
O’Reilly in 2009, ISBN-13 978-0596158088 is recommended if you plan to use
Panda3D for your projects. It’s cheap,
small, and a nice reference for Python, which is a useful thing to know in any
case.
Software:
For software, there
are several packages that we might be using depending on how the semester goes,
including Blender, Milkshape, and Maya for modeling,
C4, Panda3D, Torque, CryEngine 3, Unity, Game Maker,
Ogre3D, and Unreal Tournament 3 for game engines, Audacity and Sound Forge for
sound editing and creation, GIMP and Photoshop for image editing and creation,
and so on. We will try to have packages
we can get licenses for available in the lab for you to use.
Tentative Schedule:
|
Week |
Monday |
Tuesday |
Wednesday |
Thursday |
Friday |
|
Jan 23-27 |
New student orientation
and advisement |
Add/Drop begins CLASSES BEGIN |
Australia Day |
Read Part 1 |
|
|
Chinese New Year |
|
||||
|
Jan 30-Feb 3 |
Add/Drop ends |
National Freedom Day |
Groundhog Day Candelmas |
Read Part 2.1 |
|
|
Feb 6-Feb 10 |
May 2012 Undergrad Diploma Fee due |
Last day to add a full semester course Tu B’Shevat |
Boy Scout Day |
|
Read Part 2.2, 7.1-7.2 |
|
Feb 13-Feb 17 |
Valentine’s Day |
|
|
Read Part 7.3-7.6 |
|
|
Feb 20-Feb 24 |
Washington’s Birthday |
Mardi Gras |
TAP Certification begins Ash Wednesday |
|
Read Part 6.1-6.4 |
|
Feb 27-Mar 2 |
|
Leap Day |
May 2012 Masters Diploma
Fee due |
Read Across America EXAM #1 Read Part 6.5-6.9 |
|
|
Mar 5-Mar 9 |
Summer Session
registration begins |
|
|
Purim |
|
|
Mar 12-Mar 16 |
Daylight Saving Time has begun…did you remember to set your
clocks forward? |
|
Interim Progress
Reports Due From Faculty |
|
College closes after last
class Read Part 3.1-3.2 |
|
Mar 19-Mar 23 |
Break |
Break First Day of Spring |
Break |
Break |
Break |
|
Mar 26-Mar 30 |
Classes Resume |
|
|
|
Last day to drop a full semester course Read Part 3.3-3.4 |
|
Apr 2-Apr 6 |
August 2012 Undergrad
Diploma Fee due |
|
|
|
Good Friday Read Part 3.5-3.6 |
|
Apr 9-Apr 13 |
|
Last day for Independent
Study forms |
|
Read 4.1-4.2 |
|
|
Apr 16-Apr 20 |
Last day for students to make up an incomplete grade |
|
|
|
Read 4.3 |
|
Apr 23-Apr 27 |
EXAM #2 Begin
Fall 2012 Preenrollment |
|
Administrative Professionals’ Day |
Last day to withdraw from college |
Read 5.1 |
|
Apr 30-May 4 |
Last day for faculty to change incomplete grades |
May Day |
|
|
Read 5.2 |
|
May 7-May 11 |
Last Day of Classes Follow
Tuesday Schedule National Teachers’ Day |
STUDY DAY |
Final Exams Begin 10TR 8-10:30am 2:30TR 11am-1:30pm 11:30TR 2-4:30pm |
10MWF 8-10:30am 12MWF 11am-1:30pm 1MWF 2-4:30pm |
|
|
May 14-May 18 |
Mothers’ Day was yesterday…did you send flowers? 9MWF 8-10:30am 11MWF 11am-1:30pm 4MW 2-4:30pm |
8:30TR 8-10:30am 1TR 11am-1:30pm 4TR 2-4:30pm |
Final Exams End 8MWF 8-10:30am 2MWF 11am-1:30pm 3MWF 2-4:30pm |
|
Commencement, Saturday, May 19 |
General
Policy Information:
All college policies
will be adhered to, including policies on attendance, academic honesty, etc. Students are expected to be familiar with and
adhere to these policies as outlined in the student handbook, this syllabus,
and other administration publications.
Attendance
Policy:
Attendance is STRONGLY
encouraged. Although it will not enter into
your grade computation directly, I will be taking attendance occasionally,
especially at the beginning of the semester to start putting names with
faces. However, students who attend
class regularly do much better in
their classes than their peers who attend sporadically. You will be responsible for material covered
in class as well as the material in the text. In addition, we will be discussing the exams
and programming projects in class, writing sample code for them, and so on, as well
as answering questions about the assigned material, so it is in your best
interest to attend class as much as possible.
Finally, the college has a requirement that students attend one of the
first two lectures and the first lab for any course or they can be
administratively dropped from the course and their space given to someone
else. Additionally, anyone missing 25%
or more of the class meetings to that point at any time up
through midterm can be involuntarily dropped from the course. Depending on the number of people on the
waiting list for this course, these policies will be enforced more or less
stringently.
Collaboration
Policy:
Cheating or other
academic dishonesty hurts others as well as yourself and will not be
tolerated! However, game development is
ordinarily a collaborative process, and so this course will be somewhat
different from the typical CS course.
All work submitted on the exams should be yours and yours alone. For solo projects, the work you turn in
should be your own, although you can discuss ideas and concepts with other
members of the class. For collaborative
projects, (of course) you will be working in groups. If you divide the project up into parts, you
are to tell me who did each part, so that you give credit to each person for
the ideas and work they contributed.
Programming
Style Guidelines:
Programming style is
an important part of coding, and programs you write for this class will be
expected to follow the style guidelines discussed in class and illustrated by the
programs we write in class. You should
indent your code to reflect its internal structure. You should use block comments to explain what
your code is doing at a high level. Each
function should have a header that gives the function name, the inputs, the
output(s), and lists any side effects, as well as providing a two or three
sentence summary of what the function does.
In addition, your main program file should have a block header similar
to the following:
// CSCI 394 Game
Development, Spring 2012
// Project #4: Game Project
// Author: Don Allison
// Date Due: 7 May 2012
//
// This
is the implementation of the project designed
// in the third project.
Your header should
include the course name and number, the assignment number, your name, the program
due date, and a two or three sentence description of the purpose and function
of the program.
Program
Turn-in Procedure:
To turn in any
project, you should zip up all pieces of it, and email me the zip file with a
subject line like “CSCI 394 Project #2”.
These include any code files, Word files, models, background art,
timelines, etc, etc,
etc. These should be turned in by the
beginning of class on the day they are due.
Make sure you turn in all the required parts!!!
Grading and Other Administrivia:
Exams:
There will be two
exams and a final. Each exam will
contribute 15% of your grade, while the final will contribute 20%.
Programming
Projects:
The programming
projects are an integral part of the course.
There will (hopefully) be four for the semester, letting you practice
with the various aspects of game development.
Each project will be 10% of your grade.
Homework, etc:
The remaining 10% of
your grade will be determined by your grades on homework assignments, class
participation, quizzes, etc.
Grade Computation:
|
|
Weight |
Tentative
Date |
|
Exam
1 |
15% |
2 March |
|
Exam
2 |
15% |
13 April |
|
Final
Exam |
20% |
14 May 11am |
|
Projects
& Homework |
50% |
|
|
Total |
100% |
|
Make-up
Test and Late Assignment Policy:
Assignments are
considered due by class time on their due date, and any turned in after that
time will be considered late. If an assignment is late, it may be turned in
within the next week, with a 50% penalty.
Any assignment more than a week late will not be accepted. All assignments must be turned in by the last
day of classes for them to count toward the course grade. You should plan to be present for all the
tests and the final exam. Any makeups
will be allowed only for legitimate, school-approved excuses, and should be
arranged with the instructor as soon as possible after you discover you can’t
attend the exam (before the exam is given whenever possible). In any case, all work must be completed by
the last class, including any makeup exams.
Exams missed for unexcused absences, or exams not made up by the last
day of classes will be recorded as a zero grade.
Additional Resources:
There are many
interesting and useful resources available for those interested in game
development. Some of the ones you might
be interested in that are in our library are:
QA76.76.C672 T4963
2011 Game Engine Design and
Implementation, by Alan Thorn
QA76.73.C154 S38
2011eb C# Game Programming For
Serious Game Creation, Daniel Schuller
QA76.76.C672 H342
2010 The Game Maker’s Companion,
Jacob Habgood
QA76.76.C672 L247
2009eb Fundamentals of Network Game
Development, Guy Lecky-Thompson
QA76.76.C672 G65
2009eb Unity Game Development
Essentials, Will Goldstone
QA76.76.C672 H3519
2008eb Advanced 2D Game Development,
Jonathan Harbour
QA76.76.C672 S77
2008eb Creating Game Art for 3D
Engines, Brad Strong
QA76.76.C672 S5355
2008eb Game Graphics Programming, Allen
Sherrod
QA76.76.C672 M367
2007eb Beginning Game Development with
Python and Pygame from Novice to Professional
QA76.76.C672 B43
2006eb Developing Serious Games,
Bryan Bergeron
QA76.76.C672 H368
2006eb The Game Maker’s Apprentice,
Jacob Habgood
QA76.76.C672 B97
2005eb Game Level Design, Edward
Byrne
QA76.76.C672 Z47
2004eb 3D Game Engine Programming, Stefan Zerbst
QA76.76.C672 F56
2004eb 3D Game Programming All in
One, Kenneth Finney
QA76.76.C672 R55
2004eb Game Programming with Python,
Sean Riley
QA76.76.C672 M33
2003eb Beginning Game Audio
Programming, Mason McCuskey
QA76.9.D35 P46 2003eb Data Structures for Game Programmers,
Ron Penton
QA76.76.C672 M53
2003eb The
Indie Game Development Survival Guide, David Michael
QA76.76.C672 B45 2008 The Best of Bame Programming Gems, Mark DeLoura
These are just a few
of the many good books out there, and aren’t even the complete collection the
library has. Explore our library—it’s an
incredible resource. And if you would
like other specific recommendations, don’t hesitate to ask.
Additional Unique Aspects of the Course:
This course is very hands
on, and illustrates the application of many areas of computer science. Students learn about game development by
doing it, and the course grading system reflects this emphasis.
Emergency
Evacuation:
The Evacuation
Assembly Area for this course is in the quad, 50 feet from the building. In case a prolonged building evacuation is
required, you will be directed to the building Evacuation Site. The Evacuation Site for this class is Fine
Arts theater.
In any case, if a building evacuation occurs, stay together as a class
so that we can determine that everyone has made it safely from the
building. Evacuation is to occur any
time the fire alarm sounds, an evacuation announcement is made, or a university
official orders you to evacuate the building.
After the building has been evacuated, it is not to be re-entered until
University Police gives permission.