Preface
Computer games are a vast medium with dozens of genres that have developed over the past three to four decades. Games are bigger and more immersive than ever, and gamers' expectations have never been higher. While linear games, ones that have a set story and fixed progression, are still commonplace, more and more dynamic and open-ended games are being developed.
Advances in computer hardware and video game technologies are giving a much more literal meaning to the phrase "game world". Game maps are constantly increasing in size and flexibility, and it's thanks to technologies such as procedural generation that it's possible. Two gamers who buy the same game may have very different experiences as content is generated on the fly.
In this book, we're going to introduce ourselves to procedural generation, learning the skills needed to generate content on the fly to create dynamic and unpredictable game systems and mechanics.
Provided with this book is a game template for a rogue-like C++ game. When we get the project compiled and set up in Chapter 2, Project Setup and Breakdown, you'll see that it's currently just an empty shell. However, as we work our way through the book, you'll be introduced to the concepts behind procedurally generated content through real-world examples. We will then implement these examples in the empty project.