- Procedural Content Generation for C++ Game Development
- Dale Green
- 527字
- 2021-07-16 09:37:46
The drawbacks of procedural generation
As with anything, there are two sides to a story. Procedural generation brings a myriad of possibilities and enhancements to games, but there are considerations to be taken when implementing it.
More taxing on the hardware
As we now know, procedural generation is the creation of content through running algorithms. These algorithms can be intense and require a lot of computing power. If you develop a game that makes heavy use of procedural generation, you need to ensure that a regular consumer PC or console is able to meet its demands.
For example, if you choose to generate trees procedurally in an open world game, there's going to be a big load on the CPU and GPU whenever that area needs to be generated. Lesser PCs might not have the power to do so, and therefore, they may stutter.
Worlds can feel repetitive
Another potential drawback is the fact that worlds can feel repetitive. If you allow your game system to generate incredibly large worlds, but use few and basic algorithms to do so, you'll inevitably have a lot of repetitive areas being generated. Patterns and repeating areas will be very easy to spot, and this will diminish from your game greatly.
You sacrifice quality control
Computers may be faster at crunching numbers than us humans, but there's one thing that we're vastly superior at, and that's creativity. No matter how amazing the procedural algorithm is, you lose the human touch. The little changes and subtleties that a seasoned designer can bring to a project are sacrificed.
It also means that you can't guarantee the same gameplay quality to all players. Some players may generate a really great map that facilitates gameplay, while others may generate a map that actively prohibits it.
You may generate an unplayable world
In extreme cases of the previous point, a level that is completely unplayable may be generated. The risk of this happening depends on how well your procedural content is generated, but it should always be considered.
When generating a 3D terrain map, you may accidently generate a terrain that is too high for the player to climb, or blocks off an area that needs to be accessible. The same goes for a 2D map. Later in this book we'll be generating dungeon rooms randomly. So for example, we need to ensure that each room has a valid entrance and exit.
It is hard to script set game events
Continuing with the previous point, procedural generation is uncertain. If the entire world around you is generated exclusively procedurally and randomly, then it makes it almost impossible to script fixed game events.
Game events are pre-scripted events, and the nature of procedural generation is to create unscripted worlds. Getting the two to work together is a tough challenge. For this reason, games tend to use a mix of procedural generation and premade game development. With this, you get the fixed game events and moments that are needed to drive a narrative, and in between all of this, you create a unique and open world for the player to explore and interact with at their own whim.
- 認識編程:以Python語言講透編程的本質
- Python面向對象編程:構建游戲和GUI
- 飛槳PaddlePaddle深度學習實戰
- ANSYS Fluent 二次開發指南
- 大數據分析與應用實戰:統計機器學習之數據導向編程
- 編寫高質量代碼:改善Objective-C程序的61個建議
- Python Machine Learning Blueprints:Intuitive data projects you can relate to
- Qt 4開發實踐
- HTML5游戲開發實戰
- jQuery Mobile Web Development Essentials(Second Edition)
- Visual FoxPro程序設計習題及實驗指導
- 菜鳥成長之路
- Laravel 5.x Cookbook
- Python編程:從入門到實踐(第2版)
- Swift編程實戰:iOS應用開發實例及完整解決方案