You are on page 1of 3

Overview

This course is about advanced game development, particularly in 3 dimensions.  The


expected course content will include:

 3D Representation - Understanding the basic elements of a scene graph


(lighting, camera, model
 3D Transformation - Translation, rotation, and scale in 3D / transformation
matrice
 Vertex-level editing - subdivision surfaces, extrusion, polygon modeling
 Shading- Use of various shaders: phong, guarard, toon
 Procedural Textures - mathematical models for shading, bump mapping,
and coloring
 U/V Texture maps - mapping 2D images onto 3D models
 Animation - deformation and skeleton-based animation
 User control - Mapping input - controlling models, dynamic creation and
destruction
 Physics - Manual physics and use of an engine - dynamic, rigid body, and
soft body collisions
 Collision management - bounding spheres, bounding boxes, convex hulls
 Mouselook- implementing a mouselook mechanism for FPS and TPS
games 
 Feedback - Text-based feedback, audio feedback, HUDS

The specific tools and languages are secondary, but at this point, we expect to use
some combination of the following:

 Blender - 3D modeling, game development in Python


 WebGL - Lower-level access to 3D modeling and gaming
 OpenGL - DeFacto standard for 3D development using C / C++

Requirements
CSCI 43800 is a course in advanced game development. The course is intended for
CS majors and others with significant background in computer programming in multiple
languages. Students in this course should have the following background

 General Programming Knowledge equivalent to CSCI 23000 and 24000.


Language is not critical, but assignments will likely require knowledge of C,
C++, Java, Python, and or web languages (JavaScript / WebG.  Strong
object-oriented programming and debugging skills are vital to game
development.
 Comfort with game programming in 2D This is considered a second game
programming course, so students should come in with CSCI 43700 or CSCI
N451 or equivalent. You should understand basic concepts of game
programming including the game / animation loop, frame-rate management,
sprites, basic collision detection, simple AI. Again, the language does not
matter.
 Essential CS theory This is an upper-level computer science class, and we
will use many components from your previous courses, including data
structures, algorithms, complexity analysis, and graph theory. 
 Some multimedia background Game development is a multi-disciplinary
skill. You will at some point need to be comfortable with various media
elements: 2D raster and vector graphics, audio editing and manipulation.
Open source software is fine, but you should be able to create basic image
and audio assets without support.

Expectations
Throughout the course, you will have the opportunity to build models, scenes and
games in a variety of formats.  Specific assignments may change, but your final grade
will be based on the following components:

 Lab assignments - There will be between 4 and 10 lab assignments. All lab
assignments together will constitute 40% of the final grade. Note you will
NOT be given class time to work on assignments, so you must budget time
outside of lecture.
 Exams - There will be one midterm exam and one final exam.  The exams
will be given over Oncourse or Canvas. Each exam constitutes 20% of the
final grade
 Final Project -  You will be expected to submit a final culminating project at
the end of the semester. You wil have great flexibility in the format and
outcome of this project. The final project is worth 20% of the overall grade.

Note that this is a 400-level computer science course, and we have high expectations
of student performance.  All assignments will include descriptions of what is needed to
earn a decent grade, but fulfilling the minimal requirements of an assignment does not
guarantee 100%.  Very high scores are reserved for the exceptional work you are all
capable of, and will not be awarded lightly.

Academic Integrity
Game programming is a community endeavor, and it is expected that you will work with
colleagues and use appropriate resources for completing your assignments. However, it
is your responsibility to ensure you are respecting the laws and traditions of academic
honesty.  If you are using any kind of intellectual property in your projects, you are
required to do the following:

 Cite the source - Give credit to the originator of the material


 Get permission - If it is necessary, you'll need to get permission from the
originator of the material.  If you do not need such permission, please include
the licensing information (EG open source, GNU license)  giving you the
permission.
 Add something - Using someone else's work as a sub-part of your project or
a starting-off point is acceptable (presuming you followed the above two
guidelies.)  Turning in work you did not write and claiming it as your own is
not.  Your project should include substantial improvements over the original.

Note that following a tutorial closely (even if you didn't copy and paste the code) is still
not original work. Also, please do not use 'ripped' graphics or sound effects in your
games.  I will show you plenty of places to get legitimate resources.
If you are found in violation of these principles, you may face any of the following:

 A grade of zero for the project in question


 An academic misconduct failure for the class
 Academic misconduct formal review, which can result in expulsion

Assignments are weighted by group:

Group Weight

Assignments 0%

Final Project 20%

labs 40%

exams 40%

Total 100%

You might also like