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

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
主站蜘蛛池模板: 赤水市| 平乐县| 正镶白旗| 漳州市| 铜鼓县| 林周县| 岗巴县| 贵定县| 江达县| 略阳县| 灵石县| 司法| 吐鲁番市| 彭山县| 安徽省| 万荣县| 周口市| 襄垣县| 荥经县| 罗甸县| 高平市| 长治县| 通山县| 南充市| 望谟县| 越西县| 陇西县| 隆子县| 辽宁省| 大厂| 达孜县| 龙里县| 平阴县| 漳州市| 新疆| 青川县| 揭阳市| 宣恩县| 白城市| 简阳市| 邢台市|