C++ Programming for Computer Games
Course
In Carshalton
Description
-
Type
Course
-
Location
Carshalton
-
Duration
5 Days
Suitable for: The course is aimed at computer games developers whose main programming language will be C++. computer game programmers. computer game code testers and maintainers. planners and project managers. developers of simulators and simulation software. The course assumes a basic knowledge of C++ programming, such as might be gained on an introductory C++ programming course.
Facilities
Location
Start date
Start date
Reviews
Course programme
The purpose of this course is to extend the students C++ programming skills and to cover more advanced C++ programming techniques needed for the demanding task of developing that side computer games dealing with other than audio and graphics. In addition to bringing programmers up to a high level of C++ programming competence the course also covers
- the standard template library and its use to represent and organise complex collections of data
- serialisation and persistence
- realisation of state machines and statecharts using C++
- performance and efficiency aspects of C++
- efficient memory management
Course Contents
Overview of C++ and common C++ programming idioms
- Classes, inheritance, polymorphism
- multiple inheritance - pros and cons
- constness in C++
- references, pointers, and casting
- C++ exception handling
- composition and aggregation
- reference counting and copy on modify idiom
- Class templates
- Function templates
- Costs and benefits of using templates
- Template specialisation
- STL - the Standard Template Library
- Sequence Containers
- Vector
- Deque
- Queue
- Associative Containers
- Set and Multiset
- Map and Multimap
- Hash
- Container Adaptors
- Stack
- Queue
- Priority Queue
- Iterators
- Function Objects
- Algorithms
- mutating vs. nonmutating algorithms
- Sorting algorithms
- Generalised numerical algorithms
- Allocators
- Graph representation
- Graph search and traversal strategies
- Trees and Directed Acyclic Graphs (DAGs)
- A* and mini-max
- Overview of the Boost Graph Library
- State machines and statecharts
- Strings and pattern matching
- Run Time Type Information (RTTI)
- Using scripting languages inside C++ applications
- Plugin architectures
- Object creation and management
- object factories
- shared objects - reference counting and smart pointers
- Serialisation and persistence
C++ Programming for Computer Games