CSCI 370 - Interactive Game Development

Spring 2019

Course Overview:

An introduction to recent tools and algorithms for building interactive games. Students will learn fundamental design mechanics and implement a substantial development project. Topics may include steering and flocking behaviors, path finding algorithms, finite state machines, behavior trees, alpha-beta pruning, Monte Carlo Tree Search, shaders, 3D modeling, animation, procedural content generation, and the intersection of games and society. Content varies according to the interests of the participants and instructor. Prerequisite: CSCI 151

At the end of the course, you will be expected to be able to:

Lecture Time: TR 8:15-9:30 (B1)

Room: MC Reynolds 317

Instructor: Dr. Bayazit Karaman, MC Reynolds 313

Office Hours: By appointment. To make an appointment with me, please send an email. Also, please feel free to stop by whenever my door is open.


Unity C#
Unity, the world’s leading real-time engine, is used to create half of the world’s games. Their flexible real-time tools offer incredible possibilities for game developers, and creators across industries and applications in 2D, 3D, VR, and AR. C# is a general-purpose, multi-paradigm programming language encompassing strong typing, lexically scoped, imperative, declarative, functional, generic, object-oriented (class-based), and component-oriented programming disciplines.

Revisions: After lab assignments are returned, you are welcome to revise and resubmit your work. Each submitted revision will be graded anew, the original and revised grades will be averaged to produce a new grade for that assignment. Revisions may be submitted anytime until the start of the final exam period.

Extensions: No late work will be accepted. Any work not submitted on time is a zero. However, you may submit a solution after the deadline to qualify under the revision policy. In effect, this means that late work can earn up to half credit.

Absences: You may miss three class days with no penalty. These can be for sports travel, school sanctioned activities, sick, etc. Every subsequent absence will result in a 4% penalty on your final grade.

Academic Integrity: All Hendrix students must abide by the College’s Academic Integrity Policy as well as the College’s Computer Policy, both of which are outlined in the Student Handbook.

For specific ways the Academic Integrity policy applies in this course, please refer to the Computer Science Academic Integrity Policy.

The short version is that academic integrity violations such as copying code from another student or the Internet are easy to detect, will be taken very seriously, and carry a default recommended sanction of a zero on the assignment in addition to a decrease of one letter grade on your final grade.

If you have any questions about how the Academic Integrity policy applies in a particular situation, please contact me.

Accommodations: It is the policy of Hendrix College to accommodate students with disabilities, pursuant to federal and state law. Any student who needs accommodation in relation to a recognized disability should inform the instructor at the beginning of the course. In order to receive accommodations, students with disabilities are directed to contact Julie Brown in Academic Support Services at 501-505-2954.


Grading Scale
A 90-100
B 80-89
C 70-79
D 60-69
F 0-59
Here are the semester's assignments and the associated points for each:

Demonstrations 10%
Presentations 20%
Assignments 30%
Final Project 40%

Schedule: The anticipated schedule for the semester is below. The instructor reserves the right to alter the schedule as necessary during the semester. Unless noted otherwise, each project is due at the start of class.

Date Day Topic/Activity Assignment Due
01/15/2019 Tuesday Go over syllabus
Introduction to games
01/17/2019 Thursday Introduction to Unity (Intro-1) None
01/22/2019 Tuesday Baked Lightmaps (Lighting-1) None
01/24/2019 Thursday Real Time Lighting & Scripting (Lighting-2) None
01/29/2019 Tuesday Cameras (Camera Template Project) None
01/31/2019 Thursday Review Section (Camera Full Version) None
02/05/2019 Tuesday Demonstrations Lab-1 First Game!
02/07/2019 Thursday Materials, Shaders and Textures (Materials, Shaders and Textures) None
02/12/2019 Tuesday Terrains (Terrain) None
02/14/2019 Thursday Terrains (Terrain with AI) None
02/19/2019 Tuesday Demonstrations Lab-2 Second Game with an Environment!
02/21/2019 Thursday Mesh Geometry and Layers None
02/26/2019 Tuesday NavMesh and Layers (NavMesh) Last day for selecting your partners and planning your game.
02/28/2019 Thursday Animations (Animation) None
03/05/2019 Tuesday 2D Game Development (Catch Cute Bird Part-1) None
03/07/2019 Thursday 2D Game Development (Catch Cute Bird Full) None
03/12/2019 Tuesday Demonstrations Lab-3 Third Game!
03/14/2019 Thursday No Class None
03/19/2019 Tuesday Spring Break (No class) None
03/21/2019 Thursday Spring Break (No class) None
03/26/2019 Tuesday Game Proposal Presentations One-page Game Proposal
03/28/2019 Thursday 2D Background Scrolling (Template Project) (2D Background Scrolling) None
04/02/2019 Tuesday 2D Parallax (2D Parallax and Scrolling) None
04/04/2019 Thursday Demonstrations Lab-4 First 2D Game!
04/09/2019 Tuesday Lab Sections None
04/11/2019 Thursday Timeline, Audio and User Interface (Timeline3D) (2D Drag and Drop UI Images) None
04/16/2019 Tuesday User Interface (Buttons) (UIButtons) None
04/18/2019 Thursday Demonstrations First draft of your game and Lab-5
04/23/2019 Tuesday Discussing feedbacks and fixing projects None
04/25/2019 Thursday Discussing feedbacks and fixing projects None
05/01/2019 Wednesday Final Project Presentations and Demonstrations Final Project