infinite world using procedural content generation › papers › infinite worlds using... ·...
TRANSCRIPT
Infinite World using Procedural Content Generation
Infinite World using Procedural ContentGeneration
Jackie Engberg Christensen
University College NordJylland
November 27, 2014
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
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
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)
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?
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.
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.
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.
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.
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.
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.
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.
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
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
Infinite World using Procedural Content Generation
Noise
Usage of Noise
Types of Noise
Perlin Noise
Infinite World using Procedural Content Generation
Noise
Usage of Noise
Types of Noise
Ridged Noise/Fractal Noise
Infinite World using Procedural Content Generation
Noise
Usage of Noise
Types of Noise
Billow Noise
Infinite World using Procedural Content Generation
Noise
Usage of Noise
Types of Noise
Voronoi Noise
Infinite World using Procedural Content Generation
Noise
Usage of Noise
Game related Usage
Height map
Special effects/post rendereffects
3D, texturing, image/videoediting
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...
Infinite World using Procedural Content Generation
Noise
Manipulating Noises
Example - Turbulence
Turbulence(0.25)
Turbulence(1)
Infinite World using Procedural Content Generation
Noise
Manipulating Noises
Examples - Select
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
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
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
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)
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)
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
Infinite World using Procedural Content Generation
The Product
Biomes
Biome Mapping
+ =
Infinite World using Procedural Content Generation
The Product
Demonstration
Demonstration
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
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
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
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
Infinite World using Procedural Content Generation
Conclusion/Future Works
Thank You!
Thank You!
Questions?
Infinite World using Procedural Content Generation
Conclusion/Future Works
Thank You!
Thank You!
Thank you for listening!
@Jacksendary