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

Background email assignment due

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

Project 1 Due

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

Project 2 Due

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

Project 3 Due

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

Project 4 Due

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.