Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds
Beginning C++ Game Programming
Beginning C++ Game Programming

Beginning C++ Game Programming: Learn to program with C++ by building fun games , Second Edition

Arrow left icon
Profile Icon John Horton
Arrow right icon
NZ$46.99 NZ$52.99
Full star icon Full star icon Full star icon Full star icon Half star icon 4.2 (10 Ratings)
eBook Oct 2019 746 pages 2nd Edition
eBook
NZ$46.99 NZ$52.99
Paperback
NZ$65.99
Subscription
Free Trial
Arrow left icon
Profile Icon John Horton
Arrow right icon
NZ$46.99 NZ$52.99
Full star icon Full star icon Full star icon Full star icon Half star icon 4.2 (10 Ratings)
eBook Oct 2019 746 pages 2nd Edition
eBook
NZ$46.99 NZ$52.99
Paperback
NZ$65.99
Subscription
Free Trial
eBook
NZ$46.99 NZ$52.99
Paperback
NZ$65.99
Subscription
Free Trial

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Product feature icon AI Assistant (beta) to help accelerate your learning
OR
Modal Close icon
Payment Processing...
tick Completed

Billing Address

Table of content icon View table of contents Preview book icon Preview Book

Beginning C++ Game Programming

Chapter 1: C++, SFML, Visual Studio, and Starting the First Game

Welcome to Beginning C++ Game Programming. I will not waste any time in getting you started on your journey to writing great games for the PC using C++ and the OpenGL powered SFML.

This is quite a hefty first chapter, but we will learn absolutely everything we need so that we have the first part of our first game up and running. Here is what we will do in this chapter:

  • Find out about the games we will build
  • Meet C++
  • Find out about Microsoft Visual C++
  • Explore SFML and its relationship with C++
  • Setting up the development environment
  • Plan and prepare for the first game project, Timber!!!
  • Write the first C++ code of this book and make a runnable game that draws a background

The games we will build

This journey will be smooth as we will learn about the fundamentals of the super-fast C++ language one step at a time, and then put this new knowledge to use by adding cool features to the five games we are going to build.

The following are our five projects for this book.

Timber!!!

The first game is an addictive, fast-paced clone of the hugely successful Timberman, which can be found at http://store.steampowered.com/app/398710/. Our game, Timber!!!, will introduce us to all the basics of C++ while we build a genuinely playable game. Here is what our version of the game will look like when we are done and we have added a few last-minute enhancements:

Pong

Pong was one of the first video games to be made, and you can find out about its history here: https://en.wikipedia.org/wiki/Pong. It is an excellent example of how the basics of game object animation and dynamic collision detection work. We will build this simple retro game to explore the concept of classes and object-oriented programming. The player will use the bat at the bottom of the screen and hit the ball back to the top of the screen:

Zombie Arena

Next, we will build a frantic, zombie survival shooter, not unlike the Steam hit Over 9,000 Zombies!, which you can find out more about at http://store.steampowered.com/app/273500/. The player will have a machine gun and must fight off ever-growing waves of zombies. All this will take place in a randomly generated, scrolling world. To achieve this, we will learn about how object-oriented programming allows us to have a large code base (lots of code) that is easy to write and maintain. Expect exciting features such as hundreds of enemies, rapid-fire weaponry, pickups, and a character that can be “leveled up” after each wave:

Thomas was late

The fourth game will be a stylish and challenging single-player and co-op puzzle platformer. It is based on the very popular game Thomas was Alone (http://store.steampowered.com/app/220780/). Expect to learn about cool topics such as particle effects, OpenGL Shaders, and split-screen cooperative multiplayer:

Tip

If you want to play any of the games now, you can do so from the download bundle in the Runnable Games folder. Just double-click on the appropriate .exe file. Note that, in this folder, you can run either the completed games or any game in its partially completed state from any chapter.

Space Invaders ++

The final game will be a Space Invaders clone. In some ways, the game itself is not what is important about this project. The project will be used to learn about game programming patterns. As will become abundantly clear as this book progresses, our code keeps getting longer and more complicated. Each project will introduce one or more techniques for coping with this, but the complexity and length of our code will keep coming back to challenge us, despite these techniques.

The Space Invaders project (called Space Invaders ++) will show us ways in which we can radically reorganize our game code also that we can take control of and properly manage our code once and for all. This will leave you with all the knowledge you need to plan and build deep, complex, and innovative games, without ending up in a tangle of code.

The game will also introduce concepts such as screens, input handlers, and entity-component systems. It will also allow us to learn how to let the player use a gamepad instead of the keyboard and introduce the C++ concepts of smart pointers, casts, assertions, breakpoint debugging, and teach us the most important lesson from the whole book: how to build your own unique games:

Let’s get started by introducing C++, Visual Studio, and SFML!

Meet C++

Now that we know what games we will be building, let’s get started by introducing C++, Visual Studio, and SFML. One question you might have is, why use the C++ language at all? C++ is fast – very fast. What makes this true is the fact that the code that we write is directly translated into machine-executable instructions. These instructions are what make the game. The executable game is contained within a .exe file, which the player can simply double-click to run.

There are a few steps in the process of changing our code into an executable file. First, the preprocessor looks to see if any other code needs to be included within our own code and adds it. Next, all the code is compiled into object files by the compiler program. Finally, a third program, called the linker, joins all the object files into the executable file for our game.

In addition, C++ is well established at the same time as being extremely up to date. C++ is an object-oriented programming (OOP) language, which means we can write and organize our code using well-tested conventions that make our games efficient and manageable. The benefits as well as the necessity of this will reveal themselves as we progress through this book.

Most of this other code that I referred to, as you might be able to guess, is SFML, and we will find out more about SFML in just a minute. The preprocessor, compiler, and linker programs I have just mentioned are all part of the Visual Studio integrated development environment (IDE).

Left arrow icon Right arrow icon
Download code icon Download Code

Key benefits

  • Learn game development and C++ with a fun, example-driven approach
  • Build clones of popular games such as Timberman, Zombie Survival Shooter, a co-op puzzle platformer, and Space Invaders
  • Discover tips to expand your finished games by thinking critically, technically, and creatively

Description

The second edition of Beginning C++ Game Programming is updated and improved to include the latest features of Visual Studio 2019, SFML, and modern C++ programming techniques. With this book, you’ll get a fun introduction to game programming by building five fully playable games of increasing complexity. You’ll learn to build clones of popular games such as Timberman, Pong, a Zombie survival shooter, a coop puzzle platformer and Space Invaders. The book starts by covering the basics of programming. You’ll study key C++ topics, such as object-oriented programming (OOP) and C++ pointers, and get acquainted with the Standard Template Library (STL). The book helps you learn about collision detection techniques and game physics by building a Pong game. As you build games, you’ll also learn exciting game programming concepts such as particle effects, directional sound (spatialization), OpenGL programmable shaders, spawning objects, and much more. Finally, you’ll explore game design patterns to enhance your C++ game programming skills. By the end of the book, you’ll have gained the knowledge you need to build your own games with exciting features from scratch

Who is this book for?

This book is perfect for you if you have no C++ programming knowledge, you need a beginner-level refresher course, or you want to learn how to build games or just use games as an engaging way to learn C++. Whether you aspire to publish a game (perhaps on Steam) or just want to impress friends with your creations, you’ll find this book useful.

What you will learn

  • Set up your game development project in Visual Studio 2019 and explore C++ libraries such as SFML
  • Explore C++ OOP by building a Pong game
  • Understand core game concepts such as game animation, game physics, collision detection, scorekeeping, and game sound
  • Use classes, inheritance, and references to spawn and control thousands of enemies and shoot rapid-fire machine guns
  • Add advanced features to your game using pointers, references, and the STL
  • Scale and reuse your game code by learning modern game programming design patterns

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Oct 31, 2019
Length: 746 pages
Edition : 2nd
Language : English
ISBN-13 : 9781838647650
Languages :
Concepts :

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Product feature icon AI Assistant (beta) to help accelerate your learning
OR
Modal Close icon
Payment Processing...
tick Completed

Billing Address

Product Details

Publication date : Oct 31, 2019
Length: 746 pages
Edition : 2nd
Language : English
ISBN-13 : 9781838647650
Languages :
Concepts :

Packt Subscriptions

See our plans and pricing
Modal Close icon
$19.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
$199.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just NZ$7 each
Feature tick icon Exclusive print discounts
$279.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just NZ$7 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total NZ$ 261.97
C++ Game Development By Example
NZ$56.99
Beginning C++ Game Programming
NZ$65.99
Modern C++ Programming Cookbook
NZ$138.99
Total NZ$ 261.97 Stars icon

Table of Contents

24 Chapters
Chapter 1: C++, SFML, Visual Studio, and Starting the First Game Chevron down icon Chevron up icon
Chapter 2: Variables, Operators, and Decisions – Animating Sprites Chevron down icon Chevron up icon
Chapter 3: C++ Strings and SFML Time – Player Input and HUD Chevron down icon Chevron up icon
Chapter 4: Loops, Arrays, Switches, Enumerations, and Functions – Implementing Game Mechanics Chevron down icon Chevron up icon
Chapter 5: Collisions, Sound, and End Conditions – Making the Game Playable Chevron down icon Chevron up icon
Chapter 6: Object-Oriented Programming – Starting the Pong Game Chevron down icon Chevron up icon
Chapter 7: Dynamic Collision Detection and Physics – Finishing the Pong Game Chevron down icon Chevron up icon
Chapter 8: SFML Views – Starting the Zombie Shooter Game Chevron down icon Chevron up icon
Chapter 9: C++ References, Sprite Sheets, and Vertex Arrays Chevron down icon Chevron up icon
Chapter 10: Pointers, the Standard Template Library, and Texture Management Chevron down icon Chevron up icon
Chapter 11: Collision Detection, Pickups, and Bullets Chevron down icon Chevron up icon
Chapter 12: Layering Views and Implementing the HUD Chevron down icon Chevron up icon
Chapter 13: Sound Effects, File I/O, and Finishing the Game Chevron down icon Chevron up icon
Chapter 14: Abstraction and Code Management – Making Better Use of OOP Chevron down icon Chevron up icon
Chapter 15: Advanced OOP – Inheritance and Polymorphism Chevron down icon Chevron up icon
Chapter 16: Building Playable Levels and Collision Detection Chevron down icon Chevron up icon
Chapter 17: Sound Spatialization and the HUD Chevron down icon Chevron up icon
Chapter 18: Particle Systems and Shaders Chevron down icon Chevron up icon
Chapter 19: Game Programming Design Patterns – Starting the Space Invaders ++ Game Chevron down icon Chevron up icon
Chapter 20: Game Objects and Components Chevron down icon Chevron up icon
Chapter 21: File I/O and the Game Object Factory Chevron down icon Chevron up icon
Chapter 22: Using Game Objects and Building a Game Chevron down icon Chevron up icon
Chapter 23: Before You Go... Chevron down icon Chevron up icon
Other Books You May Enjoy Chevron down icon Chevron up icon

Customer reviews

Top Reviews
Rating distribution
Full star icon Full star icon Full star icon Full star icon Half star icon 4.2
(10 Ratings)
5 star 60%
4 star 10%
3 star 20%
2 star 10%
1 star 0%
Filter icon Filter
Top Reviews

Filter reviews by




J Anderson Jan 27, 2020
Full star icon Full star icon Full star icon Full star icon Full star icon 5
The method the author uses may not be for everyone, but for me, it's exactly what I've been looking for.I picked up C++ a few months ago in order to get to a point in which I could make my own game(s), or to get a job in game programming. I've learned a lot about C++ but also much about myself as a learner in my 30s, trying to pick something up that is, essentially, another language. I've read through the first 15-25% of multiple text books since having started. I enjoy learning new programming concepts, and getting further into the knowledge of C++, but most of the resources I'd found were either [A] not actually teaching game programming but were teaching general programming with C++, or [B] the "games" being taught in these books were command line text-based games, nothing all that directly applicable to a rendered 2D/3D game that I wanted to create from the very beginning.This book starts right off the bat getting the reader in with very simple concepts to get a window to open and pop up, which is far more than any of the other books I'd read into had done. It then teaches you directly how to use SFML to attach textures to sprites, and then render said sprites on the screen.One thing that might be a tad intimidating is that the author introduces classes VERY early, like within the first few pages of the book, but it is a necessity and, so long as the reader can somewhat grasp that a class is like a template, and an object is a single usage of said template, the reader will be able to follow along. The book is challenging but being able to step-by-step read how he breaks down each bit of code is enough to get me over those challenging parts.I've just completed Chapter 5 and the first full game engine the author walks you through coding. To be introduced to beginner concepts by building a game engine is exactly what I'd been looking for this entire time but hadn't found. The author walks the reader through every single line of code, explains what it does and why it's there. It's really wonderful. I've learned so much more relevant information in this book in the first 5 chapters than everything I'd read on C++ prior, and I'm actually excited to continue.I truly am grateful for this book. Packt.com was having a sale so I got the ebook for 5 bucks, but this is worth so much more. I'll be purchasing the print version soon enough to support the author.If you're interested in actual game development, game engine programming, and you're a bit of a noob, you need to check this book out. I absolutely love it. It's exactly what I've been looking for.
Amazon Verified review Amazon
R. Tkatch Jul 26, 2021
Full star icon Full star icon Full star icon Full star icon Full star icon 5
The book is simple because the author is teaching someone that knows nothing about c++ including basic data structures. However, for this is a perfect approach even for the one who knows this because it gives the student a simple example to make into more refined code. This gives an example but allows one to put their approach to it. I have only gotten a bit into the book. I will update this review when I get closer to the end.
Amazon Verified review Amazon
JKG Feb 24, 2021
Full star icon Full star icon Full star icon Full star icon Full star icon 5
C++ fundamentals are laid out in an easy to read and easy to follow format. Plenty of practice exercises to reinforce the material.
Amazon Verified review Amazon
satcom4fun Mar 13, 2020
Full star icon Full star icon Full star icon Full star icon Full star icon 5
I really liked the incremental approach to learning C++ using games. The final game architecture is amazing and shows how to abstract game components into classes. Just what I needed.
Amazon Verified review Amazon
Dawit Mar 02, 2021
Full star icon Full star icon Full star icon Full star icon Full star icon 5
This book is pretty pog!
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

How do I buy and download an eBook? Chevron down icon Chevron up icon

Where there is an eBook version of a title available, you can buy it from the book details for that title. Add either the standalone eBook or the eBook and print book bundle to your shopping cart. Your eBook will show in your cart as a product on its own. After completing checkout and payment in the normal way, you will receive your receipt on the screen containing a link to a personalised PDF download file. This link will remain active for 30 days. You can download backup copies of the file by logging in to your account at any time.

If you already have Adobe reader installed, then clicking on the link will download and open the PDF file directly. If you don't, then save the PDF file on your machine and download the Reader to view it.

Please Note: Packt eBooks are non-returnable and non-refundable.

Packt eBook and Licensing When you buy an eBook from Packt Publishing, completing your purchase means you accept the terms of our licence agreement. Please read the full text of the agreement. In it we have tried to balance the need for the ebook to be usable for you the reader with our needs to protect the rights of us as Publishers and of our authors. In summary, the agreement says:

  • You may make copies of your eBook for your own use onto any machine
  • You may not pass copies of the eBook on to anyone else
How can I make a purchase on your website? Chevron down icon Chevron up icon

If you want to purchase a video course, eBook or Bundle (Print+eBook) please follow below steps:

  1. Register on our website using your email address and the password.
  2. Search for the title by name or ISBN using the search option.
  3. Select the title you want to purchase.
  4. Choose the format you wish to purchase the title in; if you order the Print Book, you get a free eBook copy of the same title. 
  5. Proceed with the checkout process (payment to be made using Credit Card, Debit Cart, or PayPal)
Where can I access support around an eBook? Chevron down icon Chevron up icon
  • If you experience a problem with using or installing Adobe Reader, the contact Adobe directly.
  • To view the errata for the book, see www.packtpub.com/support and view the pages for the title you have.
  • To view your account details or to download a new copy of the book go to www.packtpub.com/account
  • To contact us directly if a problem is not resolved, use www.packtpub.com/contact-us
What eBook formats do Packt support? Chevron down icon Chevron up icon

Our eBooks are currently available in a variety of formats such as PDF and ePubs. In the future, this may well change with trends and development in technology, but please note that our PDFs are not Adobe eBook Reader format, which has greater restrictions on security.

You will need to use Adobe Reader v9 or later in order to read Packt's PDF eBooks.

What are the benefits of eBooks? Chevron down icon Chevron up icon
  • You can get the information you need immediately
  • You can easily take them with you on a laptop
  • You can download them an unlimited number of times
  • You can print them out
  • They are copy-paste enabled
  • They are searchable
  • There is no password protection
  • They are lower price than print
  • They save resources and space
What is an eBook? Chevron down icon Chevron up icon

Packt eBooks are a complete electronic version of the print edition, available in PDF and ePub formats. Every piece of content down to the page numbering is the same. Because we save the costs of printing and shipping the book to you, we are able to offer eBooks at a lower cost than print editions.

When you have purchased an eBook, simply login to your account and click on the link in Your Download Area. We recommend you saving the file to your hard drive before opening it.

For optimal viewing of our eBooks, we recommend you download and install the free Adobe Reader version 9.