infinite world using procedural content generation › papers › infinite worlds using... ·...
TRANSCRIPT
![Page 1: Infinite World using Procedural Content Generation › Papers › Infinite Worlds using... · 2020-04-22 · In nite World using Procedural Content Generation Procedural Content Generation](https://reader035.vdocument.in/reader035/viewer/2022081406/5f1035c57e708231d447fc25/html5/thumbnails/1.jpg)
Infinite World using Procedural Content Generation
Infinite World using Procedural ContentGeneration
Jackie Engberg Christensen
University College NordJylland
November 27, 2014
![Page 2: Infinite World using Procedural Content Generation › Papers › Infinite Worlds using... · 2020-04-22 · In nite World using Procedural Content Generation Procedural Content Generation](https://reader035.vdocument.in/reader035/viewer/2022081406/5f1035c57e708231d447fc25/html5/thumbnails/2.jpg)
Infinite World using Procedural Content Generation
Overview
1 Procedural Content GenerationProblem StatementWhat is it Procedural Content GenerationApplications
2 NoiseUsage of NoiseManipulating Noises
3 The ProductChunksBiomesDemonstration
4 Conclusion/Future WorksProject Period ReviewConclusionFuture Works
![Page 3: Infinite World using Procedural Content Generation › Papers › Infinite Worlds using... · 2020-04-22 · In nite World using Procedural Content Generation Procedural Content Generation](https://reader035.vdocument.in/reader035/viewer/2022081406/5f1035c57e708231d447fc25/html5/thumbnails/3.jpg)
Infinite World using Procedural Content Generation
Procedural Content Generation
1 Procedural Content GenerationProblem StatementWhat is it Procedural Content GenerationApplications
2 NoiseUsage of NoiseManipulating Noises
3 The ProductChunksBiomesDemonstration
4 Conclusion/Future WorksProject Period ReviewConclusionFuture Works
![Page 4: Infinite World using Procedural Content Generation › Papers › Infinite Worlds using... · 2020-04-22 · In nite World using Procedural Content Generation Procedural Content Generation](https://reader035.vdocument.in/reader035/viewer/2022081406/5f1035c57e708231d447fc25/html5/thumbnails/4.jpg)
Infinite World using Procedural Content Generation
Procedural Content Generation
Problem Statement
Motivation
Optional topic
Huge interest in games such as Minecraft
Very little background knowledge
Seems to be popular on the game market
Infinite/open world to play on may appeal the player(s)
![Page 5: Infinite World using Procedural Content Generation › Papers › Infinite Worlds using... · 2020-04-22 · In nite World using Procedural Content Generation Procedural Content Generation](https://reader035.vdocument.in/reader035/viewer/2022081406/5f1035c57e708231d447fc25/html5/thumbnails/5.jpg)
Infinite World using Procedural Content Generation
Procedural Content Generation
Problem Statement
General Problemstatement
How can we create infinite and highly detailed gameworld(s) automatically that can provide the playerswith new unique experience at each game start?
![Page 6: Infinite World using Procedural Content Generation › Papers › Infinite Worlds using... · 2020-04-22 · In nite World using Procedural Content Generation Procedural Content Generation](https://reader035.vdocument.in/reader035/viewer/2022081406/5f1035c57e708231d447fc25/html5/thumbnails/6.jpg)
Infinite World using Procedural Content Generation
Procedural Content Generation
What is it Procedural Content Generation
What is Procedural Content Generation?
Wikipedia’s Definition:
Procedural content generation is generating contentalgorithmically rather than manually.
My Definition:
Procedural content generation is an algorithmically way ofcreating (often pseudo random) content at runtime.
Dictionary’s Definition:
Procedural: Something that is generated from some kind ofprocedure/algorithm instead of being predefined.
![Page 7: Infinite World using Procedural Content Generation › Papers › Infinite Worlds using... · 2020-04-22 · In nite World using Procedural Content Generation Procedural Content Generation](https://reader035.vdocument.in/reader035/viewer/2022081406/5f1035c57e708231d447fc25/html5/thumbnails/7.jpg)
Infinite World using Procedural Content Generation
Procedural Content Generation
What is it Procedural Content Generation
What is Procedural Content Generation?
Wikipedia’s Definition:
Procedural content generation is generating contentalgorithmically rather than manually.
My Definition:
Procedural content generation is an algorithmically way ofcreating (often pseudo random) content at runtime.
Dictionary’s Definition:
Procedural: Something that is generated from some kind ofprocedure/algorithm instead of being predefined.
![Page 8: Infinite World using Procedural Content Generation › Papers › Infinite Worlds using... · 2020-04-22 · In nite World using Procedural Content Generation Procedural Content Generation](https://reader035.vdocument.in/reader035/viewer/2022081406/5f1035c57e708231d447fc25/html5/thumbnails/8.jpg)
Infinite World using Procedural Content Generation
Procedural Content Generation
What is it Procedural Content Generation
What is Procedural Content Generation?
Wikipedia’s Definition:
Procedural content generation is generating contentalgorithmically rather than manually.
My Definition:
Procedural content generation is an algorithmically way ofcreating (often pseudo random) content at runtime.
Dictionary’s Definition:
Procedural: Something that is generated from some kind ofprocedure/algorithm instead of being predefined.
![Page 9: Infinite World using Procedural Content Generation › Papers › Infinite Worlds using... · 2020-04-22 · In nite World using Procedural Content Generation Procedural Content Generation](https://reader035.vdocument.in/reader035/viewer/2022081406/5f1035c57e708231d447fc25/html5/thumbnails/9.jpg)
Infinite World using Procedural Content Generation
Procedural Content Generation
What is it Procedural Content Generation
What is Procedural Content Generation?
Wikipedia’s Definition:
Procedural content generation is generating contentalgorithmically rather than manually.
My Definition:
Procedural content generation is an algorithmically way ofcreating (often pseudo random) content at runtime.
Dictionary’s Definition:
Procedural: Something that is generated from some kind ofprocedure/algorithm instead of being predefined.
![Page 10: Infinite World using Procedural Content Generation › Papers › Infinite Worlds using... · 2020-04-22 · In nite World using Procedural Content Generation Procedural Content Generation](https://reader035.vdocument.in/reader035/viewer/2022081406/5f1035c57e708231d447fc25/html5/thumbnails/10.jpg)
Infinite World using Procedural Content Generation
Procedural Content Generation
Applications
Usages of Procedural Content Generation
Mostly used in 3D graphics and games.
Different kinds (more about this in a sec.)
First game using procedural content generation was Elite(1984 by FireBird).
The BBC Micro version of Elite,showing the player approachinga Coriolis space station.
![Page 11: Infinite World using Procedural Content Generation › Papers › Infinite Worlds using... · 2020-04-22 · In nite World using Procedural Content Generation Procedural Content Generation](https://reader035.vdocument.in/reader035/viewer/2022081406/5f1035c57e708231d447fc25/html5/thumbnails/11.jpg)
Infinite World using Procedural Content Generation
Procedural Content Generation
Applications
Types of Procedural Content Generation
Everything is generated at runtime.
Modular generation - Everything manually created butrandomly/procedurally placed in the world.
Mixed between the two - Something is purely created fromscripts only, other things have been manually created.
![Page 12: Infinite World using Procedural Content Generation › Papers › Infinite Worlds using... · 2020-04-22 · In nite World using Procedural Content Generation Procedural Content Generation](https://reader035.vdocument.in/reader035/viewer/2022081406/5f1035c57e708231d447fc25/html5/thumbnails/12.jpg)
Infinite World using Procedural Content Generation
Procedural Content Generation
Applications
Types of Procedural Content Generation
Everything is generated at runtime.
Modular generation - Everything manually created butrandomly/procedurally placed in the world.
Mixed between the two - Something is purely created fromscripts only, other things have been manually created.
![Page 13: Infinite World using Procedural Content Generation › Papers › Infinite Worlds using... · 2020-04-22 · In nite World using Procedural Content Generation Procedural Content Generation](https://reader035.vdocument.in/reader035/viewer/2022081406/5f1035c57e708231d447fc25/html5/thumbnails/13.jpg)
Infinite World using Procedural Content Generation
Noise
1 Procedural Content GenerationProblem StatementWhat is it Procedural Content GenerationApplications
2 NoiseUsage of NoiseManipulating Noises
3 The ProductChunksBiomesDemonstration
4 Conclusion/Future WorksProject Period ReviewConclusionFuture Works
![Page 14: Infinite World using Procedural Content Generation › Papers › Infinite Worlds using... · 2020-04-22 · In nite World using Procedural Content Generation Procedural Content Generation](https://reader035.vdocument.in/reader035/viewer/2022081406/5f1035c57e708231d447fc25/html5/thumbnails/14.jpg)
Infinite World using Procedural Content Generation
Noise
Usage of Noise
Perlin Noise
Created by Ken Perlin for the Tron movie
Industrial standard
The most standard noise used in special effects
Is supported by multiple new GPUs
![Page 15: Infinite World using Procedural Content Generation › Papers › Infinite Worlds using... · 2020-04-22 · In nite World using Procedural Content Generation Procedural Content Generation](https://reader035.vdocument.in/reader035/viewer/2022081406/5f1035c57e708231d447fc25/html5/thumbnails/15.jpg)
Infinite World using Procedural Content Generation
Noise
Usage of Noise
Types of Noise
Perlin Noise
![Page 16: Infinite World using Procedural Content Generation › Papers › Infinite Worlds using... · 2020-04-22 · In nite World using Procedural Content Generation Procedural Content Generation](https://reader035.vdocument.in/reader035/viewer/2022081406/5f1035c57e708231d447fc25/html5/thumbnails/16.jpg)
Infinite World using Procedural Content Generation
Noise
Usage of Noise
Types of Noise
Ridged Noise/Fractal Noise
![Page 17: Infinite World using Procedural Content Generation › Papers › Infinite Worlds using... · 2020-04-22 · In nite World using Procedural Content Generation Procedural Content Generation](https://reader035.vdocument.in/reader035/viewer/2022081406/5f1035c57e708231d447fc25/html5/thumbnails/17.jpg)
Infinite World using Procedural Content Generation
Noise
Usage of Noise
Types of Noise
Billow Noise
![Page 18: Infinite World using Procedural Content Generation › Papers › Infinite Worlds using... · 2020-04-22 · In nite World using Procedural Content Generation Procedural Content Generation](https://reader035.vdocument.in/reader035/viewer/2022081406/5f1035c57e708231d447fc25/html5/thumbnails/18.jpg)
Infinite World using Procedural Content Generation
Noise
Usage of Noise
Types of Noise
Voronoi Noise
![Page 19: Infinite World using Procedural Content Generation › Papers › Infinite Worlds using... · 2020-04-22 · In nite World using Procedural Content Generation Procedural Content Generation](https://reader035.vdocument.in/reader035/viewer/2022081406/5f1035c57e708231d447fc25/html5/thumbnails/19.jpg)
Infinite World using Procedural Content Generation
Noise
Usage of Noise
Game related Usage
Height map
Special effects/post rendereffects
3D, texturing, image/videoediting
![Page 20: Infinite World using Procedural Content Generation › Papers › Infinite Worlds using... · 2020-04-22 · In nite World using Procedural Content Generation Procedural Content Generation](https://reader035.vdocument.in/reader035/viewer/2022081406/5f1035c57e708231d447fc25/html5/thumbnails/20.jpg)
Infinite World using Procedural Content Generation
Noise
Manipulating Noises
Noise Opperarions - How it Works
Works the same as in basic math
The noise maps value are between -1 - 1 or 0 - 1 or 0 - 255
1 + 1 is automatically (in Unity) clamped back to 1
More advanced operations such as displacement/turbulence,blending, select, more...
![Page 21: Infinite World using Procedural Content Generation › Papers › Infinite Worlds using... · 2020-04-22 · In nite World using Procedural Content Generation Procedural Content Generation](https://reader035.vdocument.in/reader035/viewer/2022081406/5f1035c57e708231d447fc25/html5/thumbnails/21.jpg)
Infinite World using Procedural Content Generation
Noise
Manipulating Noises
Example - Turbulence
Turbulence(0.25)
Turbulence(1)
![Page 22: Infinite World using Procedural Content Generation › Papers › Infinite Worlds using... · 2020-04-22 · In nite World using Procedural Content Generation Procedural Content Generation](https://reader035.vdocument.in/reader035/viewer/2022081406/5f1035c57e708231d447fc25/html5/thumbnails/22.jpg)
Infinite World using Procedural Content Generation
Noise
Manipulating Noises
Examples - Select
![Page 23: Infinite World using Procedural Content Generation › Papers › Infinite Worlds using... · 2020-04-22 · In nite World using Procedural Content Generation Procedural Content Generation](https://reader035.vdocument.in/reader035/viewer/2022081406/5f1035c57e708231d447fc25/html5/thumbnails/23.jpg)
Infinite World using Procedural Content Generation
The Product
1 Procedural Content GenerationProblem StatementWhat is it Procedural Content GenerationApplications
2 NoiseUsage of NoiseManipulating Noises
3 The ProductChunksBiomesDemonstration
4 Conclusion/Future WorksProject Period ReviewConclusionFuture Works
![Page 24: Infinite World using Procedural Content Generation › Papers › Infinite Worlds using... · 2020-04-22 · In nite World using Procedural Content Generation Procedural Content Generation](https://reader035.vdocument.in/reader035/viewer/2022081406/5f1035c57e708231d447fc25/html5/thumbnails/24.jpg)
Infinite World using Procedural Content Generation
The Product
Chunks
What is it?
A chunk is part of a larger area, terrain or object
Is used to create the illusion that a terrain is infinite
Is controlled by a chunk loader
Each chunk is generated as an individual level
![Page 25: Infinite World using Procedural Content Generation › Papers › Infinite Worlds using... · 2020-04-22 · In nite World using Procedural Content Generation Procedural Content Generation](https://reader035.vdocument.in/reader035/viewer/2022081406/5f1035c57e708231d447fc25/html5/thumbnails/25.jpg)
Infinite World using Procedural Content Generation
The Product
Chunks
What is it?
A chunk is part of a larger area, terrain or object
Is used to create the illusion that a terrain is infinite
Is controlled by a chunk loader
Each chunk is generated as an individual level
![Page 26: Infinite World using Procedural Content Generation › Papers › Infinite Worlds using... · 2020-04-22 · In nite World using Procedural Content Generation Procedural Content Generation](https://reader035.vdocument.in/reader035/viewer/2022081406/5f1035c57e708231d447fc25/html5/thumbnails/26.jpg)
Infinite World using Procedural Content Generation
The Product
Chunks
How it Works
The chunk loader works as a world manager and a garbagecollector
Every time the player moves towards the end of the world newchunks are generated and old ones removed
The current solution could be reworked (more about this in abit)
![Page 27: Infinite World using Procedural Content Generation › Papers › Infinite Worlds using... · 2020-04-22 · In nite World using Procedural Content Generation Procedural Content Generation](https://reader035.vdocument.in/reader035/viewer/2022081406/5f1035c57e708231d447fc25/html5/thumbnails/27.jpg)
Infinite World using Procedural Content Generation
The Product
Chunks
How it Works
The chunk loader works as a world manager and a garbagecollector
Every time the player moves towards the end of the world newchunks are generated and old ones removed
The current solution could be reworked (more about this in abit)
![Page 28: Infinite World using Procedural Content Generation › Papers › Infinite Worlds using... · 2020-04-22 · In nite World using Procedural Content Generation Procedural Content Generation](https://reader035.vdocument.in/reader035/viewer/2022081406/5f1035c57e708231d447fc25/html5/thumbnails/28.jpg)
Infinite World using Procedural Content Generation
The Product
Biomes
Biome Mapping
Biomes is often specified areas in the world
The biomes in the product is ecozones
Each biome is defined by temperature and humidity
Each biome can be unique and have its own foliage, event andheights
![Page 29: Infinite World using Procedural Content Generation › Papers › Infinite Worlds using... · 2020-04-22 · In nite World using Procedural Content Generation Procedural Content Generation](https://reader035.vdocument.in/reader035/viewer/2022081406/5f1035c57e708231d447fc25/html5/thumbnails/29.jpg)
Infinite World using Procedural Content Generation
The Product
Biomes
Biome Mapping
+ =
![Page 30: Infinite World using Procedural Content Generation › Papers › Infinite Worlds using... · 2020-04-22 · In nite World using Procedural Content Generation Procedural Content Generation](https://reader035.vdocument.in/reader035/viewer/2022081406/5f1035c57e708231d447fc25/html5/thumbnails/30.jpg)
Infinite World using Procedural Content Generation
The Product
Demonstration
Demonstration
![Page 31: Infinite World using Procedural Content Generation › Papers › Infinite Worlds using... · 2020-04-22 · In nite World using Procedural Content Generation Procedural Content Generation](https://reader035.vdocument.in/reader035/viewer/2022081406/5f1035c57e708231d447fc25/html5/thumbnails/31.jpg)
Infinite World using Procedural Content Generation
Conclusion/Future Works
1 Procedural Content GenerationProblem StatementWhat is it Procedural Content GenerationApplications
2 NoiseUsage of NoiseManipulating Noises
3 The ProductChunksBiomesDemonstration
4 Conclusion/Future WorksProject Period ReviewConclusionFuture Works
![Page 32: Infinite World using Procedural Content Generation › Papers › Infinite Worlds using... · 2020-04-22 · In nite World using Procedural Content Generation Procedural Content Generation](https://reader035.vdocument.in/reader035/viewer/2022081406/5f1035c57e708231d447fc25/html5/thumbnails/32.jpg)
Infinite World using Procedural Content Generation
Conclusion/Future Works
Project Period Review
Process
4 iterations with 3 weeks in each
Kanban flow to manage tasks and schedule
Helped to see where we were and if we were on time
Used practices from XP
Possibly nothing we would have changed
Huge learning outcome
![Page 33: Infinite World using Procedural Content Generation › Papers › Infinite Worlds using... · 2020-04-22 · In nite World using Procedural Content Generation Procedural Content Generation](https://reader035.vdocument.in/reader035/viewer/2022081406/5f1035c57e708231d447fc25/html5/thumbnails/33.jpg)
Infinite World using Procedural Content Generation
Conclusion/Future Works
Conclusion
The Result
An expandable world generator
Not very optimized
Optimization would require a larger rewrite
More content can create more unique worlds
![Page 34: Infinite World using Procedural Content Generation › Papers › Infinite Worlds using... · 2020-04-22 · In nite World using Procedural Content Generation Procedural Content Generation](https://reader035.vdocument.in/reader035/viewer/2022081406/5f1035c57e708231d447fc25/html5/thumbnails/34.jpg)
Infinite World using Procedural Content Generation
Conclusion/Future Works
Future Works
Future Works
Voxel Engine/Terrain
Multithreaded or asynchronized generation
Better biome generator (to avoid banding issues)
More content and user tasks
![Page 35: Infinite World using Procedural Content Generation › Papers › Infinite Worlds using... · 2020-04-22 · In nite World using Procedural Content Generation Procedural Content Generation](https://reader035.vdocument.in/reader035/viewer/2022081406/5f1035c57e708231d447fc25/html5/thumbnails/35.jpg)
Infinite World using Procedural Content Generation
Conclusion/Future Works
Thank You!
Thank You!
Questions?
![Page 36: Infinite World using Procedural Content Generation › Papers › Infinite Worlds using... · 2020-04-22 · In nite World using Procedural Content Generation Procedural Content Generation](https://reader035.vdocument.in/reader035/viewer/2022081406/5f1035c57e708231d447fc25/html5/thumbnails/36.jpg)
Infinite World using Procedural Content Generation
Conclusion/Future Works
Thank You!
Thank You!
Thank you for listening!
@Jacksendary