官术网_书友最值得收藏!

Chapter 1. An Introduction to Procedural Generation

When you load an image on a PC, a song on an iPod, or a book on a Kindle, you load it from storage. That image, song, and book already exists as a whole, and whenever you want to access it, you grab the whole previously created thing. In the case of music or a video, you can stream it in chunks, but it still already exists as a whole in storage. Let's compare this to buying a ready-made desk from a furniture store. You get the entire desk as one single thing and that's that; you have a desk.

Now, let's imagine that instead of buying a complete desk, you buy one that's flat-packed. Instead of getting a pre-built desk, you get all the pieces that you need to build one, and instructions on how to do so. When you get home, you can follow those instructions, and you will have a desk. If you feel so inclined, you can even deviate from the instructions and create a unique desk that is different from that of everyone else.

Let's use this analogy in the context of game development by substituting the purchasing of a desk with the loading of a level. In the first case, we loaded the level as a whole, as it was pre-built. However, in the second example, we got all the pieces that we need to build a level and put them together ourselves in whatever order we choose.

This process of something being created via an algorithm or procedure, as opposed to already existing, is called procedural generation. The desk was created procedurally as you followed an algorithm to put its pieces together. The same goes for the game level. This can be extended to almost anything. For example, music, images, games, and text can all be procedurally generated.

In this chapter, we will cover the following topics:

  • Procedural generation versus random generation
  • Generating pseudorandom numbers in C++
  • Seeds
  • The benefits and drawbacks of procedural generation
  • A brief history of rogue-like games
  • How to implement procedural generation
主站蜘蛛池模板: 旅游| 高平市| 博野县| 阳朔县| 浑源县| 会泽县| 阿尔山市| 山阳县| 阳朔县| 松潘县| 温泉县| 蒙自县| 呼伦贝尔市| 永康市| 防城港市| 临潭县| 裕民县| 涡阳县| 睢宁县| 定襄县| 南涧| 克拉玛依市| 宁安市| 九江县| 衡山县| 抚州市| 和顺县| 内黄县| 方正县| 康保县| 比如县| 恩施市| 永安市| 乌兰察布市| 长子县| 班戈县| 湘阴县| 彰武县| 隆德县| 启东市| 威远县|