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

Background email assignment due

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

Project 1 Due

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?

Project 2 Due

 

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

Project 3 Due

 

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

Project 4 Due

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.