 |
- Programming Languages for Freshers
- Advance System Programming Courses
- Mobile Wireless Technology Courses
- Enterprise Technology Courses
Test Process,Planning and Risk
Software Test & UAT
- Game Developer Courses
- Embedded Fundamentals
- Linux and Windows Drivers Courses
- Audio Video Streaming Technology Courses
|
 |
 |
|
|
| Country : |
|
aren't find the right course?
contact us for customized training |
|
|
|
 |
|
|
| |
.png)
Course Description:
C++ has become one of the favourite programming language for game programmers. Reasons for wide spread acceptability of C++ are plenty, but primary reasons are, that it allows programmers to better manage program complexity without loosing performance.
C++ popularity will only grow further in the coming years with games increasing in complexity and size. Having a good command over C++ is essential to anyone planning a career in game or graphics programming. It is to fulfil this objective that we have designed this course. Focus in this course will be to get programmers started with and then eventually gain a firm grounding in C++ with a focus on game and graphics programming. The course would be highly interactive with lots of example code and programming exercises to give the student a hands on experience.
The course is divided in 2 Parts, Part I will deal with basic and intermediate C++ programming, Part II will cover more advanced C++ topics and windows programming. Part II will also cover game programming fundamentals and finally a complete 2D game will be developed using the knowledge in the previous topics.
Code portability will not be covered as a separate topic, however tips will be given on how to keep code portable
Platform and Tools
We will be using Windows platform for this course.
Microsoft Visual Studio 2008 edition will be used for programming during the course. All example code also is based on MS Visual studio 2008.
Paint.Net will be used to create and edit graphics for the game. The same will be provided to the student. It is an open source project and executable can be downloaded for free.
Prerequisites
This course should be the first stepping stone in the journey to be a master game programmer. Pre-requisites are as follows:
Knowledge of computer programming (any computer language) is required. The student should be familiar with editing and compiling source code.
Knowing how to use Microsoft Visual Studio will be helpful.
COURSE CONTENTS
|
 |
|
PART I
Comparison of C & C++
Getting Started with Visual Studio C++.
- How to create a C++ project
- Introduction to Visual Studio C++ compiler
- Visual Studio C++ settings
Hello World in C++
- Your first C++ program.
- Hello World explained
- Basic program structure
- Pre-processor Directives
- Declaration and Definition
Variables & Constants
- Fundamental Data types
- Naming
- Variable Scope
- Initialization
- Constants
Pointers and References
- Pointer basics
- De-referencing Pointers
- Using pointers to pass data to functions
- Using pointers to return multiple values from functions
- Pointer arithmetic
- Function Pointers
- Reference basics
- Constant References
- Passing references to functions
- Returning references from functions
Arrays and Structures
- Defining and Initializing Arrays
- Passing arrays to functions
- Multidimensional Arrays
- Defining and Initializing Structures
- Practical use of structures
Expressions
- Arithmetic Operators
- Logical Operators
- Relational Operators
- Bit-wise Operators
- Arrow Operator
- sizeof Operator
Program Flow
- Decision making – if, switch, conditional operator
- Loops – for, while, do-while statements
- Goto statement
Functions
- Variable scope
- User defined functions
- Default Arguments
- Function Overloading
- Friend functions
- Inline functions
- Math functions
Classes
- Class declaration
- Access specifiers
- Object and References
- Object on heap
- Constructors and Destructors
- Separating Interface from Implementation
- Objects and References
- Array of Objects
- Static members of class
- “this” pointer
- Const objects and const class members
- Nested classes
Basic Memory Management
- Heap vs stack
- Object Construction & Destruction
- Copy constructor
- Operators new and delete
- Temporary Objects
- Pass by value and reference
- Returning objects, object references and object pointers
Operator Overloading
- Operator Function
- Operators that cannot be overloaded
- Overloading Unary Operators
- Overloading Binary Operators
- Interpreting Operator function call
- Assignment Operator
- Implicit and Explicit Overloading mechanism
- Overloading “new” and “delete” operators
Object Oriented Programming
Inheritance
- “Is A” relationship
- Single vs Multiple inheritance
- Inheritance in private, protected and public mode
- Constructors and destructors in derived class
Polymorphism
- Compile time vs Runtime Polymorphism
- Function/method overriding
- Base class pointers and derived class objects
- Virtual functions
- Virtual inheritance
- Virtual destructors
- Why are there no virtual constructors?
- Developing a class hierarchy framework
- Interface based programming
- Abstract class
- Pure virtual functions
- Defining an interface
- Implementing an interface
- Developing a plugin framework
File I/O
- Streams
- Text File I/O
- Binary File I/O
Templates
- Basics
- Function Templates
- Class Templates
- Non-Type template parameters
- Tricky basics
- Specialization
Errors & Exception Handling
- Error Codes
- Exception handling fundamentals
- ASSERT
Standard Template Library (STL) – Containers and Algorithms
- Introduction to STL
- Linked Lists
- Stacks
- Queues
- Maps
- Algorithms
PART II
Run Time Type Identification (RTTI)
- Runtime Polymorphism & RTTI
- Typeid & type_info
- RTTI framework
- Casting operators
Effective C++ usage and Performance Optimization
- Dealing with large projects
- Smart Pointers
- Object Creation and Management
- Inline functions
- Preventing excessive object copies
Object Serialization
Windows programming
- Introduction to windows programming
- Introduction to windows mensu, dialogs etc.
- Programming windows DLLs(Synamic Linked Libraries)
- Multi-threading
Introduction to GDI (Graphic Device Interface)
- Drawing basic graphics
- Drawing Images
- Animation
User interaction programming
Basic Audio programming
- Creating a basic audio framework
Game Programming basics
- Developing a basic game framework
- Adding user interactivity
- Building the game options
- Adding sound support to the game
- Adding basic AI into the game
- Programming your first 2D game
|
|
|
|
|