top of page
Search

Week 1 (22/09/2024 - 28/09/2024) Introduction to All things Procedural

  • Writer: junlachaktophat
    junlachaktophat
  • Nov 23, 2024
  • 2 min read

Updated: Dec 18, 2024

Figure 1: Screenshot showcasing games utilizing Procedural Generation (DAWOOD, Z., 2024).


The first week was a week of learning about Procedural Generation Algorithms and examples of how Procedural Generation Algorithms are used in software, including functions in game engines such as Unity.


introduction of Procedural Generation

According to Pawson (2021), Procedural Generation Algorithms (PCG) are data generation algorithms, unlike manual data generation, this data is generated at runtime.


World Machine is an example of a program that uses Procedural Generation Algorithms. The program was first developed in 2005 by Stephen Schmitt with the idea of ​​creating software that could easily generate procedural terrain for games and visual effects. This software is widely used in the gaming and film industries, such as creating terrain for open-world games or designing highly realistic maps. The program has features that use the principles of Procedural Generation. For example, Procedural Texturing can create surface maps, making the surface of the terrain more realistic, Height Maps that use the height of the terrain for rendering, Slope Maps that show the slope of the terrain, and finally, Flow Maps that simulate water flow.


Figure 2: Shows procedural tools like texturing, height, slope, and flow maps for realistic terrain and water simulation.


Usage in game

The first task this week is to use Unity's Procedural Generation Algorithms function to generate a random generation of objects using a function called Random.rang(). According to Unity Documentation (2024), The function works by returning a random float value within [minInclusive, maxInclusive]. If minInclusive is greater than maxInclusive, the numbers are automatically swapped. In the example script, the sound of the ball's spawn point will be randomized using the Random.rang() function, and then inserted into the void Update method to make it work as a loop.


Figure 1: This script demonstrates Unity's Procedural Generation using Random.Range() to create randomized spawn points for objects. The positions are updated in the Update() loop for continuous spawning.


Once it has the basics down, try pressing it to see the display values. As seen in the clip.


Source: Created by Juclachak Juntasilp, 2024.


References

  1. CG Channel (2017) World Machine gets first update in over a year. Available at: https://www.cgchannel.com/2017/02/world-machine-gets-first-update-in-over-a-year/ (Accessed: 28 September 2024).

  2. World Machine (no date) About Us. Available at: https://www.world-machine.com/company.php (Accessed: 28 September 2024).

  3. Schmitt, S. (n.d.) World Machine Features. Available at: https://www.world-machine.com/features.php (Accessed: 28 September 2024).

  4. Juntasilp, J. (2024) My-CT7120-Procedural-Generation-Algorithms-Project. Available at: https://github.com/jino1113/My-CT7120-Procedural-Generation-Algorithms-Project/tree/My-first-pcg-project (Accessed: 23 November 2024).

  5. Juntasilp, J., (2024) Explanation of Task Results for Procedural Generation Project. Available at: https://www.youtube.com/watch?v=6h0U6GQq6Y4 (Accessed: 23 November 2024).

  6. DAWOOD, Z., 2024. Procedural Generation Algorithms. PowerPoint presentation. Available at: https://connectglosac-my.sharepoint.com/:p:/g/personal/s2105341_glos_ac_uk/EdB3gr97bWhDkqZ0UfLfvOIBhRgryBlf3ifo_CuChPNVsQ?e=aoDd2G (Accessed: 28 September 2024).

  7. Pawson, K. (2021) 'Procedural Generation: An Overview', Medium, 19 February. Available at: https://kentpawson123.medium.com/procedural-generation-an-overview-1b054a0f8d41 (Accessed: 28 September 2024).

 
 
 

تعليقات


bottom of page