- 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
- Docker技術(shù)入門與實(shí)戰(zhàn)(第3版)
- 單片機(jī)C語言程序設(shè)計(jì)實(shí)訓(xùn)100例:基于STC8051+Proteus仿真與實(shí)戰(zhàn)
- C# Programming Cookbook
- C和C++安全編碼(原書第2版)
- Flutter跨平臺(tái)開發(fā)入門與實(shí)戰(zhàn)
- Python High Performance Programming
- Learning Apache Cassandra
- Spring Boot實(shí)戰(zhàn)
- Scratch趣味編程:陪孩子像搭積木一樣學(xué)編程
- GitHub入門與實(shí)踐
- 工業(yè)機(jī)器人離線編程
- Clojure Polymorphism
- jQuery從入門到精通(微課精編版)
- Python Social Media Analytics
- Python應(yīng)用與實(shí)戰(zhàn)