"If you're new to C++ but understand some basic programming, then Learn C++ for Game Development lays the foundation for the C++ language and API that you'll need to build game apps and applications. Learn C++ for Game Development will show you how to: Master C++ features such as variables, pointers, flow controls, functions, I/O, classes, exceptions, templates, and the Standard Template Library (STL); Use design patterns to simplify your coding and make more powerful games; Manage memory efficiently to get the most out of your creativity; Load and save games using file I/O, so that your users are never disappointed. Most of today's popular console and PC game platforms use C++ in their SDKs. Even the Android NDK and now the iOS SDK allow for C++; so C++ is growing in use for today's mobile game apps. Game apps using C++ become much more robust, better looking, more dynamic, and better performing. After reading this book, you'll have the skills to become a successful and profitable game app or applications developer in today's increasingly competitive indie game marketplace. The next stage is to take the foundation from this book and explore SDKs such as Android/Ouya, PlayStation, Wii, Nintendo DS, DirectX, Unity3D, and GameMaker Studio to make your career really take off. What you'll learn: How to use the various C++ skill fundamentals: variables, pointers, flow controls, functions, I/O, classes, exceptions, and more; How to write C++ games using object-oriented programming techniques: classes, objects, inheritance, and polymorphism; How to use templates and the Standard Template Library (STL) in C++; How to work with design patterns in C++ game development; How to apply C++ to native game activities; How to master concurrency and the gains in performance it brings. This book is for aspiring game developers with some previous programming experience who need to learn the critical C++ skills necessary to build game applications. C++ is the most popular programming language in use behind most game applications."-- Unedited summary from book Contents at a Glance Contents About the Author About the Technical Reviewer Acknowledgments Introduction Chapter 1: Beginning C++ Compilers Programming Paradigms Procedural Programming Object-Oriented Programming Generic Programming C++ Game Programming Our First C++ Program Summary Part 1: Procedural Programming Chapter 2: Writing a Guessing Game with C++ Types Dynamic Versus Static Typed Languages Declaring Variables Defining Variables Integers Unsigned Integers Two’s Complement Floating Point Numbers Boolean Values Enums Switching from One Type to Another static_cast A Simple Guessing Game Summary Chapter 3: Creating Calculators with Operators The Assignment Operator Arithmetic Operators The Addition Operator The Subtraction Operator The Multiplication and Division Operators The Modulo Operator A Simple Arithmetic Calculator Relational Operators Equality Operators Greater-Than Operators Less-Than Operators Simple Comparison Calculators Bitwise Operators Hexadecimal Number Representation The Binary & (AND) Operator The Binary | (OR) Operator The Binary ^ (Exclusive OR) Operator The Left Shift (< >) Operator Logical Operators The && Operator The || Operator Unary Operators Arithmetic Unary Operators Unary Negative Operator Unary Plus Operator The Increment and Decrement Operators The Logical Not Unary Operator The One’s Complement Operator Summary Chapter 4: Beginning C++ Game Development with Arrays The C++ Array Pointers Pointer Arithmetic Dereferencing Pointers Pointers and Arrays C Style Strings in Arrays Working with C Style Strings strlen strcmp strcpy strcat Text Adventure Game Summary Chapter 5: Functions, the Building Blocks of C++ Writing Our First Function Passing Parameters to Functions Return Values Passing by Pointer Passing by Reference Structures Adding Functions to Text Adventure Summary Chapter 6: Making Decisions with Flow Control The if Statement The else and else if Statements The for Loop The while Loop The switch Statement The break and continue Keywords The goto Statement Adding a Game Loop to Text Adventure Summary Chapter 7: Organizing Projects Using Files and Namespaces Source and Header Files Creating Namespaces Updating Text Adventure with Source Files, Header Files, and Namespaces Summary Part 2: Object-Oriented Programming Chapter 8: Object-Oriented Programming with Classes Object-Oriented Programming Encapsulation Constructors and Destructors Method Overloading Operator Overloading Updating Text Adventure to Use Classes Summary Chapter 9: Controlling Data with Access Modifiers The static Keyword Creating static Local Variables Using static class Member Variables Using static Member Methods Using static to Alter Global Scope The const Keyword Constant Variables Constant Pointers Constant Parameters Constant Member Methods Two More Keywords The inline Keyword The friend Keyword Summary Chapter 10: Building Games with Inheritance Inheriting from a Base Class Constructors and Destructors in Derived Classes Method Overriding Updating Text Adventure Creating an Entity Class Adding Inheritance to the Player Class Adding Rooms Moving Through Rooms Summary Chapter 11: Designing Game Code with Polymorphism Virtual Methods Downcasting and Upcasting with dynamic_cast Creating Interfaces with Pure Virtual Methods Using Polymorphism in Text Adventure Summary Chapter 12: Copying and Assigning Data to Objects Copy Constructors Assignment Operators Move Semantics Summary Part 3: The STL Chapter 13: The STL String Class Standard string and basic_string Constructing Strings Working with Strings Accessing String Data Through Iterators Searching Within Strings Formatting Data with stringstream Summary Chapter 14: STL Array and Vector The STL Array Template The STL Vector Class Sorting Arrays and Vectors Summary Chapter 15: STL List Understanding Array and List Memory Layouts Building a List Class The STL List Template Summary Chapter 16: STL’s Associative Containers The STL set Container The STL map Container Binary Search Trees Fast Data Access Using a Hash Map STL unordered_set and unordered_map Summary Chapter 17: STL’s Stack and Queue The STL stack Container The STL queue Container Summary Chapter 18: STL’s bitset Creating bitset Objects Working with bitsets Summary Chapter 19: Using the STL in Text Adventure Using STL array to Store Room Pointers Using a vector and a map to Store Options Adding Gameplay to Text Adventure Summary Part 4: Generic Programming Chapter 20: Template Programming Compile Versus Runtime Time Compilation const Versus constexpr assert Versus static_assert Summary Chapter 21: Practical Template Programming Creating Singleton Classes with Templates Implementing the EventManager Class The EventHandler Interface The Event Class The EventManager Implementation Calculating SDBM Hash Values Using a Template Metaprogram Using an Event to Quit the Game Summary Part 5: C++ Game Programming Chapter 22: Managing Memory for Game Developers Static Memory The C++ Stack Memory Model Working with Heap Memory Writing a Basic Single Threaded Memory Allocator Summary Chapter 23: Useful Design Patterns for Game Development Using the Factory Pattern in Games Decoupling with the Observer Pattern Easily Adding New Functionality with the Visitor Pattern Summary Chapter 24: Using File IO to Save and Load Games What Is Serialization? The Serialization Manager Saving and Loading Text Adventure Summary Chapter 25: Speeding Up Games with Concurrent Programming Running Text Adventure in Its Own Thread Sharing Data Between Threads Using Mutexes Using Futures and Promises Summary Chapter 26: Supporting Multiple Platforms in C++ Ensuring Types Are the Same Size on Multiple Platforms Using the Preprocessor to Determine Target Platform Summary Chapter 27: Wrapping Up An Overview of Text Adventure Summary Index An Apress entry on C++ skills accumulation book for Game developers. Retail/Trade sales potential exists in addition to the more likely sales to come from books as database engines as both C++ and Game Development are relevant terms. Charles River Media book out of print or no longer supported directly by the Publisher/sold direct by Publisher on Amazon anymore. This Apress book takes its place at least. Author is an expert game developer/programmer. C++ is still the primary programming language that the majority of game applications/apps rely upon in today's market