Package Overview

Materials Library

Get instant access to a large library of high-quality game development training material. You will receive thousands of pages of detailed text, hundreds of video presentations, and lots of source code and projects for experimentation. All of this will be right at your fingertips for immediate viewing and downloading.

Game Development Tools

Get our powerful game engine, a sandbox-style world editor, and other assorted tools of the trade. With scripted rendering, AI, and game logic you'll build games quickly and easily. The engine uses a plug-in based architecture and ships with full source code, so you can add custom features for your projects whenever you want.

12-Month Subscription

With lots of great new content slated for launch this year, if you buy the package now, you'll automatically get it all as soon as it rolls out – for free! This limited time offer includes updates and new features for our game development tools, as well as brand new written material and video-based presentations currently in development.

Training Options

In addition to free community forums and chatrooms, you can optionally get support from our in-house faculty at any time at very affordable rates. If you'd prefer, you can even upgrade to a fully accredited, instructor guided, online course experience in any subject anytime you'd like after buying the package.

Upgrades

You can optionally purchase printed versions of our books, along with CDs or DVDs that include the same presentations, projects, and other materials in the package. We also have a full set of DVDs available for our art and animation training. You can order physical media for delivery any time it is convenient for you.

● 2012 Subscription Content

Programming & Mathematics

C++ Programming


  • 2 Textbooks
  • 20 Presentations
  • 78 Projects

If you want to be a game developer, this is where you'll start. Most commercial games are built using the C++ programming language and this material will guide you through the process of making your very first video game. The skills you pick up along the way will serve as a foundation for the rest of the material in the package. In addition, you will be a competent C++ programmer capable of writing many different types of application.

Topics

Environment & Core Language Features

Goals:

  • Create, compile, link and execute C++ programs.
  • Find out how C++ code is transformed into machine code.
  • Learn some of the basic C++ features necessary for every C++ program.
  • Discover how to output and input text information to and from the user.
  • Understand the concept of variables.
  • Perform simple arithmetic operations in C++.

Key Topics:

  • Our First C++ Program
    • Creating the Project
    • Adding .CPP File to the Project
    • Writing the Code
    • Compiling, Linking, and Executing
    • Comments
    • White Space
    • Include Directives
    • Namespaces
    • The main{...} Function
    • std::string
    • cin and cout
  • Variables
    • Declarations and Definitions
    • Names
    • sizeof
    • The unsigned Keyword
    • Literal Assignments
    • Type Conversions / Casts
    • typedefs
    • Const Variables
    • Macros
  • Arithmetic Operations
    • Unary Arithmetic Operations
    • The Modulus Operator
    • Compound Arithmetic Operations
    • Operator Precedence

Conditionals, Loops, and Arrays

Goals:

  • Understand and evaluate logical expressions.
  • Form and apply conditional, if...then, statements.
  • Discover how to execute a block of code repeatedly using various kinds of loops.
  • Learn how to create containers of variables and how to manipulate the individual elements in those containers.

Key Topics:

  • The Relational Operators
  • The Logical Operators
  • Conditional Statements
    • The If Statement
    • The Else Clause
    • Nested If...Else Statements
    • The Switch Statement
    • The Ternary Operator
  • Repetition
    • The for-loop
    • The while Loop
    • The do...while Loop
    • Nesting Loops
    • Break and Continue Keywords
  • Arrays
    • Array Initialization
    • Iterating Over an Array
    • Multidimensional Arrays

Functions

Goals:

  • Understand and construct logical code groupings/tasks as functions.
  • Understand the various definitions for scope as it pertains to variable declarations.
  • Understand how to use code libraries for common tasks in mathematics and for random number generation.
  • Understand function parameter overloading and the concept of the default parameter.

Key Topics:

  • User-Defined Functions
    • Functions with One Parameter
    • Functions with Several Parameters
  • Variable Scope
  • Math Library Functions
  • Random Number Library Functions
  • Function Overloading
  • Default Parameters

References and Pointers

Goals:

  • Become familiar with reference and pointer syntax.
  • Understand how C++ passes array arguments into functions.
  • Discover how to return multiple return values from a function.
  • Learn how to create and destroy memory at runtime (i.e., while the program is running).

Key Topics:

  • References
    • Constant References
  • Pointers
    • Computer Memory Primer
    • Pointer Initialization
    • Dereferencing
  • Arrays Revisited
    • Arrays and Pointers
    • Pointer Arithmetic
    • Arrays as Function Parameters
  • Multiple Function Return Values using References and Pointers
  • Dynamic Memory
    • Allocating Memory
    • Deleting Memory
    • Memory Leaks
  • std::vector
  • Pointers to Functions

Object Oriented Programming

Goals:

  • Understand the problems object oriented programming attempts to solve.
  • Define a class and instantiate members of that class.
  • Learn some basic class design strategies.

Key Topics:

  • Object Oriented Programming Ideas
  • Classes and Objects
    • Basic Syntax
    • The Dot/Arrow Operators
    • Header Files
    • Inclusion Guards
    • Class Definitions
    • Class Implementations
    • Data Hiding: Private versus Public
    • Constructors and Destructors
    • Copy Constructors
    • Assignment Operators

Strings and Miscellaneous C++ Topics

Goals:

  • Understand how C++ natively describes strings.
  • Learn some important standard library string functions.
  • Review std::string and become familiar with some of its methods.
  • Become familiar with the this pointer.
  • Learn about the friend and static keywords.
  • Discover how to create your own namespaces.
  • Understand what enumerated types are, how they are defined in C++, and when they would be used.

Key Topics:

  • Char Strings
  • String Literals
  • Escape Characters
  • C-String Functions
    • Length (strlen)
    • Equality (strcmp)
    • Copying (strcpy)
    • Addition (strcat)
    • Formatting (sprintf)
  • std::string
    • Length
    • Relational Operators
    • Addition
    • Empty Strings
    • Substrings
    • Inserting
    • Finding
    • Replacing
    • Bracket Operator
    • getline
  • The this Pointer
  • Friends
    • Friend Functions
    • Friend Classes
  • The static Keyword
    • Static Variables in Functions
    • Static Data Members
    • Static Methods
  • Namespaces
    • Variations of the "using" Clause
  • Enumerated Types

Operator Overloading

Goals:

  • Learn how to overload the arithmetic operators.
  • Discover how to overload the relational operators.
  • Overload the conversion operators.
  • Understand the difference between deep copies and shallow copies.
  • Find out how to overload the assignment operator and copy constructor to perform deep copies.

Key Topics:

  • A Vector Class
    • Constructors
    • Equality
    • Addition and Subtraction
    • Scalar Multiplication
    • Length
    • Normalization
    • The Dot Product
    • Printing
    • Accepting Input
  • Overloading Arithmetic Operators
    • Operator Overloading Syntax
    • Overloading the Other Arithmetic Operators
  • Overloading Relational Operators
  • Overloading Conversion Operators
  • Overloading the Extraction and Insertion Operators
  • A String Class
    • Assignment Operator
    • Copy Constructor
    • Bracket Operator
    • Construction and Destruction

File Input/Output

Goals:

  • Learn how to load and save text files.
  • Learn how to load and save binary files.

Key Topics:

  • Streams
  • Text File I/O
    • Saving Data
    • Loading Data
  • Binary File I/O
    • Saving Data
    • Loading Data

Inheritance and Polymorphism

Goals:

  • Understand what inheritance means in C++ and why it is a useful code construct.
  • Understand the syntax of polymorphism, how it works, and why it is useful.
  • Learn how to create general abstract types and interfaces.

Key Topics:

  • Inheritance
    • Repeated Inheritance
    • "isa" vs. "hasa" relationships
    • Base Class/Derived Class Casting
    • Public vs. Private Inheritance
    • Method Overriding
  • Constructors and Destructors with Inheritance
  • Multiple Inheritance
  • Polymorphism
  • How Virtual Functions Work
  • The Cost of Virtual Functions
  • Abstract Classes
    • Interfaces

Templates

Goals:

  • Learn how to design and implement generic classes.
  • Learn how to define generic functions.

Key Topics:

  • Class Templates
    • Class Template Definition
    • Class Template Implementation
    • Class Template Instantiation
  • A Table Template Class
    • Table Data
    • Class Interface
    • destroy
    • resize
    • The Overloaded Parenthesis Operator
    • The Table Class
  • Function Templates

Exception Handling

Goals:

  • Understand the method of catching errors via function return codes, and an understanding of the shortcomings of this method.
  • Become familiar with the concepts of exception handling, its syntax, and its benefits.
  • Learn how to write assumption verification code using asserts.

Key Topics:

  • Error Codes
  • Exception Handling Basics
  • Assert

Number Systems

Goals:

  • Learn how to represent numbers with the binary and hexadecimal numbering systems, how to perform basic arithmetic in these numbering systems, and how to convert between these numbering systems as well as the base ten numbering system.
  • Gain an understanding of how the computer describes intrinsic C++ types internally.
  • Become proficient with the various binary operations.
  • Become familiar with the way in which floating-point numbers are represented internally.

Key Topics:

  • Number Systems
    • The Binary Number System
      • Counting in Binary
      • Binary and Powers of 2
      • Binary Arithmetic
      • Converting Binary to Decimal
      • Converting Decimal to Binary
    • The Hexadecimal Number System
      • Counting in Hexadecimal
      • Hexadecimal Arithmetic
      • Converting Hexadecimal to Binary
      • Converting Binary to Hexadecimal
  • Bits and Memory
  • Bit Operations
    • AND
    • Inclusive OR
    • NOT
    • Exclusive OR
    • Shifting
    • Compound Bit Operators
  • Floating-Point Number Analysis

The Standard Template Library

Goals:

  • Discover how lists, stacks, queues, deques, and maps work internally, and in which situations they should be used.
  • Become familiar with a handful of the generic algorithms the standard library provides and how to apply these algorithms on a variety of data structures.
  • Learn how to create objects that act like functions, called functors, and learn how to create and use predicates with the standard library.

Key Topics:

  • Linked Lists
  • Stacks
  • Queues
  • Deques
  • Maps
  • Algorithms
  • Functors
  • Predicates

Basic Windows Programming

Goals:

  • Learn how to create a basic Win32 application.
  • Gain an understanding of the event driven programming model.

Key Topics:

  • The Event Driven Programming Model
    • Win32 Programming Theory
    • The MSG Structure
  • Overview of Creating a Windows Application
    • Defining the Window Procedure
    • The WNDCLASS Structure
    • WNDCLASS Registration
    • CreateWindow
    • Showing and Updating the Window
    • The Message Loop

GDI and Menus

Goals:

  • Learn how to output text onto a window, and how to draw several GDI shape primitives like lines, rectangles and ellipses.
  • Understand how different pens and brushes can be used to change the way GDI shapes are colored and drawn.
  • Learn how to load bitmap (.bmp) images from file into our Windows programs, and how to draw them on the client area of our windows.
  • Become familiar with the Visual C++ menu resource editor, and learn how to create menus.

Key Topics:

  • Text Output
    • The WM_PAINT Message
    • The Device Context
    • TextOut
    • Example Program
  • Shape Primitives
    • Drawing Lines
    • Drawing Rectangles
    • Drawing Ellipses
  • Bitmaps
    • Loading
    • Rendering
    • Deleting
  • Pens and Brushes
  • Menus
    • Creating a Menu Resource
    • Loading a Menu and Attaching it to a Window
    • Checking Menu Items
    • Selecting Menu Items

Dialogs and Controls

Goals:

  • Learn how to create modal and modeless dialog boxes, and how to distinguish between the two.
  • Discover how to create and design dialog boxes with the Visual C++ resource editor.
  • Become familiar with several Win32 controls such as static text controls, picture box controls, edit box controls, radio button controls, button controls, and combo box controls.

Key Topics:

  • Modal Dialog Boxes
    • Static Text Controls
    • Button Controls
    • Dialog Box Design
  • Modeless Dialog Boxes
    • Edit Controls
  • Radio Buttons
  • Combo Boxes

Sprite Animation

Goals:

  • Learn how to use the Windows multimedia timer functions for smooth animation.
  • Discover how to do basic 2D computer animation.
  • Understand the technique of double buffering to avoid flicker.
  • Learn how to draw complex non-rectangular 2D image bitmaps using the GDI raster operations.

Key Topics:

  • Timing
    • Windows Multimedia Timer Functions
    • Computing Elapsed Time
    • Computing Frames Per Second
  • Double Buffering
  • Sprites
    • Theory
    • Implementation
    • Art Resources

First Game

Goals:

  • Become familiar with the three-stage software development process of analysis, design, and implementation.
  • Practice the three-stage software development process by analyzing, designing, and implementing an Air Hockey game.

Key Topics:

  • Analysis
  • Object Identification
  • Game Behavior/Problem Solving
  • Design
  • Algorithms
    • Mouse Velocity
    • Paddle Artificial Intelligence
    • Puck-Paddle Collision
    • Puck-Wall Collision
    • Paddle-Wall Collision
    • Pausing/Un-pausing
    • Keeping Score
  • Software Design
  • Implementation
  • Main Application Code

Presentations

  • Introducing C++
  • Conditionals, Loops, and Arrays
  • Functions
  • References and Pointers
  • Object Oriented Programming
  • Strings and Miscellaneous C++ Topics
  • Operator Overloading
  • File Input/Output
  • Inheritance and Polymorphism
  • C++ Summary I
  • Templates
  • Exception Handling
  • Number Systems
  • The Standard Template Library
  • Win32 Programming I: Basic Windows Programming
  • Win32 Programming II: GDI and Menus
  • Win32 Programming III: Dialogs and Controls
  • Sprite Animation
  • Final Game
  • C++ Summary II

Projects

  • Experiment 1: Arithmetic Operators
  • Experiment 2: Cin/Cout
  • Experiment 3: Cube
  • Experiment 4: Area/Circumference
  • Experiment 5: Average
  • Experiment 6: Bug Fixing
  • Experiment 7: Logical Operator Evaluation
  • Experiment 8: Navigator
  • Experiment 9: Average
  • Experiment 10: Factorial
  • Experiment 11: Matrix Addition
  • Experiment 12: ASCII
  • Experiment 13: Linear Search
  • Experiment 14: Selection Sort
  • Experiment 15: Factorial
  • Experiment 16: ToUpper/ToLower
  • Experiment 17: Distance
  • Experiment 18: Arc Tangent
  • Experiment 19: Calculator Program
  • Experiment 20: Slot Machine
  • Experiment 21: Binary Search
  • Experiment 22: Bubble Sort
  • Experiment 23: Dice Function
  • Experiment 24: Array Fill
  • Experiment 25: Quadratic Equation
  • Experiment 26: Gold
  • Experiment 27: Character Races
  • Experiment 28: Leveling Up
  • Experiment 29: Magic Points
  • Experiment 30: Random Encounters
  • Experiment 31: Weapon/Armor Store
  • Experiment 32: Magic Items
  • Experiment 33: Multiple Enemies
  • Experiment 34: String Reverse
  • Experiment 35: To-Upper
  • Experiment 36: To-Lower
  • Experiment 37: Palindrome
  • Experiment 38: Fraction Class
  • Experiment 39: float Array Class
  • Experiment 40: Line Count
  • Experiment 41: Rewrite
  • Experiment 42: Database
  • Experiment 43: Template Array Class
  • Experiment 44: Template Bubble Sort Function
  • Experiment 45: Table Driver
  • Experiment 46: Exception Handling
  • Experiment 47: Binary Arithmetic
  • Experiment 48: Hex Arithmetic
  • Experiment 49: Base Conversions
  • Experiment 50: Bit Operations
  • Experiment 51: Binary to Decimal
  • Experiment 52: Decimal to Binary
  • Experiment 53: Bit Operation Calculator
  • Experiment 54: Linked List
  • Experiment 55: Stack
  • Experiment 56: Queue
  • Experiment 57: Algorithms
  • Experiment 58: Exit Messages
  • Experiment 59: Horizontal/Vertical Scroll Bars
  • Experiment 60: Multiple Windows
  • Experiment 61: Changing the Cursor
  • Experiment 62: Changing the Background
  • Experiment 63: Custom Icons
  • Experiment 64: Changing Colors
  • Experiment 65: Changing Styles
  • Experiment 66: Cube Rendering
  • Experiment 67: Adding an Undo Feature
  • Experiment 68: List Boxes
  • Experiment 69: Checkbox Controls
  • Experiment 70: File Save and Open Dialogs
  • Experiment 71: The Color Dialog
  • Experiment 72: Colors
  • Experiment 73: Drawing Order
  • Experiment 74: Masking
  • Experiment 75: Make Your Own Sprite
  • Experiment 76: Bouncing Ball
  • Experiment 77: Pong
  • Experiment 78: Air Hockey

Requirements

  • Microsoft Visual C++ 7.0 (2002 .NET) or higher.
  • Microsoft DirectX SDK (latest).

3D Graphics and Game Engine Programming


  • 3 Textbooks
  • 23 Presentations
  • 35 Projects
  • 8 Supplementals

If you want to make great games, you need to know how game engines work under the hood. Develop industry-level 3D graphics and game engine expertise that will leave you ready to take on any project. With 3000+ pages of in-depth text and over 40 hours of detailed presentations, you'll soon be an expert at writing shaders, computing lighting, and developing high-performance engine code that leverages spatial trees, potential visibility sets, and more to produce quality visuals in real-time.

Topics

3D Graphics Fundamentals

Goals:

  • Understand how 3D game objects are represented geometrically and how they are drawn.
  • Master the mathematics of the transformation pipeline, from model space through to screen space.
  • Review basic transformations such as scaling, rotation, and translation.
  • Be able to move points from one coordinate space to another.
  • Get comfortable with the specific math operations and data types we will use in future lessons.
  • Examine vectors, planes, and matrices and understand their roles in the transformation pipeline and in other common cases.
  • Review dot and cross products, normalization, and matrix and vector multiplication.
  • Learn the D3DX equivalent data types and functions for the operations discussed.
  • Understand perspective projection and how the matrix is constructed.
  • Learn how arbitrary fields of view can be created to model different camera settings.

Key Topics:

  • Geometric Modeling
    • 2D/3D Coordinate Systems
    • Meshes
      • Vertices
      • Winding Order
  • The Transformation Pipeline
    • Translation
    • Rotation
    • Viewing Transformations
    • Perspective Projection
    • Screen Space Mapping
  • 3D Mathematics Primer
    • Vectors
      • Magnitude
      • Addition & Subtraction
      • Scalar Multiplication
      • Normalization
      • Cross Product
      • Dot Product
    • Planes
    • Matrices
      • Matrix/Matrix Multiplication
      • Vector/Matrix Multiplication
      • 3D Rotation Matrices
      • Identity Matrices
      • Scaling and Shearing
      • Concatenation
      • Homogenous Coordinates
  • D3DX Math
    • Data Types
      • D3DXMATRIX
      • D3DXVECTOR
      • D3DXPLANE
    • Matrix and Transformation Functions
      • D3DXMatrixMultiply
      • D3DXMatrixRotation{XYZ}
      • D3DXMatrixTranslation
      • D3DXMatrixRotationYawPitchRoll
      • D3DXVecTransform{...}
    • Vector Functions
      • Cross Product
      • Dot Product
      • Magnitude
      • Normalization
  • The Transformation Pipeline II
    • The World Matrix
    • The View Matrix
    • The Perspective Projection Matrix
      • Field of View
      • Aspect Ratio

DirectX Graphics Overview

Goals:

  • Begin examining the DirectX Graphics pipeline and see how the different pieces relate to what we have already learned.
  • Study the COM programming model to better understand the low-level processes involved when working with the DirectX API.
  • Learn how to properly initialize the DirectX environment.
  • Create a rendering device for output.
  • Understand important device resources like window settings, front and back buffers, depth buffers, swap chains, and surface formats.
  • Use presentation parameters for device setup.
  • Develop strategies to handle lost devices.

Key Topics:

  • The Component Object Model (COM)
    • Interfaces/IUnknown
    • GUIDS
    • COM and DirectX Graphics
  • Initializing DirectX Graphics
  • The Direct3D Device
    • Pipeline Overview
    • Device Memory
      • The Front/Back Buffer(s)
      • Swap Chains
    • Window Settings
      • Fullscreen vs. Windowed Mode
    • Depth Buffers
      • The Z-Buffer / W-Buffer
  • Surface Formats
    • Adapter Formats
    • Frame Buffer Formats
  • Device Creation
    • Presentation Parameters
    • Lost Devices

Geometry Rendering

Goals:

  • Learn how to render 3D objects as wireframe or solid objects.
  • Examine how to apply various forms of shading.
  • Learn about flexible vertex formats, triangle data, and the DrawPrimitive function.
  • Look at core device render states used when drawing - depth buffering, lighting and shading, back face culling, etc.
  • Talk about transformation states and learn how to pass matrices to the device for use in the transformation pipeline.
  • Learn how to clear buffers, begin and end scene rendering, and present rendered results to the viewer.
  • Start to examine more optimal rendering strategies in DirectX.
  • Get comfortable with creating, filling, and drawing vertex and index buffers.
  • Look at indexed and non-indexed mesh rendering for static and dynamic (animated) geometry.
  • Understand device memory pools and know which is appropriate for a given job.
  • Examine indexed triangle strip generation and the role of degenerate triangles.

Key Topics:

  • Primitive Rendering
    • Fill Modes
      • Point
      • Wireframe
      • Solid
    • Shading Modes
      • Flat
      • Gouraud
    • Vertex Data and the FVF
    • DrawPrimitiveUP
  • Device States
    • Render States
      • Z - Buffering
      • Lighting/Shading/Dithering
      • Backface Culling
    • Transformation States
      • World/View/Projection Matrices
  • Scene Rendering
    • Frame/Depth Buffer Clearing
    • Begin/End Scene
    • Presenting the Frame
  • Device Memory Pools and Resources
    • Video/AGP/System Memory
  • Vertex Buffers
    • Creating Vertex Buffers
    • Vertex Buffer Memory Pools
    • Vertex Buffer Performance
    • Filling Vertex Buffers
    • Vertex Stream Sources
    • DrawPrimitive
  • Index Buffers
    • Creating Index Buffers
    • DrawIndexedPrimitive/DrawIndexedPrimitiveUP
    • Indexed Triangle Strips/Degenerate Triangles

Cameras

Goals:

  • Take a more detailed look at the view transformation and its associated matrix.
  • Create first person, third person, and spacecraft camera types.
  • Learn how to use rendering viewports and see what role matrices play in that process.
  • Use a camera's clipping planes (frustum) to optimize scene rendering.

Key Topics:

  • The View Matrix
    • Vectors, Matrices, and Planes
      • The View Space Planes
      • The View Space Transformation
      • The Inverse Translation Vector
  • Viewports
    • The Viewport Matrix
    • Viewport Aspect Ratios
  • Camera Systems
    • Vector Regeneration
    • First Person Cameras
    • Third Person Cameras
  • The View Frustum
    • Camera Space Frustum Plane Extraction
    • World Space Frustum Plane Extraction
    • Frustum Culling an AABB

Lights

Goals:

  • Understand the fixed-function DirectX Graphics vertex lighting pipeline and its advantages/disadvantages.
  • Examine the primary lighting (ambient/diffuse/specular/emissive) modeled in real-time games.
  • Get comfortable with the most common light types (point/spot/directional) and see how to setup their properties.
  • Configure the lighting pipeline to use our light sources.
  • Learn the role of vertex normals and how to calculate them when necessary.
  • Discuss materials and how they define a surface's interact lights in the environment.

Key Topics:

  • Lighting Models
    • Indirect Lighting
      • Emissive/Ambient Illumination
    • Direct Lighting
      • Diffuse/Specular Light
  • The Lighting Pipeline
    • Enabling DirectX Graphics Lighting
    • Enabling Specular Highlights
    • Enabling Global Ambient Lighting
    • Lighting Vertex Formats and Normals
    • Setting Lights and Light Limits
  • Light Types
    • Point/Spot/Directional
  • Materials
    • Colors, Specular and Power
    • Material Sources
      • Vertex Lighting Advantages/Disadvantages

Texture Mapping

Goals:

  • Understand what textures are and how they are defined in memory.
  • Understand mip maps, how they relate to anti-aliasing, memory footprint, and bandwidth.
  • Look at the various options for loading textures from disk or memory.
  • Learn how to set a texture for rendering.
  • Understand the relationship between texture coordinates and addressing modes.
  • Talk about aliasing and common artifacts and how to use filters to improve visual quality.
  • Learn how to configure the texture pipeline for single and multi-texturing operations.
  • Examine texture compression as a means for reducing memory requirements and improving performance.
  • Use transformation matrices to animate texture coordinates.
  • Get familiar with DirectX texture and surface types and their associated utility functions.

Key Topics:

  • Texture Memory Pools
    • Texture Formats
    • Validating Texture Formats
    • Surface Formats
  • MIP Maps
  • Loading Textures
  • Setting Textures
  • Texture Coordinates
  • Sampler States
    • Texture Addressing Modes
      • Wrap
      • Mirror/Mirror
      • Border
      • Clamp
    • Texture Coordinate Wrapping
    • Texture Filtering
      • Magnification & Minification
      • Point
      • Bilinear
      • Trilinear
      • Anisotropic
  • Texture Stages
    • Texture Color
    • Texture Stage States
  • Multi-Texturing and Color Blending
  • Compressed Textures
    • Compressed Texture Formats
      • Pre-Multiplied Alpha
    • Texture Compression Interpolation
    • Compressed Data Blocks - Color/Alpha Data Layout
  • Texture Coordinate Transformation
  • The IDirect3DTexture Interface
  • The IDirect3DSurface Interface
  • D3DX Texture Functions

Transparency and Fog

Goals:

  • Understand the general blending equation and the related concept of 'alpha' blending.
  • Know where transparency data can be stored (vertices, materials, textures) and the associated pros and cons.
  • Learn how to configure the transformation and texture pipelines to do blending operations.
  • Use alpha testing and alpha surfaces to reject specific texels during rendering (e.g., for chain link fences).
  • Study front-to-back sorting algorithms for transparent polygon rendering.
  • Add colored fog to a scene using both vertex and pixel level computations.
  • Learn the traditional equations for global fog effects: linear, exponential, and exponential squared).

Key Topics:

  • Alpha Components
    • Vertex Alpha & Pre-Lit/Unlit Vertices
    • Material Alpha
    • Constant Alpha & Per-Stage Constant Alpha
    • Texture Alpha
  • The Texture Stage Alpha Pipeline
  • Frame Buffer Alpha Blending
  • Alpha Testing
  • Transparent Polygon Sorting
    • Sorting Algorithms and Criteria
    • Bubble Sort
    • Quick Sort
    • Hash Table Sort
  • Alpha Surfaces
  • Fog
    • Enabling Fog and Setting the Fog Color
    • Vertex/Pixel Fog
    • Fog Factor Formulas
      • Linear/Exponential/Exponential Squared

Meshes

Goals:

  • Introduce the mesh containers in the D3DX library.
  • Use scene level attribute batching and subset rendering to improve performance.
  • Learn optimization techniques to speed up rendering on modern hardware.
  • Look at how to import X file geometry.
  • Learn how to construct and fill mesh internal buffers manually.
  • Discussion cloning (copying) of mesh data and some of the features available during the process.
  • Learn how to manage geometric level of detail (LOD) using view-independent progressive meshes.
  • Look at how to construct and use progressive meshes and see how they work algorithmically.
  • Examine mesh simplification and assorted other useful mesh utility functions.

Key Topics:

  • ID3DXMesh Interface
    • Vertex/Index/Adjacency Buffers
    • Attribute Buffers and Subset Rendering
  • Mesh Optimization
  • ID3DXBuffer
  • Mesh Loading
  • Manual Mesh Creation
  • Mesh Cloning
  • ID3DXPMesh Interface
    • View Independent Progressive Meshes (VIPM)
    • Data Validation and Cleaning
    • Setting LOD
    • LOD Trimming
    • Vertex History
  • ID3DXSPMesh Interface
  • Global Mesh Utility Functions

Frame Hierarchies

Goals:

  • Look at how to import and manage more complex 3D models and scenes.
  • Introduce frames of reference and parent-child hierarchical relationships.
  • Use hierarchies to build more complex scenery consisting of independent, animation-ready meshes.
  • Study X file templates to see how scene data is stored and learn how to load custom data chunks.
  • Examine the D3DXLoadMeshHierarchyFromX function in detail, including callback mechanisms and memory management.
  • Understand how to traverse, transform, and render a hierarchy of meshes.
  • Introduce a simple animation controller to prepare for the next set of topics.

Key Topics:

  • Hierarchies
    • Frame of Reference
    • Parent/Child Relationships
  • X File Templates
    • Open/Closed/Restricted Templates
    • Hierarchical X Files
  • D3DXLoadMeshHierarchyFromX
  • ID3DXAllocateHierarchy Interface
    • Allocating/De-allocating Frames
  • ID3DXMeshContainer Interface
    • Allocating/De-allocating Mesh Containers
  • Extending Hierarchy Data Types
  • ID3DXLoadUserData Interface
    • Loading Custom Top-Level Data
    • Loading Customer Child Data
  • Hierarchy Traversal and Rendering
  • Simple Hierarchy Animation

Keyframe Animation

Goals:

  • Understand the fundamentals of animating game scenes.
  • Use keyframe data to animate the hierarchies introduced previously.
  • Learn the representations of X file animation data and and how it translates to D3DX data structures in the application.
  • Understand how an animation controller interpolates keyframe data and how it can be controlled.
  • Construct a custom animation set object that can be plugged into the D3DX animation system.
  • Learn how to use the animation mixer to blend multiple simultaneous animation tracks.
  • Synchronize the animation timeline with events (e.g., playing sound effects or triggering code).

Key Topics:

  • Keyframes
    • SRT vs. Matrix Animation Data
  • Interpolation
  • X Files and Animation
    • Timing Data
  • D3DX Animation System
  • ID3DXKeyframedAnimationSet
  • ID3DXAnimationController
    • Hierarchy Animation
  • Keyframe Data
  • Animation Blending
    • The Animation Mixer
      • Setting Track Weight, Speed, Priority
      • Enabling & Disabling Tracks
    • Priority Blending
  • Animation Controller Cloning
  • The Animation Sequencer
    • Registering Events
    • Event Handles
  • The Animation Callback System
    • Callback Keys and Animation Sets
    • Executing Callback Functions
    • ID3DXAnimationCallbackHandler Interface

Skinning / Vertex Blending

Goals:

  • Learn how skinning and skeletal animation provides realistic visual results.
  • Understand skins, bones, and skeletons and how they are constructed, animated, and rendered.
  • Look at skinning related X file data templates and the matching game data structures.
  • Examine software and hardware skinning.
  • Examine non-indexed and palette-driven indexed skinning techniques.
  • Integrate animated characters into our experimental framework.
  • Construct a skeleton and skin model programmatically.
  • Generate simple animated trees for demonstration purposes.
  • Extend our lab project middle-tier to include data-driven support for animation switching and blending.

Key Topics:

  • Vertex Tweening
  • Segmented Models and Animation
  • Bone Hierarchies/Skeletons
  • Vertex Blending
  • Skinning
  • X File Templates for Skinning
  • The Bone Offset Matrix
  • Software Skinning
  • ID3DXSkinInfo Interface
  • Non-Indexed Skinning
    • Setting multiple world matrices
    • Enabling/disabling vertex blending
    • ConvertToBlendedMesh
  • Indexed Skinning
    • Determining Support
    • Matrix Palette Indices
    • ConvertToIndexedBlendedMesh
  • Transforming and Rendering Skinned Characters
  • Trees
    • Procedural Skins and Skeletons
    • Procedural Keyframe Animation
  • The Animation Middle Layer
    • Data Driven File Support
    • Animation Set Blending
    • Controller Configuration
    • Playing Back Complex Animations

Collision Detection & Response

Goals:

  • Understand broad and narrow phase collision detection algorithms.
  • Develop a collision detection and response system based on ellipsoids.
  • Understand the mathematics of ellipsoid space.
  • Examine intersection algorithms for the narrow phase.
  • Test rays against common game primitives.
  • Test spheres against triangle interiors.
  • Test swept spheres against the edges and vertices of triangles.
  • Review solving quadratic equations and their role in the detection phase.
  • Learn how to support dynamic objects in terms of detection and response.

Key Topics:

  • Collision Systems Overview
  • Broad Phase vs. Narrow Phase Collision Detection
  • Collision Responses
    • Sliding
  • Ray Intersection Testing
    • Ray vs. Plane
    • Ray vs. Polygon
  • Ellipsoids, Unit Spheres, and Ellipsoid Space
  • Swept sphere vs. Triangle
  • Quadratic Equations
  • Swept Sphere Intersection Testing
    • Swept Sphere vs. Edge
    • Swept Sphere vs. Vertex
  • Animation and the Collision Geometry Database
  • Dynamic Object Collision Support

Spatial Partitioning

Goals:

  • Examine axis-aligned hierarchical spatial partitioning data structures like quadtrees, octrees, and kD-trees.
  • Implement broad phase collision detection using spatial partitioning to improve performance.
  • Examine hardware-friendly rendering of spatial trees.
  • Use hierarchical frustum culling to speed up scene rendering.
  • Use frame coherence to improve rendering performance.

Key Topics:

  • Spatial Partitioning Data Structures/Algorithms
    • Quadtrees
    • Octrees
    • kD Trees
  • Polygon Clipping
  • Polygon Database Intersection Querying
    • Ray/AABB/Sphere testing
  • Broad Phase Implementation for Collision System
  • Frame Coherence
  • Hardware Friendly Rendering
    • Static vs. Dynamic Solutions
    • Polygon Caches (Pros/Cons)
  • Hierarchical Frustum Culling/Rendering

BSP Trees & Constructive Solid Geometry (CSG)

Goals:

  • Understand the Binary Space Partitioning (BSP) tree.
  • Learn how to compile BSP node trees and use them for pixel-perfect transparent polygon sorting.
  • Create BSP leaf trees and examine how to add solid and empty space information to our BSP tree representation.
  • Use BSP trees to perform constructive solid geometry (CSG).
  • Learn how to use CSG to merge geometric objects and carve shapes out of other shapes.

Key Topics:

  • Node BSP Trees
    • Transparent Polygon Sorting
  • Solid Leaf BSP Trees
    • Rendering
    • Line of Sight Tests
  • Constructive Solid Geometry (CSG)
    • Union Operation
    • Intersection Operation
    • Difference Operation

Potential Visibility Sets (PVS)

Goals:

>
  • Understand and learn how to calculate potential visibility sets (PVS).
  • Discuss portal generation and clipping.
  • Examine penumbras and anti-penumbras to see how volumetric lighting techniques can be used as visibility proxies.
  • Model the flow of light through the scene for visibility.
  • Learn how to compress PVS information.
  • Use PVS to efficiently render complex scenes.
  • Learn now to avoid problems caused by illegal geometry during BSP compilation.

Key Topics:

  • Portals
    • Portal Clipping
  • Potential Visibility Sets
    • Zero Run Length Encoding
    • Scene Rendering
  • Anti-Penumbras
    • Generator Portal Visibility
    • Portal Flow

Effect Files

Goals:

  • Understand how to use effects to manage state and organize scene rendering.
  • Learn how to load and compile effects from files, resources, and memory buffers.
  • Learn how to send custom data to the graphics pipeline for state management and as prelude to our coming shader discussions.

Key Topics:

  • Effect File Components
    • Parameters
    • Techniques
    • Passes
    • Functions
  • Effects and Device States
    • Render States
    • Texture Stage States
    • Sampler States
    • Transform States
    • Light States
    • Material States
  • Integrating Effect Files
    • Loading and Creating Effects
      • D3DXCreateEffect
      • D3DXCreateEffectFromFile
      • D3DXCreateEffectFromResource
      • Macros
      • Includes
      • Extended Functions
      • The ID3DXInclude Interface
      • The Effect Compiler
      • Custom State Managers
    • Rendering with Effects
      • Beginning and Ending Techniques
      • Beginning and Ending Passes
      • CommitChanges
    • Handling Lost Devices
    • Getting and Setting Effect Parameters
    • Parameter Blocks
    • Semantics
    • Annotations
    • Effect Pools and Parameter Sharing

Shaders

Goals:

  • Understand shader hardware architecture and the concept of shader models.
  • Learn how to use vertex and pixel shaders to replace fixed-function rendering techniques.
  • See how to use HLSL with effect files to simplify shader integration into our code framework.
  • Understand how data is passed from our application to shader programs running on the GPU.
  • Convert our vertex lighting model to a per-pixel model that supports bump maps and real-time shadows.
  • Introduce render target textures and deferred rendering.
  • Learn how to use pixel shaders to process images to accomplish various effects.

Key Topics:

  • The Evolution of Programmable Shaders
  • Shader Models
  • Vertex and Pixel Shader Overview
  • Shader Programs and the GPU
    • Shader Hardware Architecture
    • The Vertex Shader Unit
    • The Pixel Shader Unit
    • Registers
  • HLSL Shaders
    • Compiling Shaders
    • HLSL Shaders with Effects
    • HLSL Shaders without Effects
    • Shader Semantics
    • Vertex Declarations
    • Structures for Input/Output
    • Uniform Inputs
    • HLSL Keywords
    • Intrinsic Functions
    • Effects and The Pre-Shader
  • Transformation & Lighting with Shaders
    • Vertex Transformation and Lighting
    • Vertex Blending and Skinning
    • Texturing and Samplers
    • Per-Pixel Diffuse and Specular Lighting
    • Per-Pixel Normal Mapped Lighting
      • Creating Normal Maps
      • Tangent Space
    • Per-Pixel Lighting with Shadows
      • Shadow Maps
      • Shadow Map Aliasing
      • Parallel Split Shadow Maps
  • Deferred Rendering
    • Render Targets
    • Geometry Buffers
    • Lighting vs. Shading
  • Image Processing
    • Processing Chain
    • Color Manipulation
    • Resampling
    • Blurs
  • High Dynamic Range (HDR) Lighting
    • sRGB and Linear Lighting
    • Tone Mapping
    • HDR Texture Compression

Image Based Rendering

Goals:

  • Learn how to use image based rendering techniques to add complex objects and effects at low cost.
  • Understand the different types of billboards available and what scenarios each is best suited for.
  • Learn how to use particle systems to create dynamic effects like smoke, rain, snow, dust, etc.

Key Topics:

  • Image Based Rendering Overview
    • Historical Perspective
    • Sprites
    • Use in Modern Games
  • Billboards
    • Screen/View Plane Aligned
    • World Aligned
    • View Point Aligned
    • Axial
  • Billboard Rendering
    • Billboard Updates
    • Buffer Management
    • Instancing Strategies
    • Vertex Shader Billboard Expansion
    • Lighting and Textures
    • Sorted vs. Unsorted Drawing
    • Screen-Door Transparency
  • Particle Systems
    • Overview and Use Cases
    • Basic Physics
    • Hard vs. Soft Particles

Environment Rendering

Goals:

  • Understand how to use noise functions to generate a variety of important procedural effects.
  • Upgrade our terrain rendering with better geometry and more flexible lighting and texturing models.
  • Introduce a new sky model that allows for more realistic visuals and improved scene lighting.
  • Learn how to render simple but attractive water to add more realism to our scenes.

Key Topics:

  • Noise
    • Perlin Noise
    • Turbulence
    • Fractals
    • Perturbation
    • Smoothing/Filtering
  • Procedural Terrains
    • Heightmaps
      • Voronoi Diagrams
      • Multi-Fractals
      • Thermal Erosion
      • Hydraulic Erosion
    • Texturing
      • Pixel Shader Layered Blending
      • Height and Slope Based Weights
      • Triplanar Texture Mapping
      • Detail and Normal Mapping
  • Sky Rendering
    • Sky Domes and Sky Planes
    • Skylight and Sunlight
    • Atmospheric Scattering
    • Cloud Generation and Lighting
    • Sunlight Shafts
  • Water Rendering
    • Animated Water Surfaces
    • Reflection and Refraction
    • Water Optics

Lightmapping

Goals:

  • Understand how precomputed lighting can be used to reduce the costs of scene rendering.
  • Learn how to create lightmap texture coordinates using mesh parameterization.
  • Examine how atlasing allows us to pack large amounts of lighting information into a small number of textures.
  • Build a basic ray-based direct lighting lightmapper with soft shadows.
  • Build a GPU-based hemicube renderer with support for indirect, emissive lighting, and ambient occlusion.
  • Include support for lighting normal mapped geometry with directional lightmapping solutions.
  • See how irradiance caching can be used to speed up lightmap compilation times.
  • Learn how to reduce HDR lighting texture bandwidth with various compression algorithms.

Key Topics:

  • View-Independant Precomputed Lighting
  • Mesh/Scene Parameterization
  • Texture Atlases
    • The Gutter Helper
  • Direct Lighting Compiler
    • Ray Tracing (CPU)
    • Light Sources
    • Lightmap Filtering
  • Indirect Lighting Compiler
    • The Radiosity Equation
    • Hemicube Rendering (GPU)
    • Emissive Lighting
    • Ambient Occlusion
  • Directional Lightmaps
    • Radiosity Normal Mapping
    • Spherical Harmonics
    • Approximated Precomputed Specular
  • Irradiance Caching
  • Lightmap Texture Compression
    • 8-bit HDR Formats (LogLUV, RGBe, RGBm)
    • DXT Texture Compression

Presentations

  • 3D Graphics Fundamentals I
  • 3D Graphics Fundamentals II
  • DirectX Graphics Fundamentals I
  • DirectX Graphics Fundamentals II
  • Primitive Rendering I
  • Primitive Rendering II
  • Camera Systems
  • Lighting
  • Texture Mapping I
  • Texture Mapping II
  • Alpha Blending
  • Meshes
  • Frame Hierarchies
  • Keyframe Animation I
  • Keyframe Animation II
  • Skinning I
  • Skinning II
  • Collision Systems I
  • Collision Systems II
  • Spatial Partitioning I
  • Spatial Partitioning II
  • Spatial Partitioning III
  • Spatial Partitioning IV

Projects

  • Lab Project 1: Wireframe Renderer
  • Lab Project 2: DirectX Graphics Initialization
  • Lab Project 3: Device Enumeration
  • Lab Project 4: Static Vertex Buffers
  • Lab Project 5: Simple Terrain Renderer
  • Lab Project 6: Dynamic Vertex Buffers
  • Lab Project 7: Dynamic Lights
  • Lab Project 8: Scene Lighting
  • Lab Project 9: Simple Texturing
  • Lab Project 10: Terrain Detail Texturing
  • Lab Project 11: Scene Texturing
  • Lab Project 12: GDI and Textures
  • Lab Project 13: Offscreen Surfaces
  • Lab Project 14: Vertex Alpha
  • Lab Project 15: Alpha Testing
  • Lab Project 16: Alpha Sorting
  • Lab Project 17: Texture Splatting
  • Lab Project 18: Mesh Viewer
  • Lab Project 19: Level of Detail
  • Lab Project 20: Mesh Hierarchies
  • Lab Project 21: Mesh Animation
  • Lab Project 22: Animation Splitter
  • Lab Project 23: Skin Viewer
  • Lab Project 24: Animation Splitter II
  • Lab Project 25: Tree Generation I
  • Lab Project 26: Tree Generation II
  • Lab Project 27: Skinned Characters
  • Lab Project 28: Collision Detection
  • Lab Project 29: Spatial Partitioning I
  • Lab Project 30: Spatial Partitioning II
  • Lab Project 31: Solid Leaf BSP Compiler
  • Lab Project 32: Portal & PVS Compiler
  • Lab Project 33: Basic Effect Files
  • Lab Project 34: Effect Driven Terrain
  • Lab Project 35: Effect Compilation & Enumeration
  • Lab Project 36: Shared Effect Parameters

Requirements

  • Microsoft Visual C++ 7.0 (2002 .NET) or higher.
  • Microsoft DirectX SDK (latest).

Mathematics


  • 1 Textbook
  • 11 Presentations
  • 74 Projects
  • 1 Supplemental

Math is the foundation of all video games. Although mathematics cannot be avoided, it doesn't have to be a dreadful experience either. Our training combines the depth of knowledge necessary to build realistic video games with a friendly approach that reduces much of the struggle. Whether you're developing your own game engine from scratch or using a third-party engine like Carbon or Unity, you'll be in great shape for the computational challenges ahead.

Topics

Real Numbers

Goals:

  • Understand how the real numbers (integers, rational & irrational numbers) are used and the operations we can perform on them.
  • Ensure a common "language" with a study of number lines and basic interval notation.
  • Discuss equations and their properties (reflexive, symmetric, transitive, substitution).
  • Get comfortable with fractions and exponents.

Key Topics:

  • Introduction to Real Numbers
  • Use of Real Numbers
  • Number lines and interval notation
  • Equations and their properties
  • Operations
    • Order of Operations
  • Fractions
  • Exponents

Algebra and Functions

Goals:

  • Review the principles of high school level algebra.
  • Understand the concept of a variable and how variables are used to form equations.
  • Discuss the fundamental algebraic rules for solving single-variable and multi-variable equations.
  • Solve linear equations and non-linear equations such as quadratics.
  • Nail down the methods for simplifying and rearranging equations.
  • Look at some of the common functions used in game development.
  • Discuss domain, range, sets, inverse functions, square roots, exponentials, and logarithms.

Key Topics:

  • Algebra
    • Variables
    • Solving single-variable equations
    • Solving multi-variable linear equations
    • Solving non-linear equations
    • Simplifying/Rearranging
      • Collecting Like Terms
      • Factoring
      • Expanding (FOIL)
  • Functions
    • Set Theory Basics
    • Square Roots
      • The Quadratic Equation
    • Exponential Functions
    • Logarithmic Functions

Geometry

Goals:

  • Understand the basics of analytic geometry.
  • Learn about the Cartesian coordinate system and the notion of graphing points.
  • Examine lines, planes, and spheres and their equations in 2D and 3D.
  • Learn how to find the intersections of the shapes introduced previously.

Key Topics:

  • Analytic Geometry
    • The Cartesian Coordinate System
      • Graphing equations and functions
    • Equations of Geometric objects
      • Lines/planes/spheres
    • Intersecting geometric objects
      • Line/line and line/sphere

Set Theory

Goals:

  • Understand the basics of set theory and its symbols.
  • Learn how entities are grouped into sets.
  • Conduct various operations on sets, such as unions and intersections (i.e., the algebra of sets).
  • Introduce the relationship between functions and sets to set the stage for the next conversation.

Key Topics:

  • Introduction to Set Theory
    • The Language of Set Theory
    • Set Membership
    • Subsets, Supersets, and Equality
    • The Algebra of Set Theory
    • Set Theory and Functions

Functions

Goals:

  • Understand the role of functions in mathematics and in games.
  • Look at the concept of mapping values between domain and range.
  • Spend time visualizing various kinds of functions using graphs.
  • Discuss some of the popular functions (absolute value, exponential, logarithmic) used in game development.
  • Model game phenomena like fog and weapon damage using functions.
  • Design a custom function and develop a means for selecting appropriate values that reflect the desired outcome.

Key Topics:

  • Mathematical Functions
  • Graphs
    • Single-Variable Functions
    • Two-Variable Functions
  • Families of Functions
    • Absolute Value Function
    • Exponential Functions
      • Fog Density
      • Damage Calculations
    • Logarithmic Functions
      • Using the Log Function for Game Development

Polynomials

Goals:

  • Examine the algebra of polynomials.
  • Study graphs for various kinds of polynomial functions.
  • Learn how to apply different kinds of polynomials in game development projects.
  • See how to use linear interpolation to draw polygons on the display.
  • Learn how to use polynomials to approximate the behavior of complex functions too costly to compute in real-time games.
  • Learn how to use polynomials to predict the future values of variables.

Key Topics:

  • Polynomial Algebra (Single Variable)
    • Addition/Subtraction
    • Scalar Multiplication
    • Multiplication/Division
  • Quadratic Equations
  • Graphing Polynomials
  • Using Polynomials
    • Linear Interpolation
    • Approximating Functions
    • Prediction

Trigonometry

Goals:

  • Develop a firm grasp of the properties of triangles, and right triangles in particular.
  • Look at the relationships that exist between the internal angles and the lengths of triangle sides.
  • Understand the most commonly used trigonometric functions (sine, cosine, tangent) that relate triangle properties to unit circles.
  • See how to use triangle properties and functions to solve a number of issues related to graphics programming.
  • Create an animated wave function that might be used for a water or cloth simulation.
  • Examine how to use trigonometric concepts to render circles and ellipses on the display.
  • Look at how inverse trig functions (arcsin, arcos, arctan) can be used to determine angle values.
  • Get comfortable with the core trig identities, such as the reduction and double angle identities.
  • Learn how to use trig identities as a means for deriving mathematical proofs.
  • Use trigonometry to rotate points in two and three dimensions.
  • Construct a proper field-of-view for an in-game camera system.

Key Topics:

  • Angles
    • Common Angles
    • The Polar Coordinate System
  • Triangles
    • Properties
    • Right Triangles
  • Introduction to Trigonometry
    • The Trigonometric Functions
    • Applications of Basic Trigonometry
    • Solving Triangle Problems
  • Modeling Phenomena
    • Modeling Waves
    • Drawing Circles and Ellipses
    • Projection
  • Trig Functions
    • Derivative Trigonometric Functions
    • Inverse Trig Functions
    • Identities
      • Pythagorean Identities
      • Reduction Identities
      • Angle Sum/Difference Identities
      • Double-Angle Identities
      • Sum-To-Product Identities
      • Product-to-Sum Identities
      • Triangle Laws
  • Applications
    • Point Rotation
    • Field-of-View

Analytic Geometry

Goals:

  • Learn the basics of analytic geometry.
  • Use functions and polynomials to mathematically represent points, lines, planes and ellipses.
  • Understand 2D lines and their various forms, including the all-important parametric representation.
  • Look at intersection and distance formulas with respect to lines, points, and planes.
  • Briefly examine ellipsoidal intersections.

Key Topics:

  • Points and Lines
  • Two-Dimensional Lines
  • Parametric Representation
  • Parallel and Perpendicular Lines
  • Intersection of Two Lines
  • Distance from a Point to a Line
  • Angles between Lines
  • Three-Dimensional Lines
  • Ellipses and Ellipsoids
    • Intersecting Lines with Ellipses
    • Intersecting Lines with Spheres
  • Planes
    • Intersecting Lines with Planes

Vectors

Goals:

  • Get very comfortable with vectors, the mathematical heart of all 3D game engines.
  • Learn vector addition and subtraction, scalar multiplication, and the all-important dot and cross products.
  • Examine the use of vectors in games.
  • Discuss the relationship between vectors and planes and the plane representation.
  • Revisit distance calculations using vectors.
  • Learn how to rotate and scale geometry using vector representations of mesh vertices.

Key Topics:

  • Elementary Vector Math
    • Linear Combinations
    • Vector Representations
    • Addition/Subtraction
    • Scalar Multiplication/Division
    • Vector Magnitude
    • The Dot Product
    • Vector Projection
    • The Cross Product
  • Applications of Vectors
    • Directed Lines
    • Vectors and Planes
    • Back-face Culling
    • Vector-based Plane Representation
    • Distance Calculations (Points, Planes, Lines)
    • Point Rotation, Scaling, Skewing

Matrices

Goals:

  • Get very comfortable with matrices, one of the other core components of every 3D game engine.
  • Understand matrices from a purely mathematical perspective.
  • Know what matrices are and what problems they are intended to solve.
  • Examine important matrix mathematics -- addition and subtraction, multiplication by scalars and/or by other matrices.
  • Learn how to use matrices to solve systems of linear equations with Gaussian elimination.
  • Understand the idea of linear transformations.
  • Learn how 4D homogenous coordinates can make the non-linear translation operation compliant with matrix operations.
  • Examine a number of common matrices used to effect transformations in 3D games (projection, rotation, translation, scaling, skewing).
  • See how to perform rotations around all three coordinate axes.
  • Study the vector/matrix transformation operation (multiplication) at the heart of all 3D graphics rendering pipelines.

Key Topics:

  • Matrices
    • Matrix Relations
    • Matrix Operations
      • Addition/Subtraction
      • Scalar Multiplication
      • Matrix Multiplication
      • Transpose
      • Determinant
      • Inverse
    • Systems of Linear Equations
    • Gaussian Elimination
  • Linear Transformations
    • Computing Linear Transformation Matrices
    • Translation and Homogeneous Coordinates
    • Transformation Matrices
      • The Scaling Matrix
      • The Skewing Matrix
      • The Translation Matrix
      • The Rotation Matrices
      • The Projection Matrix
    • Linear Transformations in 3D Games

Quaternions & Imaginary Numbers

Goals:

  • Examine the concept of imaginary numbers and the various arithmetical operations that can be performed on them.
  • Discuss the similarities and differences between imaginary and real numbers.
  • Study complex numbers and the algebra involved in working with them.
  • Examine the quaternion and its associated algebra.
  • Look at applications of the quaternion in game development.
  • Understand how to use quaternions to perform rotations about arbitrary axes.
  • Solve the gimbal lock problem encountered with Euler angles.
  • Create an updated world-to-view space transformation matrix that is derived from a quaternion after rotation has taken place.

Key Topics:

  • Imaginary Numbers
    • Powers
    • Multiplication/Division
    • Addition/Subtraction
  • Complex Numbers
    • Addition/Subtraction
    • Multiplication/Division
    • Powers
    • Complex Conjugates
    • Magnitude
  • Quaternions
    • Addition/Subtraction
    • Multiplication
    • Complex Conjugates
    • Magnitude
    • Inverse
    • Rotations
    • World-to-View Transformation

Practical Applications

Goals:

  • Spend time focusing on some practical applications of mathematics in games.
  • Look at how analytic geometry plays an important role in a number of different areas of game development.
  • Learn how to design a simple collision/response system in 2D using lines and planes (e.g., a billiards simulation).
  • Find a way to detect collision between two convex polygons of arbitrary shape.
  • Use vectors and planes to create reflections such as might be seen in a mirror.
  • See how to use of a convex volume to create shadows in a game world.
  • Take a look how vector dot products can be used to determine the lighting and shading of points across a surface.

Key Topics:

  • 2D Collisions
  • Reflections
  • Polygon/Polygon Intersection
  • Shadow Casting
  • Lighting

Presentations

  • Set Theory
  • Functions
  • Polynomials
  • Basic Trigonometry I
  • Basic Trigonometry II
  • Analytic Geometry I
  • Vector Mathematics
  • Matrix Mathematics I
  • Matrix Mathematics II
  • Quaternion Mathematics
  • Analytic Geometry II

Projects

Numerous mathematical exercises related to the topics covered are included at the end of each textbook chapter. (Solutions also available for separate download.)

Requirements

  • Microsoft Visual C++ 7.0 (2002 .NET) or higher.
  • Microsoft DirectX SDK (latest).

Artificial Intelligence


  • 1 Textbook
  • 8 Presentations
  • 5 Projects
  • 2 Supplementals

Just about all video games require non-player characters that provide the illusion of intelligent thought. This material will teach you how to develop AI entities capable of navigating their environments, both individually and in groups, while displaying appropriate and customizable levels of decision making ability. Artificial intelligence is often the determining factor between games that are engrossing and fun to play and those that are destined for the bargain bin.

Topics

General AI Principles

Goals:

  • Layout a few guidelines for AI in games.
  • Learn about some of the different types of AI that exist.
  • Introduce the fundamentals of pathfinding and explore the different types available.
  • Work through some specific pathfinding examples.

Key Topics:

  • General Principles of AI
    • The KISS Method
    • Hard != Fun
    • Play Fair
  • Fundamental AI Types
    • Decision Making
    • Classification
    • Life Systems
    • Pathfinding
  • Types of Pathfinding
    • Non-Look-Ahead Iterative Traversals
    • Look-Ahead Iterative Traversals
    • Look-Ahead Recursive Traversals
  • Non-Look-Ahead Iterative Traversals
    • Random Backstepping
    • Obstacle Tracing

Look-Ahead Iterative Pathfinding

Goals:

  • Examine look-ahead iterative traversals for pathfinding.
  • Understand Breadth-First Search, Best-First Search, and Dijkstra's search.
  • Learn about the Depth-First Search.

Key Topics:

  • Look-Ahead Iterative Traversals
    • Breadth First Search
    • Best First Search
    • Dijkstra's Search
  • Look-Ahead Recursive Traversals
    • Depth First Search

A* and Hierarchical Pathfinding

Goals:

  • Discover the famous A* search algorithm -- how it works, its limitations, and how to make it more efficient.
  • Use the concept of heuristics to produce better traversal results.
  • Talk about how we might apply A* to a simple RTS game.
  • Introduce hierarchical pathfinding and discuss some possible use cases.

Key Topics:

  • A* Search
    • How A* works.
    • Limitations of A*
    • Making A* more efficient
    • Heuristics
  • Hierarchical Pathfinding

Non-Gridded Map Pathfinding

Goals:

  • Complete our pathfinding studies with a look at pathfinding on non-gridded maps.
  • Discuss methods for dealing with non-gridded worlds.
  • Examine the design strategy used for the Pathfinding Demo, and see how the interface can be extended for your own use.

Key Topics:

  • Grid It
  • Visibility Points / Waypoint Networks
  • Radial Basis
  • Cost Fields
  • Quad-Trees
  • Mesh Navigation

Behavior-Based Movement

Goals:

  • Introduce the concept of decision making in AI.
  • Examine various types of behavior-based movement to control single and grouped AI entities.
  • Study a traditional implementation of flocking that demonstrates various behaviors for movement.

Key Topics:

  • Separation
  • Cohesion
  • Alignment
  • Avoidance
  • Separation
  • Cohesion
  • Alignment
  • Avoidance
  • Cruising
  • Stay Within Sphere

Descision Making

Goals:

  • Examine the different types of decision making commonly used in game AI systems.
  • Discuss state machines in detail -- one of the most popular types of decision making systems.
  • Develop an understanding of transition diagrams and see how they can be used for state machines.

Key Topics:

  • Decision Making
    • Decision Trees
    • State Machines
    • Rule Base
    • Squad Behaviors
  • Finite State Machines
    • Transition Diagrams
    • Uses for State Machines
      • A.I.
      • Animation
      • Game State
      • Save File System

Scripting

Goals:

  • Discuss scripting and why it is important when developing an AI system.
  • Learn how to integrate Python, a popular scripting language, into the state machine we developed earlier.

Key Topics:

  • Scripting Basics
  • Introdution to Python
    • Default Types and Built-ins
    • Classes
    • Functions
    • Control Statements
    • Importing Packages
  • Embedding Python
    • Boost.Python
    • Scripting Engines

Waypoint Networks

Goals:

  • Learn how to create waypoint networks and how to load and store them in our AI engine.
  • Examine some of the different kinds of data that can be stored at waypoints to help the AI make decisions.
  • Traverse a waypoint network using our pathfinding methods for the purposes of navigating around in the environment.

Key Topics:

  • Waypoint Networks
    • Loading and Storing Waypoints
    • Edges
      • Unidirectional vs. Bidirectional
      • Cost Modifiers
    • Waypoints and Decision Making
      • State Machine Updates
      • Waypoint Orientation
    • Waypoints and Navigation
      • A* Traversals

Presentations

  • Introduction to AI and Pathfinding
  • Look-Ahead Iterative Methods of Pathfinding
  • Data Structures
  • Non-Gridded Pathfinding and The Pathfinding Demo
  • Flocking
  • Decision Making
  • Scripting
  • Waypoint Networks

Projects

  • Lab Project 1: Pathfinding
  • Lab Project 2: Behaviors
  • Lab Project 3: State Machines
  • Lab Project 4: Waypoint Networks
  • Lab Project 5: Final Demo

Requirements

  • Microsoft Visual C++ 7.0 (2002 .NET) or higher.
  • Microsoft DirectX SDK (latest).
  • ActiveState Python 2.3 or higher.

Art & Animation

3D Modeling and Animation


  • 42 Presentations (40+ hours)
  • 5 Projects
  • 2 Supplementals

Learn how to build, texture, and animate beautiful 3D models and environments for use in video games. The tricks and techniques used by the pros are all included here, so you can take your concepts from imagination to in-game reality. With over 40 hours of step-by-step video training, you will master Autodesk 3ds Max -- the industry's most popular choice when it comes to building video game assets. This is essential material for aspiring artists and professionals alike.

Topics

Interface and Simple Objects

Goals:

  • Learn the basic features and interface elements of the 3D Studio Max software.
  • Address any software or display issues that might be occurring on your computer.
  • Create basic objects and learn how to access object parameters.
  • Discuss Low-Poly vs. High-Poly object creation.
  • Examine the view ports and other basics of the environment like transforms, mesh types and selection types.
  • Do some complex object manipulations in order to get nicer looking polygon structures.

Key Topics:

  • Basic Interface
    • Display settings and other settings
    • How to make basic primitives and objects
    • View port controls and settings
    • Panning, rotating and zooming within the view ports
    • View port menus
    • The Quad Menu
  • Low poly objects and high poly objects.
    • Creating a few objects for the main project
  • Moving around in 3D space
    • Getting used to the perspective view port
    • Moving, rotating and Scaling objects
    • Generating arbitrary plane-aligned bounding boxes
  • Importing/exporting
  • Using the Edit Poly object type
    • Sub objects within edit poly
    • Various modifiers and controls within edit poly
  • How to select objects
  • Adjusting or moving an objects pivot
  • Linking and unlinking objects

Modeling

Goals:

  • Start using tools in conjuntion with each other.
  • Explore new modifiers and see how they work in conjunction with the modifier stack.
  • Learn about splines and use them to make compound object types such as lofts and cross sections.
  • Understand the duplicating processes of mirroring and cloning.
  • Learn how to merge scene components together.
  • Examine Booleans and spline Booleans to make more complex objects.
  • Make lofts which will extrude a spline shape created along a path (great for pipes!).
  • Introduce basic animation concepts.
  • Add linking to your skill set along with basic animation of linked objects.
  • Learn about pivot points.
  • Examine various cutting techniques to divide meshes beyond what is possible with the basic segment controls.
  • Learn about using the spacing tools (great for picket fences, vehicle details, etc.).
  • Examine soft selections and learn how to sculpt models like clay.
  • Use smoothing groups to get rid of those pesky faceted surfaces.
  • Use scatter objects to add environmental details like grass or rocks to your scenes.
  • Use mesh smooth to make low polygonal objects look smoother.
  • Learn how to add wear and tear details to your texture maps in Photoshop to make them look more realistic.

Key Topics:

  • Modifiers
    • Using the modifier stack
    • Order of modifiers
  • Creating splines
    • Making lofts from splines
    • Using loft deforms
    • Lofts from objects
    • Lathes
    • The cross section and surface modifier
  • Duplicating objects
    • Mirror
    • Clone
  • Hiding and un-hiding objects in the view ports
  • Merging objects from other scenes
  • Overall scene scale
  • General box modeling techniques
  • Saving scene material
  • Booleans
    • Object Booleans
    • Spline Booleans
  • Extruding splines to make objects
  • More box modeling techniques
    • Target weld
    • Weld threshold
    • Creating new geometry
  • More modifiers
    • Path deform
    • FFD
    • Lattice
  • Pivots
    • Moving a pivot
    • How pivots affect linked objects
  • Linking and unlinking objects together
    • Hierarchies and how they affect the linked objects
  • Cutting meshes and creating new edges
    • Edit poly: cut
    • Edit poly: Slice plane
  • Grouping objects together
    • Grouping pros and cons
    • Ungrouping
  • Snap controls
    • Snap to grid
    • Snap to vertex
    • Snap to surface
  • The resource collector
    • Saving your work so all assets get saved properly
  • More modifiers and modeling techniques
    • Connect
    • Edge bridge
    • More loft types and techniques
    • Using the spacing tool
    • Modeling with soft selections
    • Using the compound scatter type
    • Creating complex (high poly) objects with mesh smooth
    • Creating polygons from edges
    • How to clone polygon selections
  • Smoothing groups

Creating and Applying Textures

Goals:

  • Learn how to create and apply texture maps to add detail to your models.
  • Examine simple UVW coordinate generation.
  • Learn how to make good looking and functional texture maps in Photoshop.
  • Learn some new Photoshop tricks and techniques to make texture creation easier.
  • Learn how to tile a texture so that it repeats seamlessly.
  • Understand texture types like HDR and various bitmap file extensions.
  • Start to develop familiarity with multi sub object types.
  • Use more than one set of UV coordinates and apply different texture maps to a single object.
  • Explore UVW Unwrapping and the UVW Unwrap editor.

Key Topics:

  • The Asset Browser
    • How to easily import and view assets from around your computer
  • Making texture maps
    • Photoshop tips
    • Photoshop brushes
    • Photoshop Layers
    • Adding grime and dirt
    • Tiling a texture
  • Mapping basics
    • UVW Mapping
    • UVW Mapping types
    • Multi sub objects and applying surface IDs
    • Mapping scale and proper UVs
    • Alpha channels and masks
  • The Material Editor
    • Making a basic bitmap shader
    • Making Multi sub object shaders
    • Finding your way around the material editor
    • Specular settings
    • Opacity settings and maps
    • Bump maps and settings
  • The UVW Unwrap editor
  • Fixing X forms
  • Intro to normal maps
    • Nvidia DDS extensions and normal map plugin

Procedural Shaders

Goals:

  • Spend more time in the material editor and learn to create some procedural shaders.
  • Revisit the multi sub material type and explore popular shader types like raytrace, splat, and gradient ramps.
  • Save and retriev shaders you've created.
  • Take advantage of the many materials and shaders stored in Max's material library.
  • Make and apply a cartoon shader to your objects.

Key Topics:

  • More multi sub editor controls
  • More material editor controls and menus
    • Making and finding procedural shader
    • Exploring the material library
    • Saving shaders
    • Retrieving shaders previously saved
    • Retrieving shaders and materials from your scene or object
    • Shader view port controls
    • Using Material slots and the various slots available
    • Creating a reflective surface
    • Cartoon shaders

Lights and Cameras

Goals:

  • Create lights and cameras and place them in your scenes.
  • Develop an understanding of basic lighting models.
  • Master camera placement controls.

Key Topics:

  • Lighting
  • Light types
  • Shadow types associated with each light
  • Changing light types in a scene
  • How to control shadow settings so your shadows look great
  • Placement of lights within a scene
  • Light colors and multipliers
  • Skylights
  • Falloff
  • Volume lights
  • Camera setup and controls

Environment Details

Goals:

  • Revisit the scatter type objects to add more scene detail.
  • Learn how to use displacement maps and do displacement vertex painting.
  • Examine vertex coloring, skyboxes, and blend shaders.

Key Topics:

  • Environment setup
    • Deformations maps
    • Painting deformations
    • Exporting a deformation map
    • Vertex coloring
    • Photoshop techniques for making displacement maps
    • Skybox creation and placement in the scene
  • More scatter objects
    • Skyboxes and making the background for your final project
    • Setting up the skybox multi sub object
  • Shader types for the environment
    • Making and applying blend shaders
    • Top/Bottom shaders

Basic Animation and Rendering

Goals:

  • Animate our vehicle treads and learn simple keyframe animation.
  • Learn how to fix small texture and modeling issues.
  • Use particle generation to add cool effects like rockets, smoke, flame throwers, and more.
  • Make a diorama to show off your model.
  • Introduce parallax/relief mapping to render displacements using a texture-based approach rather than a geometric one.

Key Topics:

  • Animation Menu Basics
  • Skybox creation and placement in the scene
  • Keyframes
  • Animating path deforms
  • Cloning and copying animations
  • Rendering the final scene
  • Rendering particles
  • Dioramas
  • Parallax/Relief Mapping

Creating Error Free Models

Goals:

  • Learn how to create error free models.
  • Revisit box modeling and look at a few processes not covered in our initial conversations.
  • See how to divide edges to add geometric detail right where you want it.
  • Learn how to turn edges to work nicely within your model geometry.
  • Understand how to fix holes in your model caused by broken edges, flipped polygons, or double vertices that need welding.
  • Use "alt x" to ghost an object (a great trick for seeing into a model to figure out where errors are hiding).
  • Find open seams and fix them quickly.

Key Topics:

  • Low polygon modeling techniques
  • View port controls and settings
  • Panning, rotating, and zooming within the view ports
  • View port menus
  • The Quad Menu
  • Box Modeling and Edge Modeling
    • Creating complex structures using basic modeling tools
    • Edge divide, connect, seeing and turning edges
    • Selection techniques
    • Capping holes
    • Correcting holes and errors
  • Using STL check and finding split edges
    • Identifying errors
    • Fixing errors
    • Border extrudes
  • Ghost mode

Modeling Organic Objects

Goals:

  • Explore some new modeling tools and modifiers not yet covered.
  • Begin delving into more complex issues like UV mapping and curved surface modeling.

Key Topics:

  • Organic modeling techniques
    • Chamfer edges
    • Edge loop and ring
    • Bridge
  • Advanced box modeling
    • Using symmetry
  • Intro to UVW Unwrapping processes
  • Smoothing group controls
  • Boolean techniques
    • Fixing boolean errors
  • Vertex weld, edge weld and target weld
  • Insert vertex
  • Cut and slice
  • Clone (both polygons and objects)
  • Detaching polygons
  • Saving scene material

UV Layout Techniques

Goals:

  • Examine the complex process of UV mapping and get comfortable with the UV mapping editor.
  • Use pelt mapping and combing multi sub objects to make textures look good on a model.
  • Introduce specular maps, normal maps, and ambient occlusion maps.
  • Make some simple props.

Key Topics:

  • Multi sub objects (and working with UVW Unwrap)
  • UVW Unwrap advanced techniques
    • UV layout choices
  • Box modeling a simple prop
    • Working with low polygon structures
    • Cutting and designing details within low poly structures
    • Working with concepts and design images within the scene
  • Using checker templates to approximate UV scales
  • Saving scene file assets properly
  • Creating different texture types for export to game engines
    • Ambient occlusion maps
    • Specular maps
    • Diffuse maps
    • Normal maps

Skin Layouts

Goals:

  • Use curved surfaces to begin building an organic character model.
  • Learn how to model organic meshes, building up from single polygons and basic box shapes.
  • Understand how to use edge extrudes and surface modifiers to model complex organics.

Key Topics:

  • Principles behind making maps optimized for unwrapping and UV layouts
  • Various skin layout techniques
  • Differences in layouts for normal and non-normal mapped objects
  • Creating and applying a generic surface material
  • Adding realism to maps
  • Modeling a complex object for use in a game engine

Creature Modeling

Goals:

  • Tackle complex modeling tasks in anatomy.
  • Make muscle structures that look good even with very few polygons to define the form.
  • Use the UV editor to start developing a final texture for your creature.
  • Learn how to connect different body parts and make the seams fit together well.
  • Make a head, ears, and horns for your creature using edge extrudes and more box modeling tricks.
  • Understand the skin layout and how using normal maps can affect the UV layouts.
  • Add a biped rig to pose your model.
  • Use masks and alpha channels to add translucent or masked details (like hair, fins, butterfly wings, plants).

Key Topics:

  • Creating realistic texture skins for character models
    • Exporting UV layouts to Photoshop
      • Opacity slots
      • Masks
      • Alpha channels
      • Normal maps (normal map type)
      • Specular maps
      • Diffuse maps
      • Mapping basics
        • Matching seams in UV unwrap
        • Correcting seams using various software packages
        • Matching scale in the layout (checker maps)
        • Specular settings
        • Opacity settings and maps
        • Bump maps and settings

Advanced UV Mapping

Goals:

  • Learn how to preserve model UV coordinates while continuing to work on a mesh or downsampling from high to low polygon.
  • Create some simple but fun props like plants and rocks for detail.
  • Make normal maps more detailed with features like chamfered edges.
  • Learn how to create normal maps in Mudbox (easy to use and great for adding anatomical details to character meshes).

Key Topics:

  • Preserving UVs when moving from high to low polygon meshes
  • Modifiers types: Shell, push, relax
  • Anatomy based edge modeling
  • Luminosity slots
  • More UVW unwrap editor
    • Show seam display
    • Sketch vertices
  • Render to texture basics
    • Burning skylight shadows into maps (ambient occlusion)

Sprites and Pre-Renders

Goals:

  • Examine pre-rendered sprites.
  • Make lighting rigs and camera templates to make sure our sprites look perfect from all sides.

Key Topics:

  • Sprites and other basic game asset types
  • Rendering sprites
  • Prerendering lights
  • Setting up a sprite rig or template
  • Setting up camera rigs
  • Setting up light rigs

Advanced Texture Types

Goals:

  • Learn more about using ambient occlusion maps to significantly improve a model's look or add grunge.
  • Improve diffuse map appearance by burning in ambient occlusion maps in Photoshop.
  • Spend more time with specular and luminosity maps as well.
  • Learn how to make cloth and realistic clothing with the garment maker modifier.

Key Topics:

  • Ambient occlusion maps
  • Specular maps
  • Luminosity maps
  • Cloth and the garment maker modifier

Pelt Mapping and UV Tips

Goals:

  • Get a good looking final render with pelt mapping, ray traced shadows, and global lighting.
  • Learn how to render a turnaround and set up lighting rigs and camera templates.
  • Revisit some basic features of the biped and skin tools for posing purposes.

Key Topics:

  • Final texturing tips
    • Pelt mapping
    • Using light and dark colouring to establish depth in texture maps
    • Using generic surface materials to establish overall texture
  • Setting up the final renders
    • Turnarounds and displaying final projects
    • Adding environmental details to the turnaround
    • Turnaround templates and rigs
    • Parallax mapping redux
  • How to save everything properly

Presentations

Part I

  • Introduction
  • Basic Interface
  • Display Settings
  • How to Make Basic Objects, Primitives
  • Low Poly vs. High Poly
  • View Port Controls
  • View Port Menus and Settings
  • Move, Scale, Rotate, and Quad Menu.
  • Different Versions, Import, Export
  • Edit Poly and Edit Mesh
  • Selections
  • Project 1 Intro
  • Tank Piece EditPoly Vertex
  • Tank Piece EditPoly Polygon
  • Tank Piece EditPoly ConnectTargetWeld
  • Pivot, Linking, and Unlinking
  • Attaching Objects and Bridge
  • Modifiers
  • Drawing Splines
  • Loft
  • Loft Deforms
  • Lofts from Objects
  • Lathe
  • Cross Section and Surface
  • Mirror
  • Hide, Unhide
  • Cloning
  • Scene Merge, Scene Scale
  • Bevel
  • Selection Sets
  • Box Modeling a Building
  • Basic Max I
  • Basic Max II
  • Merging and Saving
  • Booleans
  • Extruding Splines to Make Surfaces I
  • Path Deform
  • Box Modeling the Tread Holders
  • Box Modeling the Gun Turret
  • Review: Moving a Pivot
  • Grills, Radars, FFD Modifiers and Lattice
  • Rotating a Radar Dish
  • Cut Slice Plane and Slice
  • Extruding Splines to Make Surfaces II
  • Resource Collector
  • Group and View Port Comfit
  • Snap to Grids
  • Box Modeling the Tank Body II
  • Spacing Tool
  • Box Modeling Storage Container
  • Path Deform (WSM) Loft for Pipe
  • Edit Poly: Connect and Bridge
  • Soft Selections
  • Scatter and Smoothing Groups
  • Mesh Smooth, Quick Smooth
  • Connect Target Weld Cut
  • Chamfer Bridge Lattice
  • Bevel CreatePoly Soft Selection
  • Asset Browser
  • Making a Texture Map
  • UV Mapping I Mapping Basic Objects
  • UV Mapping II Mapping the Tank Body
  • Making a Texture Tile
  • Mapping Scale and Proper UV
  • MultiSub I: Mapping IDs and Gizmos
  • MultiSub II: Mapping Tank Body Parts
  • Masks
  • Alpha Channels
  • UVW XForm and Decals
  • UVW Unwrap
  • Normal Maps
  • Specular Normal Mapping
  • Recreating Textures
  • MultiSub III: Mapping Complex Objects
  • Procedural Types
  • Procedural Textures I: The Material Library
  • Procedural Textures II: Adding Bump Maps
  • Procedural Textures III: Making Reflections
  • Procedural Textures IV: Mixing Slots
  • Material Library, Saving, Opening, Basic Menu
  • Cartooning Shader
  • Basic Lighting I: Omni and Spot Lights
  • Basic Lighting II: Lighting Setup
  • Scene Lighting and Skylights
  • Falloff
  • Shadow Controls
  • Volume Light
  • Camera Setup
  • Animation Menu
  • Creating Keyframes
  • Animating the Tank Treads
  • Cloning the Tank Treads
  • Rendering the Final Scene
  • Particles
  • Creating a Diorama
  • Relief and Parallax Mapping I
  • Scene Maintenance
  • Environmental Hints
  • Render Hints

Part II

  • Introduction to Low Poly Modeling
  • Box Modeling I
  • Dividing Edges
  • Turning Edges
  • Fixing Holes
  • Ghosting and Freezing Objects
  • STL
  • Error Check
  • Box Modeling II
  • Box Modeling III
  • Boolean Techniques (Fixing Errors)
  • Edge/Loop Copy Extrude
  • Chamfer (In Edge Mode)
  • Detach poly
  • Merging and Saving.
  • Modeling Tricks I: Connect Target Weld Cut
  • Modeling Tricks II: Chamfer Bridge Lattice
  • Modeling Tricks III: Bevel Create Poly Soft Selection
  • Resource Collector
  • Lining up Scene File with Concepts
  • Layout the UVs of a Simple Prop
  • Simple Prop Diffuse Texture
  • Simple Prop Specular Map
  • Simple Prop Normal Map
  • Simple Prop Ambient Occlusion.
  • Create a Medium Polygon Crate I
  • Create a Medium Polygon Crate II
  • Create a Medium Polygon Crate III
  • Using Checker Templates or Shaders
  • Intro to Creature Modeling
  • Modeling a Complex Object I (leg)
  • Modeling a Complex Object II (body)
  • Modeling a Complex Object III (neck)
  • Welding Anatomy
  • Modeling a Complex Object IV (head)
  • Modeling a Complex Object V (ears/horns)
  • Skin Layout
  • Pelt Mapping (No Normal Maps)
  • Pelt Mapping (With Normal Maps)
  • Exporting the UV Layout
  • Establish Material
  • Masks and Alphas
  • Preserve UVs
  • Modeling Plants
  • Modeling Rocks
  • Masks and Alpha Channels
  • Specular Diffuse Bump and Normal Maps
  • Render to Texture (Strip Normal Map Info)
  • Normal Maps with nVidia
  • Normal Map Combine
  • Details and Normal Maps
  • Sprites
  • Ambient Occlusion Maps
  • Specular Maps
  • Luminosity Slots
  • Cloth and Garment Maker
  • Installing a Biped for Posing
  • Creating an Environmental Turnaround
  • Parallax Mapping Review
  • Setting up the Final Render
  • Saving all the Parts

Projects

Requirements

  • Autodesk 3ds Max (version 8 or higher recommended)
  • Adobe Photoshop (CS3 or higher) is recommended, but not required

Character Design and Animation


  • 42 Presentations (11+ hours)
  • 5 Projects
  • 2 Supplementals

Visually appealing and smoothly animated 3D characters are a fundamental asset in almost every videogame on the market. You'll take your 3D art and animation skills to the next level with exclusive focus on building, texturing, rigging and animating 3D characters for your games. With over 11 hours of hands-on video instruction led by an accomplished game character animator, you'll quickly master these critical skills and start populating your worlds with your own lifelike creations.

Topics

The Character Design Process

Goals:

  • Learn high-level foundations of character design, including Jungian archetypes and borrowing ideas from mythology and religion.
  • Understand how game genre and technical limitations of the game engine have an impact on the type of characters we develop.
  • Learn what to look for when researching other art in a genre.
  • Get comfortable with using sketches.
  • Use expression sheets to explore different moods and action poses.
  • Learn about color studies.
  • Create model sheets to be used as reference in the modeling process.

Key Topics:

  • The Past as Foundation and Inspiration
    • Mythology
    • Art
    • Books
    • Comics
    • Games
    • D&D
      • Monster manual
      • Deities & Demigods
  • Archetypes
    • Jungian archetypes
    • The Hero
  • Impact of Game Genre & Technical limitations on Character Design
  • Game genre and character
  • Hero vs enemy
  • Humanoid or creature?
  • Gun hand vs. mitten hand vs. fully articulated hand
  • Research
    • Genre
    • Style
    • Reference material
  • Concept art
    • Sketches
    • Color studies
    • Expression sheets
  • Model sheets
    • The Da Vinci pose
    • Model sheet views

Humanoid Modeling

Goals:

  • Learn how to model a humanoid character.
  • Understand the importance of planning ahead and modeling in a methodical way.
  • Learn how to make the most of the current polygons before adding more.
  • Understand modeling efficiency and creating potential LOD models as you work.
  • Add extra detail in areas that will bend and deform, such as the joints, tails, and ponytails.

Key Topics:

  • Preparation for Modeling
    • Setting up reference planes
    • Setting up the working environment
  • File Management
    • Incremental saves
    • Save for LOD
  • How many parts?
    • Seamless mesh
    • Rigid parts
    • Separate binding
  • What needs to move?
    • Deformation
    • Joints
  • Knowing when to subdivide
  • Optimization and cleanup
    • STL check modifier
    • Patch Holes modifier
    • Reset transforms, set pivot

Humanoid UVW Mapping

Goals:

  • Examine the process of applying mapping coordinates to a character model.
  • Learn how to strategies for minimizing seams and understanding where to place them on the model.
  • Apply a checkerboard during UVW mapping to more easily visualize the current mapping.
  • Learn how to separate a character into logical parts, flattening and unwrap those parts for mapping.
  • See how to and stitch parts together to create efficient mappings.
  • Render the UVW mapping to create a template that can be used to create the texture map.

Key Topics:

  • Texture coordinates vs texture images
  • Planning ahead
    • Placing the seams
    • Separating parts
  • Mapping
    • Checkerboard for reference
    • UVW Mapping modifier
    • UVW Unwrap modifier
    • Separating & flattening
    • Stitching
    • UVW template

Rigging

Goals:

  • Learn how to set up a character skeleton for animation.
  • Learn how to freeze a mesh so that it can be seen but doesn't get in the way during rigging.
  • Use transparency to better see the mesh and skeleton parts at the same time.
  • Create a biped skeleton and adjust its structure.
  • Understand the limits on the number of bones or joints imposed by game engines.
  • Pick up some tips for choosing the appropriate number of spine and neck (and tail) links.
  • Learn how to scale the bones to fit the mesh, and to place joints in the optimal location for bending.
  • See some great tools for working with symmetrical characters.

Key Topics:

  • Preparation
    • Freezing the mesh
    • Transparency
  • Biped Rigging
    • Creating a Biped
    • Adjusting the Structure of the Biped
      • Game engines and link limitations
      • Figure Mode
      • How many spine links
      • How many neck links
      • The ponytails
      • The tail
    • Fitting the Biped to the mesh
      • Scaling the bones
      • Symmetry
      • Copy, cut and paste
      • Rubber band mode

Skinning

Goals:

  • Bind the model mesh to the skeleton.
  • Use envelopes to make make changes to the topology of the model as necessary, after binding.
  • Learn how to scale and manipulate envelopes for each bone in the skeleton.
  • See how envelope adjustments affect the deformation of the model.
  • Adjust vertex weights manually to limit the extent to which you can make changes to the model.
  • Use the software tools for working with symmetrical models.
  • Learn how to test your model and deformations while working, prior to adding animations.

Key Topics:

  • The Physique modifier
  • Binding the Biped to the mesh
    • Smooth
    • Rigid
  • Working with envelopes
  • Adjusting vertex weights
  • Symmetry
  • Copy, cut and paste
  • Testing your binding

Character Animation

Goals:

  • Study the mechanics of character animation, including both Forward and Inverse Kinematics.
  • Use Biped tools to select commonly used bones and their animation tracks.
  • Revisit keyframing and the edit keyframes and motion in the Track View.
  • Set the skeleton to use the Quaternion and Euler rotation options.
  • Learn the time-tested rules of animation developed by pioneers in the field.
  • Understand the process of animating game characters in detail.
  • Learn how to support animations in one file (back-to-back), or separate files.
  • Get familiar with short animation loops, some of which will begin and end with the idle pose.
  • See how squash and stretch animations can be applied to computer characters.
  • Create an idle animation and progress to walk and run cycles.

Key Topics:

  • Animation Mechanics
    • Forward Kinematics
    • Inverse Kinematics
    • The Biped object
    • The pelvis
      • Pelvis tracks
        • Horizontal
        • Vertical
        • Turning
    • Track View & Biped Keyframing
      • Types of Rotation
        • Working with Quaternions
        • Working with Euler rotations
      • Working with keyframes
        • Adding keys
        • Autokey
        • Set key
        • Editing Keys
          • Horizontal & Vertical Constraints
          • Editing curves
          • Cut, copy and paste
          • Paste opposite
  • Principles of Animation
    • Ease-in and ease-out
    • Squash and stretch
    • Anticipation
    • Followthrough and overlapping motion
    • Secondary action
    • Weight and timing
    • Exaggeration
    • Arcs
  • Working with an animation list
    • One file or many?
    • Back-to-back animations
    • Short loops
  • The Idle pose
  • The Idle animation
  • Walk cycles
  • Run cycles

Presentations

  • Introduction
  • Characters and Story
  • Mythology
  • Mythology in Entertainment
  • Archetypes
  • The Hero
  • The Villain
  • The Mentor
  • The Great Mother
  • The Trickster
  • Final Project Background Story
  • Character Background Story
  • Character Sketches Personality Profiles
  • Refining Character Concepts
  • Ethics
  • Character Design Process
  • Game Genre
  • Hands
  • Technical Limitations
  • Tools of Character Design
  • Drawing
  • Research & Reference
  • Research & Reference for Tor
  • Concept Art - Sketches
  • Concept Art - Evolution
  • The Da Vinci Pose
  • The Model Sheet
  • Color Renders
  • Character Sheet
  • Modeling a Humanoid
  • Preparing to Model
  • Reference Planes
  • Planning Your Model
  • Deformable vs Rigid
  • Box Modeling
  • Modeling the Breastplate
  • Modeling the Boot
  • Modeling the Arm
  • Modeling the Bracers Patch Modeling
  • Modeling the Leg Armor
  • Modeling the Shoulder Armor
  • Modeling Hands
  • Modeling the Head
  • Modeling the Ear
  • More Head Modeling
  • UVW Mapping a Humanoid
  • Pelt Mapping the Arms
  • Pelt Mapping the Shoulder Armor
  • Torso Armor - Pros and Cons of Pelt Mapping
  • The Checkerboard Texture
  • Unwrapping Without Pelt Mapping
  • Stitching Edges
  • As Seamless as Possible
  • Mapping the Hands
  • Mapping the Head
  • Mirrored UVs
  • Finishing a Model
  • Packing and Normalizing the Head UVs
  • Packing and Normalizing the Body UVs
  • Character Animation - Setup
  • Preparing a Model for Rigging
  • Creating a Biped Skeleton
  • Adjusting a Biped Skeleton
  • Figure Mode
  • The Pelvis
  • Note on Knees and Elbows
  • Adjusting the Biped Legs
  • Adjusting the Spine
  • Adjusting the Arms
  • Adjusting the Hands
  • Working with Symmetry
  • Adjusting Head and Neck
  • Skinning
  • Game Engine Considerations
  • Testing
  • Preparation for Skinning
  • Rigid Binding
  • Smooth Binding
  • Envelopes
  • Vertex Weighting
  • Testing Deformations
  • The Physique File
  • The Skin Modifier
  • Mirror Mode
  • Vertex Weighting with Skin
  • Painting Weights
  • Test Poses
  • Mirroring Vertex Weights
  • Skinning the Shoulder
  • Twist Links
  • Skin and Twist Links
  • Saving Envelopes
  • Character Animation - Keyframes
  • The Mechanics of Animation
  • Keyframing
  • The Curve Editor
  • Transformation Curves
  • Ease In and Ease Out
  • Manipulating Curves
  • Animating the Biped
  • The Center of Mass
  • Anchoring Limbs
  • More Keyframing
  • Assigning Controllers
  • Keyframing the Biped
  • Creating Biped Animation
  • Principles of Animation
  • Animation is Art
  • The Study of Motion
  • Rotoscoping
  • Motion Capture
  • The Principles of Animation
  • Ease In and Ease Out
  • Squash & Stretch
  • Follow-Through & Overlapping Motion
  • Secondary Action
  • Weight & Timing
  • Exaggeration
  • Arcs
  • Appeal
  • Solid Drawing
  • Staging
  • Straight Ahead & Pose to Pose
  • New Principles of Animation
  • Animating a Game Character
  • Looping Animations
  • Non-looping Game Animations
  • The Idle Animation
  • The Animation List
  • Turning Animations
  • Walk Animations
  • Swim Animations
  • Creating The Idle Animation
  • The Idle Pose
  • The Clavicles
  • First Frame of Walk Cycle
  • Setting Keys to Plant the Feet
  • Upper Body Movement
  • Game Animation with Character
  • Tuning the Idle Animation
  • Frame Rate
  • Ease in and Out
  • Follow Through and Overlapping Motion
  • Squash and Stretch
  • Follow Through and Overlapping Motion
  • Secondary Motion
  • Weight and Timing
  • Exaggeration
  • Arcs
  • Appeal
  • Solid Drawing
  • Staging
  • Pose-to-Pose Animation
  • Animating the Walk Cycle
  • Rise and Fall
  • A Small Hitch
  • Keeping the Feet on the Ground
  • Symmetry
  • Working with the Mesh
  • Conclusion: Being an Animator

Projects

Requirements

  • Autodesk 3ds Max (version 8 or higher recommended)
  • Adobe Photoshop (CS3 or higher) is recommended, but not required
  • A Wacom (or other compatible) tablet is recommended, but not required
  • Some basic drawing supplies are recommended, but not required

Texture Creation


  • 43 Presentations (14+ hours)
  • 4 Projects
  • 2 Supplementals

Modern video games use textures to provide incredibly rich visual detail at very high speeds. From normal maps to specular masks to pre-baked ambient occlusion, learn the secrets of texture creation, specifically for games, from a seasoned industry pro. With over 14 hours of video packed with techniques and tricks, you'll be generating game assets in no time at all. Perfectly complements our 3D modeling training to make you a fully self-sufficient game artist.

Topics

Painting in Photoshop

Goals:

  • Examine the basic menus and tools of Photoshop.
  • Set up your workspace for quick access to commonly used menu items, filters and buttons.
  • Understand how to work with digital images.
  • Introduce layers and discuss how they will be used for creating and manipulating images.
  • Start painting details and shallow depth elements.
  • Learn how to use the grid to organize textures and reduce load times.
  • Introduce basic layering techniques for adding age, wear, environmental effects, and structural clues to textures.

Key Topics:

  • Introduction
  • Overview / Photoshop Interface
  • Menu items
  • Layers
    • Layer Types
    • Layer Blending
    • Color Dodge and Color Fills
  • Selections
    • Lasso Selections
    • Color Selections
    • Clone and Patch Tools
  • Correcting Digital Photos to Use as Texture Bases
    • Perspective Correction
    • Color Correction
  • Tiling Difficult Textures
    • Offset
  • Using Lights and Darks to Define Details
  • Defining Profiles and Shallow Space
  • Exploring the Grid
    • Power of 2 Grids
    • Thirding
  • Weathering and Age
  • Defining Generic Textures

Brushes and Details

Goals:

  • Continue exploring Photoshop basics while starting to use tools in conjuntion with each other.
  • Examine 3D principles like multisub objects and normal maps.
  • Explore the many uses of brushes in Photoshop.
  • Understand visual clues and how our eyes perceive depth.
  • Discuss normal maps and specular maps.

Key Topics:

  • Review of 3D Material Properties
    • UV Map layouts
    • UV Editors
  • Brushes
    • Directional Brushes
    • Detail brushes
  • Normal Maps
    • Using the nVidia Filter
    • Normal map properties
  • Organizing and Saving Brush Sets
  • Adding Environmental Clues to Textures
    • Wear and Grunge
    • Storytelling with Environmental Wear

Advanced Photoshop Tools

Goals:

  • Continue to explore visual interpretation of our environments.
  • Learn new skills like color matching, smart blurs, and the transform tools.
  • Learn how to extract and integrate elements from different sources to make cohesive images.
  • See how the stroking selection technique allows you to precisely place lines where you need them.
  • Introduce techniques used to make your textures look worn and aged.

Key Topics:

  • Extract Tool
  • Matching Detail Element Color
    • Color Match Tool
  • Stroking Selections
    • Creating Stroked Effects
  • Creating Hard Surface Textures
  • 1 Pixel Brushes
  • Cleaning Textures with Blurs
  • Transform Again

Creating Textures

Goals:

  • Learn how to use polarize to make curved or circular elements.
  • Use actions to reduce work time by recording and playing back processes on a texture or groups of images.
  • Understand the role of masks, alpha, and decals in Photoshop as well as games.
  • Make complex texture maps such as tire prints in mud or snow.
  • Learn how pixel density and UV map coordinates relate our textures to 3D scenery.

Key Topics:

  • Polarize and Creating Curved Structures
  • Blending Environmental Elements
    • Color Matching of Structural Elements
  • Actions and the Production Process
    • Production Tricks to Save Time
  • Masks and Alpha Channels
    • Decals
  • Complex Textures
  • Texture Scale
  • Texture Pixel Density
  • Using Checkerboard Patterns in 3D to Define Scale
  • Using Textures in a 3D Program
  • UV Layouts Using a 3D Program
    • Advanced Techniques
    • Advanced UV Editor Techniques
  • Exporting and Defining Skin Templates in a 3D Program
    • Using Templates in Photoshop

Skins and Templates

Goals:

  • Use structure and environmental wear to dictate what your texture looks like.
  • Explore color theory and design fundamentals.
  • Wrap up the texture painting process.
  • Make your first aged texture skin and apply to a model.

Key Topics:

  • Building Structure into Textures
    • Defining Shallow Space
    • Exploring Structure and Details
    • Exploring Creative Architectural Elements
  • Defining Spaces: Ceilings, Floors, Walls, etc.

Presentations

  • Introduction
  • Working with Digital Photos
  • Perspective Correction
  • Combing Layers
  • Cleaning up Digital Photos
  • Lights and Darks in Shallow Space
  • Practice with Profiles
  • The Grid
  • Noise and Grunge
  • Generics
  • Multisub Review
  • Rock
  • Directional Brushes
  • Vents and Beams
  • Normal Maps and nVidia Filter
  • Introduction to Menutools and Interface
  • Specular Maps
  • Organizing Loading Brushes
  • Visual Clues and Surface Use
  • Brushes II
  • Extracting Image Elements
  • Color Matching
  • Stroking Selections
  • Cement
  • Adding Wear and Tear
  • 1-Pixel Brushes
  • Surface and Smart Blur
  • Transform Again
  • Aging
  • Polarize
  • Sand and Rock
  • Actions All
  • Masks and Alpha
  • Decals
  • Tire Tracks
  • Texture Scale and Pixel Density
  • Texture Scale and Checkerboards
  • Quick UV Mapping
  • Quick UV Mapping Position and Export
  • Structure and Wear
  • Floors Ceiling Trim
  • Tomb Skins / Curb

Projects

  • Project 1: Rock
  • Project 2: Aging
  • Project 3: Tomb Skins
  • Project 4: Curb

Requirements

  • Adobe Photoshop (CS3 or higher).
  • A Wacom (or other compatible) tablet is recommended, but not required

Electronics

Building Video Game Consoles

Hardware Sold Separately


  • 1 Textbook
  • 12 Presentations
  • 36 Projects

Learn how to design and build your own video game console and then program games for it. Beyond the thrill of accomplishment that comes from doing it all yourself, these projects offer a fun and interesting way to pick up some useful hardware engineering experience. Understanding the fundamentals of game hardware (consoles, handhelds, video cards, etc.) will in turn make you a much better game programmer, armed with a deeper understanding of what goes on under the hood.

Topics

Analog Circuitry

Goals:

  • Develop an understanding of analog circuits.
  • Learn some of the fundamentals of electronics including: electron motion, Ohm's law, Kirchoff's laws.
  • Understand some of the common circuit solving techniques.
  • Become familiar with common engineering tools such as solderless breadboards, digital multi-meters, and more.
  • Create a 5 Volt regulator that will be used for all additional hardware experiments.
  • Turn blinking lights (LEDs) on and off with a few simple components.
  • Learn about the relationships between capacitors, inductors, transformers, and transistors.
  • Test circuit designs in software using a circuit simulator.

Key Topics:

  • Understanding electronic signals (analog vs. digital)
  • Voltage and current definitions
  • Ohms Law
  • Power Equations
  • Resistors, Capacitors, Inductors, Transformers
  • Testing Equipment
  • Kirchoff's Laws
  • Voltage Dividers
  • 5 Volt Regulator
  • Mechanical Switches
  • Potentiometers
  • Capacitor Equations
  • Low and High Pass Filters
  • Inductor Equations
  • Rectifiers
  • Transistor Switching
  • Building Inverters
  • Clock Generation
  • SPICE simulations

Digital Circuitry

Goals:

  • Learn about digital circuits.
  • Understand concepts such as Boolean logic, truth tables, logic voltage levels, and basic gates.
  • Become comfortable with binary math.
  • Learn advanced digital design concepts that are required for building game consoles.
  • Learn about glue logic and logic simplification through techniques like K-maps and ones looping.
  • Examine more complicated digital chips like shift registers that are used on the XGS micro-edition for reading joysticks and the SRAM.
  • Get familiar with state machines.
  • Design, on paper, a full state machine with inputs and outputs and then finish the design in hardware with LEDs and switches.

Key Topics:

  • Logic Symbols
  • Truth Tables
  • Boolean Algebra
  • DeMorgan's Theorem
  • Datasheets
  • Loading Concepts
  • DIP Packages
  • Half/Full Bit Adders
  • Logic Simplification
  • Bubble Pushing
  • Minterms/Maxterms
  • K-Maps
  • Decoders, 7 Segment Displays, Muxes
  • Flip Flops
  • State Machine Design

Computer Architecture

Goals:

  • Learn about microprocessors and microcontrollers.
  • Understand the general ideas behind building your own simple computer.
  • Know the inner workings of a processor.
  • Learn how assembly language and machine code comes together to control inputs and outputs.
  • Work with a microprocessor entirely in simulation by writing some basic code.
  • Learn how to run and save your programs without having to touch a single piece of hardware.
  • Perform experiments with the sx-28 microcontroller (the heart of the Pico XGS).

Key Topics:

  • Microprocessors & Microcontrollers
  • Von Neumann vs. Harvard
  • Endianess
  • External/Internal Architecture
  • Pipelining
  • Addressing Modes
  • Interrupts
  • Memory Types
  • Intro to the SX-28 Microcontroller

Designing Game Systems

Goals:

  • Study the early generation game consoles.
  • Examine ideas implemented by other video game console designers, to better understand how all the pieces fit together.
  • Do a series of experiments with sound.
  • Experiment with input devices like the Nintendo controller.
  • Draw video to a TV screen.

Key Topics:

  • SX-28 Overview
  • Jump Tables
  • Accessing RAM
  • SX Registers
  • Assembly Programming the SX-28
  • XGameStation Prototypes
  • D/A Converters
  • Game Console Sound
  • PWM Signals
  • Display Technologies
  • Raster Graphics
  • NTSC Basics
  • Adding Color
  • RGB/VGA Basics
  • Vector Graphics
  • Game Controller Inputs
  • Atari, Sega, NES Controllers Examined
  • Serial Communications
  • RS-232 Communications
  • Game Cartridges
  • Assembly Overview of Video Generation on the SX chip

Breadboards

Goals:

  • Assemble a working video game console on a breadboard.
  • Play your first games on a TV with sound and input.

Key Topics:

  • Game Console Schematic
  • 5 Volt Regulator Construction
  • SX-28 Circuit
  • Clock Circuit
  • LED Output Port
  • Video Out Circuit
  • Audio Out Circuit
  • Joystick Port

Printed Circuit Boards

Goals:

  • Make a more permanent game console by soldering it onto a prefabricated printed circuit board (PCB).
  • Learn about the different components of a PCB like silk screen, solder mask, copper traces, through holes, and more.
  • Get comfortable with various soldering techniques.

Key Topics:

  • Soldering Iron Usage
  • 5 Volt Power Supply
  • Filtering and Pull Up Resistors
  • Current Limiting Resistors
  • Directional Pad and LEDs
  • 7 Segment LEDs
  • Audio and Video R2R Ladders
  • DIP Socket Headers
  • Expansion, RCA, and Joystick Headers

Hacking Demos

Goals:

  • Gain confidence in programming the game console by making small changes (hacks) to existing assembly language demos.

Key Topics:

  • Starfield Hack
  • Character Tiles Hack
  • Game Text Hack
  • Racer Hack
  • Sound Hack

Creating Games for the Console

Goals:

  • Develop games for the console you've built.
  • Experiment with tile engines to build the game world.
  • Add your own customizations to provided samples.
  • Show off your new games to friends and family :)

Key Topics:

  • Game Components Required
  • Organizing Code and Art into System ROM Space
  • Organizing RAM
  • Using the Real Time Clock Counter
  • Creating the Title Screen
  • Creating the Game Boards
  • Game Screen Layout
  • Creating the Game Screen

Emulators and Simulators

Goals:

  • Use emulators and simulators to reduce game development time and increase your productivity.

Key Topics:

  • Emulators and Simulators
  • XGS Emu Overview
  • SXSim Overview
  • Launching the SXSim
  • Breakpoints
  • Measuring Clock Cycles
  • Code Organizing
  • Macro Expansion

Presentations

  • Introduction to Analog Circuitry
  • Advanced Analog Circuitry
  • Introduction to the Digital Realm
  • Advanced Digital Design
  • Computer Architecture
  • Designing Game Systems I
  • Designing Game Systems II
  • Game Console on a Breadboard
  • Game Console on a PCB
  • Hacking Demos
  • Creating Games for the Console
  • Emulators and Simulators

Projects

  • Experiment 1: Creating the 5 Volt Regulator
  • Experiment 2: Power LED
  • Experiment 3: Measuring with the Multimeter
  • Experiment 4: Voltage Divider Circuit
  • Experiment 5: Introduction to the Potentiometer
  • Experiment 6: Playing with Switches
  • Experiment 7: Simulation and Hardware Verification
  • Experiment 8: Diode Experiment
  • Experiment 9: Capacitor Charging and Discharging
  • Experiment 10: Playing with Transistors
  • Experiment 11: Introduction to the AND Gate
  • Experiment 12: Introduction to the OR Gate
  • Experiment 13: More Complex Circuit
  • Experiment 14: Playing with the XOR Gate
  • Experiment 15: Building a Half Bit Adder
  • Experiment 16: 555 Timer and Binary Counter
  • Experiment 17: 7 Segment Display
  • Experiment 18: LED State Machine Design
  • Experiment 19: Pattern Detector Design
  • Experiment 20: Microprocessor Simulators
  • Experiment 21: Intro to the SX-28
  • Experiment 22: SX-28 Controlling the 7 Segment LED
  • Experiment 23: SX Pong
  • Experiment 24: Digital Organ
  • Experiment 25: PWM Generated Sound
  • Experiment 26: PCM Digitized Sound
  • Experiment 27: Read Nintendo Controller
  • Experiment 28: Mono Color Bar Demo
  • Experiment 29: Color Bar Demo
  • Experiment 30: Drawing a Star Field
  • Experiment 31: Assembly of the Game Console onto a Breadboard
  • Experiment 32: Numerous Demos to Verify Working Console
  • Experiment 33: Assembly of the Game Console onto a PCB
  • Experiment 34: Numerous Demos to Verify Working Console
  • Experiment 35: Modifying Source Code with Hacks
  • Experiment 36: Programming Game Console with Final Course Game

Requirements

  • The XGS Pico Edition Kit is required (sold separately) if you wish to build the hardware.

Introduction to Robotics

Hardware Sold Separately


  • 28 Projects
  • 2 Supplementals

Take your first steps into the world of robotics by building your own robot and providing it with artificial intelligence through the programs that you write for it. It is an immensely gratifying experience to watch your new creation autonomously navigate the living room for the first time! A fun weekend project for you, and a safe and educational experience you can have with the kids. If you want to build an army of Terminators and take over the planet, you'll need to start somewhere.

Topics

Introduction to the Kit

Goals:

  • Develop a familiarity with the electrical and mechanical components of the robot kit.
  • Inventory and organize all parts of the kit.
  • Explore the electronic content for awareness and possibility for future use.
  • Become familiar with the Parallax web site and public forums.

Key Topics:

  • Infrared Receiver
  • Piezospeaker
  • Miscellaneous
  • Hardware Components
  • Battery Holder
  • Rotation Servo
  • Chassis and Wheels
  • Fasteners
  • Board of Education Rev C
  • Jumper Wires
  • BASIC Stamp 2 Microcontroller Module
  • Serial Cable
  • Parallax CD
  • Software
  • Source Code
  • Documentation
  • Parallax web site

Basic Electricity and Electronics

Goals:

  • Develop a thorough understanding of the electrical and electronic components in the robot kit.
  • Learn about basic theory of operation, uses, schematic symbols and tips on handling.
  • Construct circuits based upon schematic diagrams.
  • Learn to perform basic calculations for current and resistance.

Key Topics:

  • Basic Electrical Circuits
  • Voltage
  • Current
  • Resistance
  • Voltage Drop
  • Components
  • Resistors
  • Resistor Color Code
  • Potentiometer
  • Wire
  • LED
  • Piezospeaker
  • 3-Pin Header
  • Photoresistor
  • IR LED
  • IR Detector
  • Capacitor
  • Board of Education
  • Breadboarding Rules
  • Schematic Circuits

BASIC Stamp and the Circuit Board

Goals:

  • Install the BASIC Stamp Editor software.
  • Insert the BASIC Stamp II Microcontroller into the Board of Education.
  • Learn a few PBASIC language keywords.
  • Write and load simple programs into the BASIC Stamp (BS2).

Key Topics:

  • BASIC Stamp Editor Installation
  • Using the Editor
  • Setting up the Board of Education
  • BASIC Stamp safety requirements
  • Power requirements
  • Connecting the PC to the Board of Education
  • Basic PBASIC commands
  • Writing and loading a program into the BS2
  • Adding comments and a header to program
  • BASIC Editor Help File
  • PBASIC Syntax Help

Programming in PBASIC

Goals:

  • Learn dozens of new programming keywords and techniques.
  • Write several programs applying the new PBASIC keywords you've learned.
  • Pay close attention to programming style.

Key Topics:

  • PAUSE
  • DEBUG CR
  • DEBUG CRSRXY
  • DO..LOOP
  • Variable and variable sizes
  • Assigning values to variables
  • DEBUGIN
  • FOR..NEXT
  • GOSUB..RETURN
  • IF..THEN..ELSE..ENDIF

Programming Servo Motors

Goals:

  • Learn about the Continuous Rotation Servo (servomotor).
  • Center and program the motors.
  • Understand timing diagrams and how to program them.
  • Learn how to program LED outputs.

Key Topics:

  • HIGH
  • LOW
  • LED Circuit
  • PULSOUT
  • Timing Diagram
  • Pulse Width
  • Center Servos
  • RPM
  • Pulse Train
  • Controls Speed and Direction
  • Servo Run Time

Constructing and Programming the Robot

Goals:

  • Construct the robot and test the operation of the servos.
  • Program the robot to perform basic manuevering and to travel a predetermined distance.
  • Write code to allow for smooth starting, stopping and turning.
  • Create subroutines to simplify the sequencing of the robot's behavior.
  • Program the piezospeaker to allow the robot to inform you about its activity through a series of tones.

Key Topics:

  • Robot Assembly
  • Wheel Testing
  • Start/Reset Indicator
  • FREQOUT
  • Transfer Curve
  • Initialization Routine
  • Ramping
  • EEPROM
  • Memory map
  • ASCII Codes

Robot Navigation: Collision and Light Detection

Goals:

  • Add sensors to the robot to improve its ability to navigate around obstacles.
  • Understand how collision detection is performed via two mechanical whiskers that act as bumper switches.
  • Replace the whiskers with photoresistors to have the robot follow shadows or light.

Key Topics:

  • Tactile Navigation
  • Whiskers
  • 3-pin Headers
  • Artificial Intelligence
  • Photoresistors
  • Capacitors
  • RC Decay Time
  • RCTIME
  • Threshold

Robot Navigation: IR Detection

Goals:

  • Replacing the whiskers and photoresistors with infrared (IR) sensors and LEDs to detect other objects and the edge (drop-off) of a table.
  • Use the IR system to provide distance information.

Key Topics:

  • Infrared Detector
  • Infrared LED
  • FREQOUT
  • Harmonics
  • Detection Range Adjustments
  • Drop Off Detector
  • Frequency Sweep

Projects

  • Experiment 1: Voltage, Current, Resistance Calculations
  • Experiment 2: Calculate Resistance Using Resistor Color Codes
  • Experiment 3: Identify Schematic Diagram Components
  • Experiment 4: Identify Mistakes with Schematic Diagrams
  • Experiment 5: Match Components with Component Function
  • Experiment 6: Construct Breadboard Circuit from Schematic Diagram
  • Experiment 7: Displaying Text
  • Experiment 8: Displaying Formatted Text
  • Experiment 9: Display Formatted Text and Variable Values
  • Experiment 10: Displaying Formatted User Input
  • Experiment 11: Displaying Four Columns of Data
  • Experiment 12: Basic Menu
  • Experiment 13: Menu and Subroutines
  • Experiment 14: Logic Tables
  • Experiment 15: Bit Manipulation
  • Experiment 16: EEPROM
  • Experiment 17: Servo Motor and Time
  • Experiment 18: Key Controlled Servo Motor
  • Experiment 19: Key Controlled Drive System
  • Experiment 20: Piezospeaker
  • Experiment 21: Basic Robot Control
  • Experiment 22: Driving in Circles
  • Experiment 23: Driving in Square Pattern
  • Experiment 24: EEPROM
  • Experiment 25: Whisker Collision Detection
  • Experiment 26: Whisker Collision Avoidance
  • Experiment 27: Photoresistor Light Following
  • Experiment 28: Collision Avoidance Using IR Detectors

Requirements

  • The Boe-Bot Robot Kit is required (sold separately) if you wish to build the robot.

Software & Tools

Coming this summer absolutely FREE to all Game Developer Package subscribers!

A Complete Solution

The Carbon Game Development Toolkit is a feature rich
development platform that comprises a powerful game engine,
extensive rendering and shader libraries, a sandbox & world editing
environment built right on top of the core engine, and all the tools you'll
need to start building real game projects right from day one of your training.

If you prefer the thought of developing your own engine, we've got you covered there too. Unlike many other game engines, we're also making available the Carbon Game Engine source code for you to dissect and study, including all available shaders, behaviors and scripts!

If that hasn't piqued your interest enough already, take a look at just a small sample of the exciting features on offer:

Bring Your Game to Life

Whatever game you dream of building, motion and interaction is key to creating an immersive, enaging and most-importantly FUN game play experience for the player. With a full suite of animation and real time physics tools to play with, both at the editor and runtime level, your worlds will literally spring into life.

» View the full feature list

Animation

  • Spline based key frame animation system for ultimate control.
  • Import your animation data along with your scenes and characters.
  • Supports both ambient and per-object animation grouping and playback.
  • Edit or create your animations directly within Carbon Forge.
  • Kinematic objects interact with physics objects.

Physics

  • Dynamic scene and object collision detection and response.
  • Supports materials, contact forces, and friction.
  • Rigid bodies and ragdolls.
  • Joints (ball-and-socket, hinge, slider, corkscrew, universal, up-vector).
  • Buoyancy.
  • Vehicles.
  • Destruction.

Rendering Power & Flexibility

The Carbon rendering core is built around a flexible abstraction layer, and is not restricted to a specific hardware API. With support for DirectX 9, 10 & 11 (and OpenGL support on the way!), runtime API selection, and an elegant API agnostic scripted shader system, you'll be able to reach the widest possible audience whatever their hardware capabilities.

» View the full feature list

Rendering

  • DirectX 9.0c, 10.1, 11 supported.
  • Forward and deferred rendering support.
  • Fully scripted rendering pipeline for complete customization.
  • HDR rendering with tonemapping (filmic, photographic, more).
  • MSAA and FXAA anti-aliasing support.
  • Cube and planar reflections.
  • Flexible queue based runtime batching system.

Lighting is Key

Lighting and shadow are both vital to the creation of belivable scenes and impressive visuals. With Carbon, the hard work has been done for you! You'll get full support for deferred rendering, HDR, a fully dynamic lighting pipeline, smooth shadows, indirect lighting, SSAO, a comprehensive suite of lightmapping tools, and more right out of the box!

» View the full feature list

Lighting and Shadows

  • Dynamic direct lighting and shadows.
  • Point, spot, directional, hemisphere, projector lights.
  • 2D, 3D, cube, video projective texture lighting.
  • High dynamic range image-based lighting.
  • Standard and parallel split shadow mapping.
  • PCF, variance, exponential shadow map filtering.
  • Mathematical and texture-based attenuation models.
  • Standard and directional (spherical harmonics) lightmaps and probes.
  • Dynamic volume-based indirect lighting.
  • Screen space ambient occlusion.

Give Your Worlds REAL Texture

The Carbon Game Development Toolkit comes jam packed with a complete shader library capable of delivering stunning visuals and realistic looking scenes and surfaces, fully configurable through the Carbon Forge world editor, all without having to write a single line of shader code. Alternatively, you can develop and add your own surface shaders to create just the look you're after.

» View the full feature list

Materials and Shaders

  • Large base shader library included. Very easy to add more.
  • Supports HLSL, Cg, GLSL.
  • BRDF microfacet-based surface shading.
  • Standard and parallax normal mapping.
  • Dynamic reflection and refraction.
  • Translucent materials.
  • Scripted shader compilation generates and caches shader permutations.
  • On-the-fly shader compilation supported.

Infinitely Extendable

Not every game will be the same, and they won't always have the same feature requirements. For this reason, both the Carbon Game Engine and its tools have been designed to allow for user extensibility throughout. Support for new object types, behaviors, game states, special effects, rendering paths and more can be added at any time by anyone, and more often than not simply by dropping in a new script or two. With source code too, you'll never be restricted to only those objects and behaviors we provide!

» View the full feature list

Core Engine

  • Full source code.
  • Scripting support for game logic, object behaviors and AI.
  • Per scene scripted control over application rendering behavior.
  • Add custom game object types to engine and editor via plug-in architecture.

Carbon Forge Editor

  • Sandbox-style editor runs on top of CGE. Make changes to the game world in real-time.
  • Plug-in architecture allows users to add custom tools, importers, exporters and UI elements.
  • Plugins have access to the .NET and WinForms libraries allowing rapid development of feature rich utilities and object front ends.
The Carbon Game Development Toolkit will be launching with an alpha release very soon. For a complete list of features slated for release before the end of the alpha period, click here to see the breakdown.

FAQ

Where can I get specific details about what is included in the package?

All of the tabs you see on this page pertain specifically to the content included in this package. Simply work your way across from left to right (or skip around if you wish) and you'll see that we've broken things down into quite fine detail. You'll see a list of the subjects covered, the number and general topics for each presentation, the number and size of any books associated with the subject matter, as well as a list of the relevant demonstrations. There is also information related to the software included with this package as well as upgrade and support options and information about your membership.

Back to top.

$99.00 seems too good to be true. Is there a catch?

There is no catch -- we know that money is tight for lots of folks right now, so we are making our material as affordable as possible so that everyone can benefit from it. As far as the quality of the content goes, you need not worry at all. This is some of the most well-respected and in-depth game development training material you can get your hands on. Over the last 10 years we have been fully vetted by many of the world's top accrediting bodies, colleges, universities, career schools, technology companies, game studios, and engineering standards boards. Over 2,000 schools around the world now use our training materials (and very often our in-house tutors), for continuing education, professional development, and even for full undergraduate level college credit and degree programs. It's not just good, it's unbelievably good!

Back to top.

Is the Game Developer Package an online course? Do I have to attend any classes, submit homework, or take exams?

No, to all of the above. This package contains lots of training material that has been used in a variety of accredited courses over the years, in both brick-and-mortar and online schools (including right here), but you are certainly under no obligation to treat the material as such. There are no requirements at all -- no homework, no exams, no attendance taken. A better way to view this package is as a really comprehensive library filled with lots of books, presentations, videos, source code, and demos that you can do with whatever you wish, in any order you wish. Use it purely for reference if you'd like, or if you prefer something more structured, we also provide you with recommended guidelines for self-study.

Now, if you are actually looking for an instructor-led online course experience, we also offer options along those lines using the same materials and supported by the same team. You can upgrade your experience in any subject area at any time to include instructor support and various credit options.

Back to top.

What is the difference between the Game Developer Package and your courses and course packages?

The Game Developer Package is a great choice when your preference is primarily getting access to our content library and tools and you have little interest in taking 'classes' or earning any form of accreditation. You will not get instructor support and you will not be able to take examinations or earn college credit with this approach. So the upside is a huge amount of content, but the downside is no direct instructor guidance and no options for earning any type of certifcation without upgrading to a course (which, it should be noted, you can certainly do if and whenever you'd like).

Alternatively, our courses (and course packages) are for people who prefer a more traditional online learning experience that includes a specified number of weeks of instructor access, mid-term and final examinations, exercises, etc. Taking courses is required if you want the option to get graded and/or receive academic credit for your work (undergraduate credits and/or continuing education units). Again, you can optionally upgrade all of your Game Developer Package, or select individual components of it (e.g., just C++ Programmng or Mathematics) at any time you'd like.

Back to top.

How does instructor support work and can I just get it without taking courses?

Instructor support at Game Institute is provided via subject related forums and in live scheduled chat events. Although purchasing instructor support is a required precondition for being able to get assessed, receive grades, or earn credits, you are not required to take advantage of any of these course-related features. You are free to simply treat the instructor support purely as a means to get help when you have questions. Taking exams or trying to earn grades is totally optional, so do not worry about feeling pressured to treat the experience like an online class.

Access to instructor support is delivered in weekly blocks and you can choose if and when you would like to activate a particular week of support. That is, you are not limited to simply getting support over a sequence of back-to-back weeks, as is true in most online programs. For example, let's say you purchase a 10 week bundle of instructor support access. You might decide to activate a support week right off the bat, ask a few questions, attend a live event, and then take three weeks off to go scuba diving. When you come back, you would still have nine weeks of support left which, again, you can use whenever you want. This gives you total control over your own schedule.

If you ever want or need more instructor support, you can purchase it at any time for very reasonable rates. This can be done through the Training area for the course or subject you are interested in.

Back to top.

I am a total beginner to game development with little or no programming experience. Is this package appropriate for me?

Yes, this is going to be a fantastic package for you. This package is structured to take you step-by-step through the process of building video games from the ground up, regardless of your prior experience level. You'll start out with plenty of detailed coverage walking you through the critical foundational areas like general programming in C/C++, mathematics for games, basic 2D and 3D graphics rendering, writing your own shaders, and implementing some core game AI. You'll also learn some important 3D modeling, animation, and texturing techniques. If your preference is to work mostly with "black box" game engines like Unity or Carbon, just this early material alone will give you an incredibly solid foundation.

As you progress further, you'll find yourself getting right under the hood of modern game technology to see how it really works behind the scenes. You'll start taking on more complex programming tasks, like exploring advanced surface shading models, real-time direct and indirect lighting and shadowing, forward and deferred rendering architectures, spatial data structures, spherical harmonics lightmapping, collision detection and response, constructive solid geometry, large scale terrain rendering, and so much more. Your art and level design skills will also improve as you get more familiar with modeling and game world editing tools.

Eventually, you will find yourself becoming very comfortable with the technologies behind both games and game engines. While you'll certainly have a strong foundation in place for building your own game engine, you will also be on very firm footing with utilizing 3rd party engines like Carbon, Unreal, or Unity for your game projects. This is quite an important point to bear in mind, particularly if you intend to pursue a professional career in the industry. In practice, you'll very likely wind up working with existing technologies developed and/or licensed by your employer rather than building new ones from scratch. But by developing a strong programming background, sharp math skills, some familiarity with game art, and maybe even pick up some experience on the hardware side, you'll be in great shape to tackle any game development challenge put in your path!

Back to top.

I am an accomplished game developer. Can I expect to get anything out of this package?

The most truthful answer we can give someone in your situation is to have a quick browse through the topic lists, projects, and presentations (via the tabs above). We suspect you'll get a pretty good sense for whether or not you'll consider this material too rudimentary given your level of experience. However, do bear in mind that being a member does mean that you'll get a year of access to all of the new content we are releasing as well, which will generally tend lean toward more advanced areas in the field, and may prove more useful to you. Separately, you might also find value in some of our electronics content, which is both interesting and enjoyable to experiment with. Certainly you might snag a few cool ideas from our Carbon Game Engine, which is released with full source code and pretty liberal licensing terms. And of course, our art and animation courses are well worth the price of admission alone and can certainly be incredibly beneficial to you, even if programming is your primary focus.

Back to top.

I'm currently using a 3rd party game development platform (e.g., Unity). Is this material even useful to me?

Yes, very much so. We'll take you step-by-step through critical foundational areas like object-oriented programming, mathematics for games, basic 2D and 3D graphics rendering, writing shaders, and core game AI. You'll also learn some very important 3D modeling, animation, and texturing skills. So if you lean towards "black box" game engines like Unity or Unreal, the early material alone will give you an incredibly solid foundation for making great games with these tools. It is worth keeping in mind that any remotely non-trivial game project will require most (and more often, all) of these skills. And of course, the deeper into the materials you go, the better a developer you can expect to be, and this will be reflected clearly in the quality of the games you'll be able to produce.

Additionally, if you are a Unity user, you'll be happy to hear that we have a slew of new Unity based training rolling out this year and you will receive it, free of charge, as part of your membership.

Back to top.

What am I allowed to do with the Carbon Game Engine? What are the licensing terms?

The licensing terms are included along with the various Carbon related downloads, so be sure to check there for specifics. However, just at a high level, you can use it directly to build games or similar applications, either for your own enjoyment or even for commercial sale. You cannot distribute it or any of the source code and you cannot create clearly derivative works from it. For example, you cannot just refactor the code, do a few tweaks, and then repackage it as your own game engine. And you cannot use it or any of its source code to create similar or competing tools (e.g., level/world editors, lightmappers, etc.). The general rule of thumb is that you can use it to build games, you can use it for study purposes, and you can even pull a few bits and pieces out for use in your own projects. Just use common sense and, if you are not certain about something, get in touch with us and we'll let you know.

Back to top.

Will you be releasing the source code to the Carbon Game Engine?

Yes. Although most professional game development toolsets do not release source code without a pretty expensive licensing arrangement (if at all), one of the fundamental goals at Game Institute is to let you see how things work under the hood. That would be pretty difficult to do if the engine was available only as a black box, so we are happy to share our code with you and ask only that you respect the terms of our license in this regard.

Back to top.

What kind of hardware will I need for working with this content?

As you might imagine, game development requires decent hardware if you want to be productive. For a minimum spec machine we'd recommend a 1.0Ghz CPU, 512 MB of RAM, a DirectX 9.0c Shader Model 3.0 class videocard with at least 128 MB of video memory, and at least 5 GB of free hard drive space. You might get away with a more modest machine but, as a general rule, if you can get your hands on a more powerful machine, you'll find life as a game developer much more satisfying and not quite as stressful. At the very least, make sure you've got access to at least a shader model 3.0 capable videocard if you want to tackle any of the more advanced graphics programming topics.

Back to top.

Is there any software I'll need to pick up separately? If so, how much does it cost?

Yes, you will need a few third party tools to make the most of the materials in this package. The game programming releated materials will require you to have access to a C++ compiler if you want to be able to modify, compile, and run the projects that we provide. We strongly recommend Microsoft's Visual C++ (or Visual Studio) as the tool of choice here since that is the one we use when developing all of our projects and demos. The good news is that you can grab the Express Edition of Visual Studio for free at Microsoft's website and our projects will work fine in that environment. You'll also want to download the latest DirectX SDK from Microsoft's website, which is also totally free.

Additionally, if you want to be able to productively follow along with the art and animation training, you'll want to have access to a copy of 3ds Max for modeling and animation and Photoshop for texture creation. While art and animation tools can be pretty pricey, you can purchase some of them here at the site, usually for a lower academic price.

Back to top.

Is there any way to get hardcopy versions of the books and/or presentations (i.e., printed manuals, DVDs, etc.)?

Yes. You can optionally purchase printed versions of almost all of our books, many of which will ship with CDs or DVDs that include the multimedia presentations, projects, and source code. We also have a full set of DVDs available for our art and animation courses. We've kept upgrade prices very low in all of these cases -- pretty much just enough to cover the basic costs associated with printing and packaging. Of course, you would also have to pay separately for shipping and handling, which is usually quite cheap in the United States, but can get a bit costly if you are an overseas customer (all materials are printed and shipped from the USA).

Back to top.

Does this package include any hardware (e.g., robot and/or video game console components)?

No. If you want to go hands-on with the electonics and robotics subject matter, you'll need to purchase the hardware kits from our store.

Back to top.

If I get stuck on something and have a question, how do I get help?

There are a couple of ways that you can get assistance, both free and paid. For starters, we have a large number of free dedicated open forums where you can post questions and get answers from other members of the community. These forums are usually arranged by topic, so you'll have no trouble figuring out where to go. We also offer you the option to purchase weekly blocks of time with our in-house team of teachers and developers, where you can use forums and live chat rooms to get help. Don't worry, we don't charge an arm and a leg for this service. One week of unlimited access (i.e., we place no restriction on the number of posts) is usually ten bucks or less, so you won't break the bank getting support.

Back to top.

Is there a minimum age or prerequisite level of schooling for this material?

It depends.

The art and design material really doesn't have any pre-requisites in terms of age or prior experience. It is pretty accessible to just about everyone, but it was not designed for children per se. We usually say that ages 13 and above can do pretty well with the material, but if you are not sure, we have free content from one of the art programs available in full for free viewing. The best bet is to check it out and see how good a fit it is.

If you simply wish to learn some basic programming in C/C++, there is no specific age minimum or subject matter pre-requisite, other than a basic comfort level working with computers and getting around the Windows OS. Generally, computer programming with a language like C or C++ is usually not tackled until junior high school at a minimum, where high school or even college are the much more common cases. So, just bear that in mind. It is not ridiculously difficult to learn the basics of programming in C++, and we've seen some pretty smart young kids do very well with it, but if you are a parent, we usually say that ages 13 and up is also a good rule of thumb to work with here.

Now, if you are a bit more serious about building games (versus just basic programming for, say, writing game scripts in a 3rd party engine), we can start to get a little more concrete about pre-reqs. If you are pursuing the programming and/or electronics materials, then you'll at least want to be comfortable with high school level mathematics (algebra, geometry, trigonometry). If you took these subjects earlier in life and are a bit rusty these days, don't worry because the package includes some material to get you back up to speed. You don't need to be a human calculator to build games, but there is no getting around the fact that game developers have to deal with math. Everything you see on that screen is the direct result of mathematics happening behind the scenes, so there is simply no avoiding it. So, given these minimum pre-requisites in terms of subject matter, we tend to recommend a minimum age of 15 or older in these cases. However, we've had plenty of smart kids quite a few years younger than that do quite well with the material.

Back to top.

How does my 12-month subscription work? Will I have to pay to renew or will I lose access to everything when it is up?

During the 12-month period after your purchase of the Game Developer Package, you will receive all new content releases and software updates as they become available for download, for no additional charge.

At the end of that 12-month period, you will be asked if you'd like to continue receiving new content and updates for another year. If you've enjoyed the additional content and would like to continue to receive more, then you'll pay a very small fee to sign on for another year's worth of new goods.

If you decide not to renew your subscription, then the only thing that will happen is that you will not receive any new content or upgrades that are made available from that point forward. You will still retain full access to the site and any of the content you purchased and/or received during the prior 12 months. So, your membership will still be active, you just won't get any new stuff.

Back to top.

Testimonials

...employed with Electronic Arts...

I just wanted to say one BIG THANK YOU. I finally managed to start working in the industry I always wanted to! Got employed with Electronic Arts like a month ago and though it has been a slow start (EA is a big company) I finally managed

I just wanted to say one BIG THANK YOU. I finally managed to start working in the industry I always wanted to! Got employed with Electronic Arts like a month ago and though it has been a slow start (EA is a big company) I finally started getting my hands dirty, and it feels gooood :) I know I would have never been able to make it without the knowledge gained from Game Institute and all your support, motivation & help.

Aleksandar T.

...started working at Sony Cambridge (Little Big Planet)...

I'm not new on this forum but I was away for a long time... the truth is that I've got a job in the industry and it took me some spare time ;) I would like to thank Game Institute for helping me with that -- I started working at Sony Cambridge

I'm not new on this forum but I was away for a long time... the truth is that I've got a job in the industry and it took me some spare time ;) I would like to thank Game Institute for helping me with that -- I started working at Sony Cambridge (Little Big Planet PSP project) last November!

Diogo N.

...developed and released an Xbox 360 Game...

Just wanted to say thanks to all the folks here at Game Institute who helped me to wrap my brain around this game development stuff. Using what I learned here at GI, I was able to develop and release an Xbox 360 Game under Microsoft's

Just wanted to say thanks to all the folks here at Game Institute who helped me to wrap my brain around this game development stuff. Using what I learned here at GI, I was able to develop and release an Xbox 360 Game under Microsoft's Community Games program. It's not much...but I did it in my spare time, and it's mildly addictive :) If anyone's interested in checking out, the game is on the Xbox Marketplace. It's called Planet Crashmania 9,000,000.

Many thanks to GI and all who check out the game!

Ron B.

...I am a software engineer at Electronic Arts...

I'm glad I found this site. I am a software engineer at Electronic Arts, and I'm interested in focusing on Direct3D and AI. A few years ago I messed around with DX8 and made a freeware game (WordTrix 2.0), but it was largely

I'm glad I found this site. I am a software engineer at Electronic Arts, and I'm interested in focusing on Direct3D and AI. A few years ago I messed around with DX8 and made a freeware game (WordTrix 2.0), but it was largely trial-and-error based and I didn't know what I was really doing :P Now that I've been working on games for a few years professionally (not in a rendering or AI department), I have joined hoping to start from the ground up and get a solid foundation on things I may have skipped over in the past. I've almost completed Lesson 1, and I'm really impressed by the quality of the lecture software included with the course. It's incredibly educational reading through the textbook and then going to the software and working on the workbook. After a short time I will probably study the AI material in parallel.

Jake J.

...I have a first class degree in animation...

I have a first class degree in animation, and yet through all the years of my education, I have never seen so many excellent tutorials and examples with brilliant explanations and crystal clear instruction of how to do something

I have a first class degree in animation, and yet through all the years of my education, I have never seen so many excellent tutorials and examples with brilliant explanations and crystal clear instruction of how to do something from beginning to the end. You learn all the secrets including how to fix and avoid problems. The best part is that you are not just being shown how to model, texture, etc., you also learn how to think and plan your project. I would recommend this Art and Animation training program to anyone. I am learning a lot and loving every moment of it.

Bernd R.

...got a job after about 18 months at Game Institute...

I am from the UK and originally from Essex. Although I did do Uni, it wasn't in programming, and I got a job after about 18 months here at Game Institute - almost been at it 1 year now.

Chris M.

...I'm finally able to write my first game...

I'd like to thank everyone at Game Institute. I always wanted to learn Game Programming. I have tried a few times in the past alone with books but I've always given up after one or two months. Now I'm finally able to write my first game

I'd like to thank everyone at Game Institute. I always wanted to learn Game Programming. I have tried a few times in the past alone with books but I've always given up after one or two months. Now I'm finally able to write my first game in DirectX, thanks to Game Institute and your wonderful curriculum. So a lot of work ahead, but it's so much fun with GI...

Pierre B.

...surpasses the lessons and lectures I had during 3 year BSc Honours university Game Development degree...

I first enrolled at this site (for the Environment Navigation course) waaaay back in 2003. I was a little skeptical about paying for the Graphics and Game Engine Programming course, because at that time I was just coming to the end of my

I first enrolled at this site (for the Environment Navigation course) waaaay back in 2003. I was a little skeptical about paying for the Graphics and Game Engine Programming course, because at that time I was just coming to the end of my University Degree in game development, so I already knew how to program with DirectX. In any event, I decided that I had some spare cash so I went ahead and enrolled, and I must say I'm very glad that I did. Whilst I already knew how to 'use DX9', I didn't have that much knowledge about how things worked behind the scenes. The chapter 1 textbook was so useful with explaining the math behind DirectX's rendering that I even managed to hand-code a 3D engine using j2me (without using any 3D API's). The problem I had is that being so busy with work, I didn't get to spend the time I wanted going through the whole set of text/workbooks and eventually just used it as a reference. So anyway, I just wanted to say (a quick?) thanks to everyone at GI. These courses are truly the best I've seen, and in my opinion far surpass the lessons and lectures that I had during a 3 year BSc Honours university course.

Christopher B.

...you'll find this training REALLY good - it's by far the best I've ever taken...

I think you'll find this training REALLY good - it's by far the best I've ever taken. The books are extremely well written! Everything is so well explained (with NO waffle) they are a joy to read! The end of chapter exercises are ace too! And, the

I think you'll find this training REALLY good - it's by far the best I've ever taken. The books are extremely well written! Everything is so well explained (with NO waffle) they are a joy to read! The end of chapter exercises are ace too! And, the forums are full of lots of helpful, friendly people to help you out if you get stuck.

Chris B.

...nothing explains it as good as your materials...

Amazing courses. I am TOTALLY impressed. I have so many game programming books/tutorials and nothing explains it as good as your materials. Too bad you don't know me, but if you did , you would realize that this is the biggest

Amazing courses. I am TOTALLY impressed. I have so many game programming books/tutorials and nothing explains it as good as your materials. Too bad you don't know me, but if you did , you would realize that this is the biggest compliment you got ever ;) I never give compliments if I am not 1000% satisfied. I mostly don't believe in learning online, but it seems like your material was written just for me :)

Elad Z.

...I have learned so much since starting here, it is scary...

The Art and Animation courses are the right choice IMHO for learning to roll your own assets. I have learned so much since starting here, it is scary... :) Sunday is live session day, if you can it is good idea to attend, awesome

The Art and Animation courses are the right choice IMHO for learning to roll your own assets. I have learned so much since starting here, it is scary... :) Sunday is live session day, if you can it is good idea to attend, awesome material covered in live sessions, and many treats and surprises are presented.

Dale L.

...these are the best game development courses I have ever come across...

I completely agree that these are the best game development courses I have ever come across. That's why I purchased almost all of them and would recommend them to everyone.

Robert B.

...helps me create better games...

I just wanted to say that this has been an incredible learning experience for me. The material was well laid out, well taught, and has given me a bunch of new skills that will help me create better games. I'd also like to add that these forums are

I just wanted to say that this has been an incredible learning experience for me. The material was well laid out, well taught, and has given me a bunch of new skills that will help me create better games. I'd also like to add that these forums are the most friendly and helpful that I've ever seen. I will definitely be recommending Game Institute to anyone I know who's even slightly interested in making games. Thanks!

Philip J.

...simply the best training out there...

Game Institute simply provides the best training out there. I'm not going anywhere.

David B.

...the best course about DirectX graphics programming...

I think this is the best course about DirectX graphics programming I've seen yet. I love how it gets into each detail about what each function does. I have a hard time putting the textbook down to take a break sometimes. I even thought

I think this is the best course about DirectX graphics programming I've seen yet. I love how it gets into each detail about what each function does. I have a hard time putting the textbook down to take a break sometimes. I even thought the math refresher in the 1st chapter was easier to learn and understand than the game mathematics course I took. I can't wait to finish this training so I'll have a working framework to start my game upon. Plus it will be a framework that I actually understand rather than assume what it does. That's all my thoughts on this for now, and thanks again for such a great programming course!

Nathan M.

...amazed by the efforts that have been put into the textbooks...

Thanks for some fantastic training materials! I'm amazed by the efforts that have been put into the textbooks, so allow me to give standing ovations. FANTASTIC WORK! Pat on the shoulder!

Christopher S.

...amazed at how professional and well laid-out this material is...

After buying TONS of books over the last 30 years, I finally decided to do something more constructive. Just wanted to say that I'm truly amazed at how professional and well laid-out this material is! I'm probably a bit a bit older than

After buying TONS of books over the last 30 years, I finally decided to do something more constructive. Just wanted to say that I'm truly amazed at how professional and well laid-out this material is! I'm probably a bit a bit older than most, and don't see and hear so well anymore, so I really appreciate having the text on PDF so I can magnify the text, and I can hear and understand what the narrator is saying during the presentations -- what a relief!

Congrats to the Game Institute -- well done!!!

Floyd T.

...you won't be disappointed...

The courses here at Game Institute are amazing. I not only get the knowledge I need to do all of this but it really gets me excited about programming. I look forward everyday to programming and seeing what I'll learn next. If you decide

The courses here at Game Institute are amazing. I not only get the knowledge I need to do all of this but it really gets me excited about programming. I look forward everyday to programming and seeing what I'll learn next. If you decide to join us here at GI I know you won't be disappointed. ;D Oh and by the way I forgot to mention about the forums. The forums are very active. Anytime I ask a question i'll get tons of replies very fast and then I can continue with my work. People are VERY friendly even when you have no clue what your doing and they're always ready to help.

Matthew S.

...coming from someone who was scared of learning this...

Love it here. Coming from someone who was scared of learning this, I'm sure having a great time in the C++ Programming course.

Arjan K.

...I have had extensive math classes in my past...

Although I have had extensive math classes in my past, I still learned a lot from the Game Mathematics offering and I am glad that I took it. Thanks Frank and everyone for all the help... good program!

Robert C.

...I love the readings and lessons...

I just wanted to say that I love the readings and lessons so far. The material is great and I just want to commend the people that put it together.

Ivan M.

...continually amazed at how GREAT this darn course is...

I'm almost done with my brief review of the first module of Graphics and Game Engine Programming, before diving into Module II. I am continually amazed at how GREAT this darn course is. And I'm a REALLY tough critic. You guys ROCK :D

Anthony I.

...I did take a C++ class before. The classes here at Game Institute are so much better...

Before I started, I did take a C++ class before. The classes here at Game Institute are so much better, and I really have no complaints. Tons more detail and you actually really get to do the code here (unlike the other). From

Before I started, I did take a C++ class before. The classes here at Game Institute are so much better, and I really have no complaints. Tons more detail and you actually really get to do the code here (unlike the other). From someone who had really no experience programming at all, this training helped so much. Once you complete both C++ modules, things really start coming together. You can find other libraries on the web and start using them after you do a little reading and tinkering and make a 2d game. And myself, after the 2d game I am making is complete, I am moving on to the Graphics and Game Engine traiing for 3D games. Also there are people here to help you.

So far these classes have been great!! Thank you Game Institute!!

James W.

...I had a vague and hazy idea about how things worked, now I really understand!...

I've had my Graphics and Game Engine Programming CD for some time now, but never really got around to going through it - you know, work, blah, blah, blah. Well, I finally got around to it. Recently I just finished lesson one and... WOW!!!

I've had my Graphics and Game Engine Programming CD for some time now, but never really got around to going through it - you know, work, blah, blah, blah. Well, I finally got around to it. Recently I just finished lesson one and... WOW!!! Where I had a vague and hazy idea about how things worked, now I really understand! I feel like that Johnny Nash song... "I can see clearly now the rain has gone!!" Thanks a lot for a great course. :-)

Brian S.

...thank you for your never ending help...

Thank you guys again for your never ending help, my experience with Game Institute has certainly been a worthwhile one!

Jody B.

...I learned a lot from the AI course...

I took the AI course and think it was great! I'm a big fan of AI in games and I learned a lot from the course. And one of the demos is in 3D as well. I managed to turn the 2D flocking demos into 3D as well quite easily by just adding the third dimension.

Andreas H.

...learn at your own pace, and extremely high quality of curriculum...

I have been a programmer for a number of years, and learned quite a few languages all from the "school of hard knocks" :D, and I can tell you that Game Institute's C++ training is actually a great way to see if you truly enjoy programming.

I have been a programmer for a number of years, and learned quite a few languages all from the "school of hard knocks" :D, and I can tell you that Game Institute's C++ training is actually a great way to see if you truly enjoy programming. I have found in all my years of programming its always easier to learn when you have a specific goal/project in mind, whether that be a project at work or an interest in games here at the Game Institute. The system they have presented here is ZERO pressure ;D and learn at your own pace, and extremely high quality of curriculum. Everyone here, especially the instructors and student teachers are extremely friendly and do a great job in helping anyone with questions. Because its "learning at your own pace" here, I have found that it has been less of an issue about how fast I learn here, but how much I have learned here :). And I really have learned a ton :) Quite a bit of what you learn through game programming actually has a lot of merit in the business sector, specifically with problem solving. Anywhoo.... ;D Give it a try, I think you will enjoy it here.

David M.

...thanks for this amazing material!!!...

Thanks for this amazing material!!!

Jose R.

...have learned more than I ever thought possible...

I just finished my final exam and was so happy that I had to post something to share the joy. I have learned more through this course than I ever thought possible, and even though my final grade wasn't quite as high as I would have

I just finished my final exam and was so happy that I had to post something to share the joy. I have learned more through this course than I ever thought possible, and even though my final grade wasn't quite as high as I would have liked, I'm excited just to realize how much I have accomplished over the course of this training. C++ Programming (Module I) was an absolutely excellent course. I can't wait to start the second module!

Mark E.

I just completed C++ Programming (Module II) and, as has become a custom for me, just wanted to post to share the joy. Module I was an excellent course, and the results of my studies were well worth the time. Module II was even better!

I just completed C++ Programming (Module II) and, as has become a custom for me, just wanted to post to share the joy. Module I was an excellent course, and the results of my studies were well worth the time. Module II was even better! The amount of knowledge I have gained in such a short time amazes me. Once again, this course was excellent, and I can't wait to start my Graphics and Game Engine Programming training!

Mark E.

...if you really want to understand this stuff at a deep level...

Graphics and Game Engine Programming is fantastic. If you really want to understand this stuff at a deep level, I don't think you'll regret the purchase. An excellent value, just for this, at twice the price.

David R.

...all those books and a computer graphics course, and none explained it until I took this course...

All those books and a computer graphics course, and none explained it until I took this course at Game Institute :)

Philip S.

...great teachers, staff, and knowledgeable students...

I'm currently working on a certification program at Game Institute. Great teachers, staff, and knowledgeable students. They have a great learning pace.

John S.

...thanks for the great course material...

I would like to thank the Game Institute for their great course material. I wish everyone doing this training the best of luck and thank you again for all your help :)

Michael D.

...thank you Game Institute for effectively educating me...

I finally got around to taking the final for this course (I've been done with the lessons for several months now, but haven't had time to program due to college)... and after studying up for the last couple of days, I pulled a 98 out of my butt!

I finally got around to taking the final for this course (I've been done with the lessons for several months now, but haven't had time to program due to college)... and after studying up for the last couple of days, I pulled a 98 out of my butt! In fact, the only question I missed was the one question I went back and changed the answer on!!! Thank you Game Institute for effectively educating me ;D The only problem now is that its online and I don't have anybody to celebrate with, so everybody go get themselves some cake and ice cream and pretend you're at a party...

Jonathan L.

...I don't know what I would do without Game Institute...

I don't know what I would do without Game Institute. I wouldn't know half of what I know now if its wasn't for you guys. I just turned 19, so hopefully here in a couple years I'll be pretty good. Me and one of my buddies are taking these

I don't know what I would do without Game Institute. I wouldn't know half of what I know now if its wasn't for you guys. I just turned 19, so hopefully here in a couple years I'll be pretty good. Me and one of my buddies are taking these classes and we are going to build a game engine. I swear I've watched almost all of the tutorials 5 times... ha-ha... I'm obsessed with this now and I have ya'll to thank for that.

Micah O.

...I've learned a ton in this class and I can't wait...

It took a lot of work but I've finally finished my tank. ;D For the landscape I've built some skyscrapers around the tank and then some mountains around them. The windows reflect to give them the same kind of feel as a real ones. I kind of

It took a lot of work but I've finally finished my tank. ;D For the landscape I've built some skyscrapers around the tank and then some mountains around them. The windows reflect to give them the same kind of feel as a real ones. I kind of cheated with building the mountain range -- I used Terragen because I couldn't get the kind of mountains I wanted in a paint program. I've included a movie of my tank moving throughout the city with a super-spray rain effect. I've posted on YouTube the 15 second movie, which took over 21 hours to render, LOL. I had to compress the movie to get it to upload on Game Institute and the original was much higher quality, but was 160 MBs. I've learned a ton in this class and I can't wait for my materials to arrive for the second one. See you guys in module 2!

Emilio P.

...eating, sleeping, breathing C++ thanks to this great course...

Been working away on the Chapter 5 RPG game and can't for the life of me wrap my head around a method for implementing a functioning inventory for the game. So I thought I would come to the experts for some advice on how to proceed

Been working away on the Chapter 5 RPG game and can't for the life of me wrap my head around a method for implementing a functioning inventory for the game. So I thought I would come to the experts for some advice on how to proceed. It's sort of the last big addition to my game and I think my brain is fried from eating, sleeping, breathing C++ thanks to this great course !! ;D

Todd D.

...didn't want to depart without thanking you for all of the effort...

Thank you so much for putting together this fantastic course (Building Video Game Consoles). I didn't want to depart without thanking you for all of the effort that you put into the preparations for this class. I'm sure it was a lot of work

Thank you so much for putting together this fantastic course (Building Video Game Consoles). I didn't want to depart without thanking you for all of the effort that you put into the preparations for this class. I'm sure it was a lot of work and I hope that you consider it worthwhile. I certainly do! So, thank you for the wonderful course, and if you have any suggestions on additional hardware courses, I'd love to hear them.

Byl W.

...thanks to Frank and the other instructors who helped me...

Thanks to Frank and the other instructors who helped me when I got stuck. You guys rock!

Michael W.

...thank you Game Institute for such a wonderful time...

Frank, thank you very much for all your efforts and dedication to your students. Thank you Game Institute for letting me have such a wonderful time. Thank you fellow students for all your help.

Zaid M.

...two thumbs up for the quality of the courseware...

I am 20 years old and have been game programming for a couple of years with a 2d/3d game language. I also have been programming with visual basic since I was 13 or so off and on and have been programming with Visual Basic

I am 20 years old and have been game programming for a couple of years with a 2d/3d game language. I also have been programming with visual basic since I was 13 or so off and on and have been programming with Visual Basic .NET 2003 since 2004. I want to give Game Institute two thumbs up for the quality of the courseware that I have seen so far. Concepts that took me a long time to understand when I learned them in VB.net are so clearly presented here; they are not only presented, they are read to me! With fantastic pricing, teachers, and community, this is a great learning experience! The teachers listed are also not just teachers -- they are experts! I saw Mr. LaMothe and freaked out because I knew that there were masters here! Look at all of the credentials of the teachers; man they really have some experience. Mr. Luna, my C++ teacher ;D, has multiple books published that are bestsellers! I hope that I am one day, with continued study and dedication, able to accomplish some of the feats that the teachers have accomplished that teach here. I always look forward to talking with all of the teachers and learning from the best!

Robert J.

...wow, only at GI :)...

Wow, only at GI :) You guys rock.

Jason O.

...worth every single cent. It was even worth much, much more, but fortunately I didn't have to pay for that. :P...

...When I started this course I knew a little bit about 3D and had some years of programming experience. However, this course raised my skills to whole new levels. First I thought a class with hundreds lines of code is really big. During this

Hey Adam (and the GI staff)!

I'd like to take advantage of this moment to thank you for answering all my tons of questions!! Usually no one takes that much time to look at my questions, but you definitely did. I really, really appreciate it.

When I started this course I knew a little bit about 3D and had some years of programming experience. However, this course raised my skills to whole new levels. First I thought a class with hundreds lines of code is really big. During this course, I worked with classes containing thousands of lines of code! I really raised my standards and I really impressed myself. I didn't expect I could handle that. I learned a lot from the way you guys deal with such large projects. Also, it was incredible how you (yeah, you Adam :) ), corrected all those projects that didn't work and added comments saying what exactly went wrong. Without them, it would have taken me ages to reach the same level!

Now that I've finished the course, I think I can be really proud of myself, and I am. When I started the course, I expected it to be really difficult. There were lots of people (no, not the ones at GI!) that told me (as always) that all this was too difficult for me... that I should wait some more years until I finish high school or even university! They often tend to do that.

They also tend to see websites (they call it websites, I call it communities) as a place where boring, unsociable people meet to discuss there boring interests. You guys prove otherwise!! It was great to talk to everyone during the live chats. I could really feel that all the instructors and the students were truly interested in the subject. It was so nice to be able to talk to people that actually have the same hobbies and interests as I do.

This course was worth every single cent I paid for it. It was even worth much, much more, but fortunately I didn't have to pay for that. :P ;D LOL

Abel C.

...even though I did know some C++ before...

It is a great course, and Frank is a great teacher, too. Even though I did know some C++ before, and had already written a small game with SDL, I feel a lot more comfortable with C++ than before. I have learned many new things that I wasn't

It is a great course, and Frank is a great teacher, too. Even though I did know some C++ before, and had already written a small game with SDL, I feel a lot more comfortable with C++ than before. I have learned many new things that I wasn't familiar with, and I feel like I have a whole new level of understanding on some of the subjects I already was familiar with.

Rasmus R.

...the lecture lessons, textbook, exercises are really superb...

I have learned a lot from this course (C++ Programming). The lecture lessons, textbook, exercises are really superb. It's a great course. GAME INSTITUTE rocks!!!

Praveen A.

...making my dreams of being a game dev come true...

For me, a humble programmer in South Africa, finding Game Institute was a huge step towards me making my dreams of being a game dev come true. All I wanted to say is (put bluntly) Game Institute and its people helping us achieve

For me, a humble programmer in South Africa, finding Game Institute was a huge step towards me making my dreams of being a game dev come true. All I wanted to say is (put bluntly) Game Institute and its people helping us achieve our dreams ROCK! You guys are great, so a big THANK YOU coming to you from South Africa.

Matthew F.

...the quality of help has really enabled me to get as far as I have this quickly...

Let me just start this with a huge thank you. I started at Game Institute with the first C++ programming course and a month later here I am. I really have to say that you have been AWESOME with helping me every time I've had questions.

Let me just start this with a huge thank you. I started at Game Institute with the first C++ programming course and a month later here I am. I really have to say that you have been AWESOME with helping me every time I've had questions. And the quality of help has really enabled me to get as far as I have this quickly. I can never join the chats because I'm currently in Japan (time difference is pretty crazy), so I post here. Thanks for taking the time to help me even though I keep posting so much!

Jared P.

...it was amazing. I learned so much ...

I just finished the textbook, workbook, lectures, source code for Graphics and Game Engine Programming (LOL, I just can say everything). It was amazing. I learned so much during the last 4-5 months, and I'm very exited about

I just finished the textbook, workbook, lectures, source code for Graphics and Game Engine Programming (LOL, I just can say everything). It was amazing. I learned so much during the last 4-5 months, and I'm very exited about moving on to the next course. THANK YOU GAME INSTITUTE, and especially Adam and Steve for the whole experience. You guys helped me a lot through the whole course and again BIG THANKS. I'm planning to write some applications using the things I learned in the next 1-2 months and then get some more instructor support. So I will continue to "disturb" :) you guys here in the forum. It was an amazing journey. In the Graphics and Game Engine description, Gary says that this course will totally transform you. It was the truth!!!

Ivailo I.