Proposed Computer Science Concentration in Game Development

advertisement
Proposed Computer Science Concentration in Game Development
- A Collaborative Proposal between Computer Science and
Technology
Background and Motivation
In recent years game industry has become a multibillion dollar industry. Five years back the market of
video and computer games was 7 billion dollars that has grown to become a 9.5 billion dollar industry
in 2007. Out of which the computer games sales is $1 billion. In near future the difference between
video games and computer games will become fuzzy increasing the sale of computer games further.
Computer gaming is not just a teenager phenomenon but is played by different age groups. A market
survey shows that 41% of Americans use some form of computer games. There are many well known
multibillion dollar industries such as Sony Corporation, Walt Disney and Ninetendo Inc. and Microsoft
and Cell phone and PDA instrument makers investing in the development of games. Clearly there is a
growing demand of the programmers from this industry who can design computer games. In addition,
there is a developing market for 3D interactive learning environment that use computer game
techniques to teach virtually any subject.
A large number of universities are creating new faculty line and courses to teach game design
and programming that can satisfy this fast growing industry. Some of the universities that are already
offering courses are University of Michigan, University of Columbia, University of California at
Riverside, Portland State University, University of Central Florida,
Course Sequence in Concentration
The concentration in game development consists of six courses that would be required in addition to
those required for a Computer Science Bachelors Degree. Two of the six required courses – CS 37101
Introduction to Animation (cross listed with Technology) and CS 38101 Introduction to Game
Programming could be used to satisfy the uppper division electives, CS 44201 Artificial Intelligence,
CS47101 Computer Graphics, and CS 48101 Game Engine could be used to satisfy three 4XXXX level
electives, and the practicum course CS 49902 could be used to substitute Capstone project CS 49901.
Of these course two courses CS 44201, CS47101 are already in the CS catalog, the course CS 48101
has been taught successfully as a special topic course during Spring 2007, the courses CS 49902 has
been offered twice as part of the Capstone project CS 49901, the course CS 38101 is slated to be taught
as a special topic course ST39995 during Fall 2009
1. Tech 3XXXX/CS37101 (cross listed): Introduction to Animation: This course would give CS
students an overview of the theory and techniques of animation.
2. CS 38101: Introduction to Game Programming. Prerequisite: CS 330001. Textbook:
Introduction to Game Development by Steve Rabin published by Charles River Media. This
class introduces students to an object-oriented game engine scripting language such as the
scripting languages included with the Unreal game engine or the Torque game engine. Game
engine programming provides the student with experience working in teams to build a
sophisticated program in an object oriented scripting language which has an extremely large
number of defined classes. It also introduce students to event driven programming, data driven
programming, game engine data structures, and elementary graphics concepts, and elementary
AI concepts. In additions to providing a basics introduction to game programming, this class
will give students the opportunity to design and build a short game as part of a team project. It
is intended that this class will be scheduled jointly with a class from technology that will
provide animations and interior designs for the projects and will give both classes a chance to
work in teams with students in another discipline. Parts of this course were offered in CS
49901 Capstone Projects in the spring 2008. The entire course will be offered in fall 2009.
3. CS 47101 Computer Graphics.
4. CS 44201 Artificial Intelligence
5. CS 48101. Game Engine Concepts. Prerequisites: CS 38101, CS 47101. Textbook:3D Game
Engine Design, Second Edition: A Practical Approach to Real-Time Computer Graphics by
David Eberly, published by Morgan Kaufmann, 2006. This course covers a range of topics that
include: Game Memory Management ; Multithreading in Games ; Sprites & bitmap animation;
Collision detection; Differing game types, modes, & perspectives; Game & level design; Path
finding algorithms; Sound & Music; Game input devices; Artificial Intelligence in games;
Physics based modeling; Advanced Lighting Techniques; Networked Gaming Algorithms;
Special Effects.
This course was taught as CS49995 Special Topics: Game Engines in spring 2007.
6. CS 48102. Game Development Practicum: Prerequisites: 48101 Game Engine Concepts.
This course provides student with the opportunity to design a computer game or a 3D
interactive learning environment using a game engine. The College of Technology will offer a
similar course that will run at the same time as this course. The two classes will collaborate to
design and implement a game or 3D interactive learning environment. The game engine
programming will be handled by the CS section and the game's animation will be handled by
the Technology section. The classes' instructors will invite faculty or graduate students from any
discipline to suggest learning environment topics that the class could implement and that would
be of significant benefit to the research or teaching of that faculty member or graduate student.
If a suggested project is deemed to be viable within the time frame of the class, the individual
suggesting the project will be invited to participate in the class and to provide the necessary
content material for the suggested learning environment. It is expected that the projects
developed in this class will be pilot projects that could be used by the suggesting individuals to
obtain additional funding to complete the project. Where such funding is obtained the students
who participated in the pilot project development would be in a position to assist in further
development of the project after the completion of this class. This course can be used to satisfy
the Capstone project requirement of the students.
A version of this course has been offered twice as CS 49901 Capstone Projects, once in spring
2008 and once in fall 2008. The primary difference between the Capstone courses and this
course is that the Capstone courses were offered without the prerequisite of CS 38101,
Introduction to Game Engine Programming. That necessitate teaching game engine scripting
before the class could begin developing its game, so less time was available for the actual
project development. Nonetheless, the Spring 2008 class developed three innovative games.
The fall 2008 class is still underway, but is making good progress toward completing 2 game
projects and 2 educational environment projects. The additional class time afforded by offering
the project class with an Introduction to Game Engine Programming prerequisite will permit the
development of more sophisticated projects.
The junior level game programming course CS 38101, Introduction to Game Programmingis
described above. The idea of teaching game engine programming as a separate course that
served as a prerequisite for a senior level game development project course, CS48102, Game
Development Practicum, was discussed with the spring 2008 Capstone class. An anonymous
survey of the students in that class regarding possible improvements in the class' structure
showed that the class favored the creation of a junior level game programming class as a
prerequisite for a senior level game development project course. Introduction to Game
Programming will be offered for the first time in fall 2009.
Service Courses for Technology and Educational
1. CS 37102: Introduction to Game Scripting. Not open to CS majors. This course covers the
basics of scripting in a game engine environment. Its programming content is similar that in
CS10061, but it will cover additional topics such as event driven programming so as to provide
the student with a basic knowledge of scripting and an overview of scripting in a game
environment.
2. CS 68101: Computer Game Development. Not open to CS majors. This course would
introduce computer game development software, computer game data formats, computer game
sound production tools, computer animation software, and computer game networking issues to
graduate students in non-computer science disciplines interested in developing computer games
for their discipline.
Download