I had the amazing opportunity to pitch, write and publish some books on game development.

It taught me some valuable lessons about the inner workings of publication and content creation.

Game Programming in C++: Start to Finish

Welcome to the exciting world of game programming! If you’re already
familiar with the C++ programming language and want to learn how to
program games, this book is for you. Game Programming in C++: Start to
Finish will help you learn how to turn your own game fantasies into
playable realities!

Over the course of the book, you’ll learn the popular techniques
and practices behind today’s games. Not only will you add a lot of theory
to your game programming toolkit, but you’ll also create a small basic
game from scratch - SuperAsteriodArena.

While you’ll focus on using the SDL and the OpenGL libraries to learn game
programming, you’ll also learn the essential Windows principles that
you’ll need to create just about any kind of game with any other API such
as DirectX.

This easy-to-follow book takes current game programming information and
filters it down to a practical level.

Learn C++ By Making Games

Learn C++ by Making Games teaches the fundamentals of C++ from a unique
and fun perspective. Using game specific code and examples, the book helps
anyone wanting to learn C++ progress from the basics to more advanced

As you learn C++, you’ll be putting the code and techniques into practice
by programming a game project in each part of the book. The book begins
with an introduction to the fundamentals of the C++ language, including
the basic data types of the language.

It then progresses further into creating and defining variables, basic
mathematical operators, and the various loop structures at your disposal.
Next, you’ll learn how to use functions to make code more readable and
maintainable, along with techniques for breaking up source code into
several files for readability.

From there you’ll move to data structures and explore concepts such as
using collections to store multiple copies of a data type. With these
foundations of C++ firmly applied, you’ll be ready to learn the basics of
pointers that you’ll need for all of your C++ programming. Next comes an
introduction to object-oriented programming (OOP) concepts, including
classes, objects, inheritance, virtual methods, and polymorphism. From
there, reading and writing data files (serialization)
are covered. The book concludes with an exploration of how to use the
Simple DirectMedia Layer to display graphics and handle basic input,
sound, linked lists, templates, along with a variety of more advanced
topics, including using SDL to create a simple demo.