infinite world using procedural content generation › papers › infinite worlds using... ·...

36
Infinite World using Procedural Content Generation Infinite World using Procedural Content Generation Jackie Engberg Christensen University College NordJylland [email protected] November 27, 2014

Upload: others

Post on 27-Jun-2020

10 views

Category:

Documents


0 download

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

Infinite World using Procedural Content Generation

Infinite World using Procedural ContentGeneration

Jackie Engberg Christensen

University College NordJylland

[email protected]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Infinite World using Procedural Content Generation

Conclusion/Future Works

Thank You!

Thank You!

Thank you for listening!

@Jacksendary