- Procedural Content Generation for C++ Game Development
- Dale Green
- 352字
- 2021-07-16 09:37:44
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
- 多媒體CAI課件設計與制作導論(第二版)
- LaTeX Cookbook
- 算法精粹:經典計算機科學問題的Java實現
- Java開發入行真功夫
- 數據結構習題精解(C語言實現+微課視頻)
- 深度強化學習算法與實踐:基于PyTorch的實現
- Mastering Business Intelligence with MicroStrategy
- Fastdata Processing with Spark
- 青少年學Python(第2冊)
- 從零開始構建深度前饋神經網絡:Python+TensorFlow 2.x
- Apache Solr for Indexing Data
- Implementing Domain:Specific Languages with Xtext and Xtend
- jQuery EasyUI從零開始學
- C++游戲設計案例教程
- Kudu:構建高性能實時數據分析存儲系統