Next: About this document ...
Department of Computer Science, Clemson University
CpSc 416/616 - 2D Game Engine Construction with C++
Brian Malloy
Syllabus
August 19, 2007
- Introduction
- Drawing a surface with SDL
- Drawing with blits
- Colorkeys and transparency
- Loading image formats
- Sprite animation
- Sprite Clipping
- Parallax Scrolling
- Explosions
- Artificial Intelligence, min-max trees, A* trees
- The game shell
- Processing input: Mouse, keyboard, joystick
- Adding sound
- Collisions, collision detection
- Game time and timers
- Adding Text
- Game scripting with SDL
- Using arrays to store game data: monsters
- Using linked lists to store game inventories
- Determining the winner & loser
- The high score list
- Pausing the game
- Networked gaming
- Basics (100 slides, 1-2 classes):
I/O, data types,
iteration: for, while;
control structures: if/else and switch;
short-circuit evaluation,
functions,
The 3 parameter transmission modes,
C-strings, command-line parameters, intro to
files.
- The C++ Class (100 slides, 6-8 classes):
Constructors: default, conversion and copy.
Class instantiation,
constructor initialization vs assignment,
when are constructors called, which one!
destructors and when they are required. Also, the
class members that are supplied by default, those that
you should supply.
Shallow vs deep copy,
orthodox canonical class form,
functions that C++ silently writes,
overloading functions,
overloading operators,
overloadly assignment,
the output operator and others.
friend functions (functions that are members
of a class vs part of a class),
nomenclature and programming style,
overloading a class for binary arithmetic,
make files,
dynamic vs static storage,
Writing a string class. Deep copy vs shallow copy.
Dynamic memory allocation. Comparing C string with 1#1 strings.
iterators,
the stack class, the template stack class,
exceptions, the linked list class,
- The standard library: (43 slides, 2-4 classes)
vector and list.
Standard library iterators for vector and list.
Using standard library algorithms on vector and list (algo.h).
Maps.
- Inheritance: (43 slides, 2-4 classes)
What are the kinds of inheritance, what
are the kinds of functions that can be involved in
inheritance (virtual, purely virtual, non-virtual),
public inheritance vs private inheritance,
when should inheritance be used, what are the
problems with inheritance, casting down the
inheritance hierarchy,
the 4 kinds of cast in C++,
passing parameters to a base class.
- Design Patterns
Next: About this document ...
Brian Malloy
2007-08-19