CSCI 394 Special Topics:
Game Development
Fall 2014
Meeting Time/Place: MWF 1-1:50pm Fitzelle
203
Prerequisites: CSCI 203 Data Structures; or consent of the instructor
Instructor: Don
Allison
Office: Fitzelle 231
Phone: (607)
436-3439
Email: allisodl(at)oneonta.edu
Office Hours: M 5-7pm, W 6-7pm, F 4-7pm
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.
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:
|
Monday |
Tuesday |
Wednesday |
Thursday |
Friday |
August 25-29 |
Classes begin Add/drop begins Kiss and Make Up Day |
National Dog Day Women’s Equality Day |
Global Forgiveness Day Just Because Day |
Race Your Mouse Day |
College closes after last class More Herbs, Less Salt Day |
Sept 1-5 |
Labor day…admin offices
closed |
Classes resume National Beheading Day |
Skyscraper Day |
Newspaper Carrier Day |
Be Late for Something Day Cheese Pizza Day |
Sept 8-12 |
Last day to add a full semester course Pardon Day National Date Nut Bread Day |
Teddy Bear Day |
Sewing MachineDay Swap Ideas Day |
Patriot Day Make Your Bed Day No News Is Good News Day |
National Video Games Day Chocolate Milk Shake Day |
Sept 15-19 |
Make a Hat Day Felt Hat Day |
Mayflower Day National Play Doh Day Collect Rocks Day Working Parents Day |
Constitution Day Citizenship Day National Apple Dumpling Day |
National Cheeseburger Day |
National POW/MIA Recognition Day International Talk Like a Pirate
Day |
Sept 22-26 |
TAP certification begins Business Women’s Day Elephant Appreciation Day |
Fall Equinox Checkers Day Dog in Politics Day |
National Cherries Jubilee Day |
National Comic Book Day |
Rosh Hashana Johnny Appleseed Day |
Sept 29-Oct 3 |
Confucius Day |
National Mud Pack Day |
World Vegetarian Day |
National Custodial Worker Day Name Your Car Day |
Techies Day World Smile Day Virus Appreciation Day |
Oct 6-10 |
Child Health Day Mad Hatter Day Physician Assistant day |
Bald and Free Day |
American Touch Tag Day Emergency Nurses Day |
First Day of Sukkot Leif Erikson Day Curious Events Day Fire Prevention Day Moldy Cheese Day |
College closes after last class World Egg Day National Angel Food Cake Day |
Oct 13-17 |
Columbus Day International Skeptics Day |
National Dessert Day |
Classes resume Last Day of Sukkot White Cane Safety Day EXAM #1 |
Interim progress reports due Shmini Atzeret Boss’s Day Dictionary Day |
Simchat Torah Wear Something Gaudy Day |
Oct 20-24 |
Brandied Fruit Day |
Babbling Day Count Your Buttons Day |
National Nut Day |
Diwali/Deepavali National Mole Day TV Talk Show Host Day |
Last day to drop a full semester class National Bologna Day United Nations Day |
Oct 27-31 |
Navy Day |
Plush Animal Lover’s Day |
Hermit Day National Frankenstein Day |
National Candy Corn Day |
Halloween Frankenstein Friday Increase Your Psychic Powers Day |
Nov 3-7 |
Daylight Saving Time ended yesterday—did you set your
clocks back???? SandwichDay Housewife’s Day |
King Tut Day Election Day |
NY Election Day Guy Fawkes Day Gunpowder Day EXAM #2 |
Saxophone Day |
Bittersweet Chocolate with
Almonds Day |
Nov 10-14 |
Begin spring preenrollment USMC Day Forget-Me-Not Day |
Veteran’s Day Young Readers Day |
Chicken Soup for the Soul Day |
Sadie Hawkins Day World Kindness Day |
Operating Room Nurse Day |
Nov 17-21 |
Last day to make up incompletes Electronic Greeting Card Day Homemade Bread Day Take a Hike Day World Peace Day Video Game Trade Expo |
|
Have a Bad Day Day |
Great American Smokeout Universal Children’s Day Absurdity Day Beautiful Day |
False Confession Day World Hello Day |
Nov 24-28 |
|
College closes after last class Last day to withdraw or take a leave of absence National Parfait Day |
BREAK Shopping Reminder Day |
BREAK Thanksgiving Day Pins and Needles Day |
BREAK Black Friday Buy Nothing Day Make Your Own Head Day Red Planet Day You’re Welcome Day |
Dec 1-5 |
Classes resume Cyber Monday Eat a Red Apple Day |
National Fritters Day |
National Roof over Your Head Day |
Santa’s List Day |
Bathtub Party Day Repeal Day |
Dec 8-12 |
Last day to turn in incomplete grades Last day of class Feast of the Immaculate Conception National Brownie Day Take it in the Ear Day |
Study day Christmas Card Day National Pastry Day |
Final Exams Begin 8-10:30am MWF 10 11am-1:30pm
MWF 12 CSCI
100 Section 1 2-4:30pm MWF 1 CSCI 394 Human Rights day |
8-10:30am TR 10 11am-1:30pm TR 2:30 2-4:30pm TR 11:30 National Noodle Ring Day |
8-10:30am MWF 9 11am-1:30pm
MWF 11 CSCI
100 Section 6 2-4:30pm MW 4 Feast of Our Lady of Guadalupe National Ding-a-Ling Day |
Dec 15-19 |
8-10:30am MWF 8 11am-1:30pm
MWF 2 CSCI
203 2-4:30pm MWF 3 CSCI 243 Bill of Rights Day National Lemon Cupcake Day |
Final Exams End 8-10:30am TR 8:30 11am-1:30pm TR 1 2-4:30pm TR 4 National Chocolate Covered Anything Day |
Chanukah/Hanukkah (first day) Wright Brothers Day National Maple Syrup Day |
Bake Cookies Day NationalRoast Suckling Pig Day |
Look for an Evergreen Day Oatmeal Muffin Day |
http://www.holidayinsights.com/moreholidays/
http://www.timeanddate.com/holidays/us/
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, Fall 2014
// Project #4: Game Project
// Author: Don Allison
// Date Due: 1 December 2014
//
// 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 12.5% 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% |
29 September |
Exam
2 |
15% |
5 November |
Final
Exam |
20% |
10 December 2pm |
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 the
hallway of IRC. 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.