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 topics.

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.