Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching...

105
Black Desert Online Taking MMO Development to the Next Level Dongwook Ha ([email protected] ) Gwanghyeon Go ([email protected] ) 2018-03-23

Transcript of Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching...

Page 1: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Black Desert OnlineTaking MMO Development to the Next Level

Dongwook Ha ([email protected])

Gwanghyeon Go ([email protected])

2018-03-23

Page 2: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Black Desert Online

Page 3: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Challenges

Massive data and contents

Many characters on screen

Player characteristics

Large and dynamically changing world

Page 4: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Massive data and contents

Page 5: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Web-based contents

● Independent development track○ Separated server and database

○ Distribute network traffic

● Update online○ No need to build game client

● Natural multi-platform contents

Page 6: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Web-based contents

● Independent development track○ Separated server and database

○ Distribute network traffic

● Update online○ No need to build game client

● Natural multi-platform contents

Page 7: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Web-based contents

● Independent development track○ Separated server and database

○ Distribute network traffic

● Update online○ No need to build game client

● Natural multi-platform contents

Page 8: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping
Page 9: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping
Page 10: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping
Page 11: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping
Page 12: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping
Page 13: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping
Page 14: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Efficiently authoring behavior trees

● Over 4,400 variations of Monsters and NPCs

● XML-based script approach○ Easy to handle many conditions, branches and events○ Easy to reuse and extend

● Provide easy ways to debug and navigate script code

● Used for action validation check from server-side○ To detect hack users

Page 15: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Efficiently authoring behavior trees

● Over 4,400 variations of Monsters and NPCs

● XML-based script approach○ Easy to handle many conditions, branches and events○ Easy to reuse and extend

● Provide easy ways to debug and navigate script code

● Used for action validation check from server-side○ To detect hack users

Page 16: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Efficiently authoring behavior trees

● Over 4,400 variations of Monsters and NPCs

● XML-based script approach○ Easy to handle many conditions, branches and events○ Easy to reuse and extend

● Provide easy ways to debug and navigate script code

● Used for action validation check from server-side○ To detect hack users

Page 17: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Efficiently authoring behavior trees

● Over 4,400 variations of Monsters and NPCs

● XML-based script approach○ Easy to handle many conditions, branches and events○ Easy to reuse and extend

● Provide easy ways to debug and navigate script code

● Used for action validation check from server-side○ To detect hack users

Page 18: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Easy resource creation

● Automatic key-framing cloth animation in the production stage

1. High resolution cloth simulation2. Compute skeletal animation approximating the simulation result

Page 19: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping
Page 20: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Easy resource creation

● Simple secondary motion by vertex painting

1. Virtual point mass is attached to each influencing bone of painted vertices

2. Point masses are physically simulated using mass spring model3. Compute two skinning matrices from animation bones and point

masses (GPU)4. Interpolate by weight from color channel to get final skinning matrix

(GPU)

Page 21: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping
Page 22: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping
Page 23: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Easy resource creation

● Simple secondary motion by vertex painting

1. Virtual point mass is attached to each influencing bone of painted vertices

2. Point masses are physically simulated using mass spring model3. Compute two skinning matrices from animation bones and point

masses (GPU)4. Interpolate by weight from color channel to get final skinning matrix

(GPU)

Page 24: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Easy resource creation

● Simple secondary motion by vertex painting

1. Virtual point mass is attached to each influencing bone of painted vertices

2. Point masses are physically simulated using mass spring model3. Compute two skinning matrices from animation bones and point

masses (GPU)4. Interpolate by weight from color channel to get final skinning matrix

(GPU)

Page 25: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Easy resource creation

● Simple secondary motion by vertex painting

1. Virtual point mass is attached to each influencing bone of painted vertices

2. Point masses are physically simulated using mass spring model3. Compute two skinning matrices from animation bones and point

masses (GPU)4. Interpolate by weight from color channel to get final skinning matrix

(GPU)

Page 26: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Easy resource creation

● Simple secondary motion by vertex painting

1. Virtual point mass is attached to each influencing bone of painted vertices

2. Point masses are physically simulated using mass spring model3. Compute two skinning matrices from animation bones and point

masses (GPU)4. Interpolate by weight from color channel to get final skinning matrix

(GPU)

Page 27: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping
Page 28: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Easy resource creation

● Simple secondary motion by vertex painting

➤ Pros:- Easy to use- Minimum simulation cost- Requires no additional bones- Skinned mesh dependent

Page 29: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

● Let’s run in-game simulation for cloth animation○ Responsive cloth

● Bone-based simulation for cloth-like animation○ Fast and stable○ Inspired by “Meshless Deformations Based on Shape Matching”,

M. Müller, B. Heidelberger, M. Teschner, M. Gross. Proceedings of SIGGRAPH'05, 2005

○ Bone cluster based deformation for higher order bending motion

Easy resource creation

Page 30: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

● Bone-based simulation for cloth-like animation1. Driving bones are divided into overlapping clusters

- Each cluster has 2~3 bones

2. Compute goal positions of bones in each cluster

- Simpler shape matching

- Use roughly guiding animation as shape matching target

3. Bones in the overlapping regions have multiple goal positions

- Averaged

4. Integration:

Easy resource creation

Page 31: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

● Bone-based simulation for cloth-like animation1. Driving bones are divided into overlapping clusters

- Each cluster has 2~3 bones

2. Compute goal positions of bones in each cluster

- Simpler shape matching

- Use roughly guiding animation as shape matching target

3. Bones in the overlapping regions have multiple goal positions

- Averaged

4. Integration:

Easy resource creation

Page 32: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

● Bone-based simulation for cloth-like animation1. Driving bones are divided into overlapping clusters

- Each cluster has 2~3 bones

2. Compute goal positions of bones in each cluster

- Simpler shape matching

- Use roughly guiding animation as shape matching target

3. Bones in the overlapping regions have multiple goal positions

- Averaged

4. Integration:

Easy resource creation

Page 33: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

● Bone-based simulation for cloth-like animation1. Driving bones are divided into overlapping clusters

- Each cluster has 2~3 bones

2. Compute goal positions of bones in each cluster

- Simpler shape matching

- Use roughly guiding animation as shape matching target

3. Bones in the overlapping regions have multiple goal positions

- Averaged

4. Integration:

Easy resource creation

Page 34: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping
Page 35: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping
Page 36: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Easy resource creation

● Bone-based simulation for cloth-like animation○ Collision with body

■ Each bone can have collision planes

➤ Pros:- Stable and fast (not a mass-spring model)- If necessary, animators can guide overall movement- Easy to implement

Page 37: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Many characters on screen

Page 38: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Animation system overview

● Non-uniform scaling● Multi-layered● Parametric blending● Additive blending● Inverse kinematics● Skinned-mesh morphing ● Simulation integrated

Page 39: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

● 16 playable classes (It’s growing!)○ has nearly 1,500 animation clips for each○ over 150MB for each

● Characters don’t share animation clips○ Accurate retargeting doesn’t come cheap

● Infeasible to load all animation clips for the visible characters

Dynamic animation loading

Page 40: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

● 16 playable classes (It’s growing!)○ has nearly 1,500 animation clips for each○ over 150MB for each

● Characters don’t share animation clips○ Accurate retargeting doesn’t come cheap

● Infeasible to load all animation clips for the visible characters

Dynamic animation loading

Page 41: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

● 16 playable classes (It’s growing!)○ has nearly 1,500 animation clips for each○ over 150MB for each

● Characters don’t share animation clips○ Accurate retargeting doesn’t come cheap

● Infeasible to load all animation clips for the visible characters

Dynamic animation loading

Page 42: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Dynamic animation loading

● Fully dynamic loading○ Loading when needed, unloading when it’s not○ Easy to see motion lag due to loading time

● Dynamic loading with preloaded animation packs○ Generated for each character in the production stage○ Contains first 1~2 key-frames of animation clips○ Play animation using the key-frames in the pack while loading the

entire clip in a thread

Page 43: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Dynamic animation loading

● Fully dynamic loading○ Loading when needed, unloading when it’s not○ Easy to see motion lag due to loading time

● Dynamic loading with preloaded animation packs○ Generated for each character in the production stage○ Contains first 1~2 key-frames of animation clips○ Play animation using the key-frames in the pack while loading the

entire clip in a thread

Page 44: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Mockup models for distant characters

● Problems ○ What if hundreds of players gather together

■ Many different costumes

○ If you are moving fast, many characters are transient■ Unnecessary data loading and unloading

● Let’s render mockup models first○ Simplified model or default costume of the class○ Defer loading character data○ Save I/O throughput and memory

Page 45: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Mockup models for distant characters

● Problems ○ What if hundreds of players gather together

■ Many different costumes

○ If you are moving fast, many characters are transient■ Unnecessary data loading and unloading

● Let’s render mockup models first○ Simplified model or default costume of the class○ Defer loading character data○ Save I/O throughput and memory

Page 46: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Limiting details by distance

● Limit features by distance○ Effect / Sound○ Morphing / Facial animation / IK / Physics simulation○ and so on

● Limit the number of feature instances

Page 47: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Black Desert Mobile

Page 48: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Player Characteristics

Page 49: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Player characteristics

Players want their characters to look different

Players want their characters to be of high quality, have details

Players want to interact with their characters and others

Page 50: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Player characteristics

Character rendering

• Fake subsurface scattering for performance reason• Fake eyeball specular that players can always see• Cornea occlusion• Classical Kajiya-Kay anisotropic hair rendering• Vertically unwrapped hair texture without using direction map• Hair depth fixup for post processing• Random texel micro adjustment for security reason• Great meshes and textures! (most important)

Page 51: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Player characteristics

Character rendering

• Fake subsurface scattering for performance reason• Fake eyeball specular that players can always see• Cornea occlusion• Classical Kajiya-Kay anisotropic hair rendering• Vertically unwrapped hair texture without using direction map• Hair depth fixup for post processing• Random texel micro adjustment for security reason• Great meshes and textures! (most important)

Page 52: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Player characteristics

Character rendering

• Fake subsurface scattering for performance reason• Fake eyeball specular that players can always see• Cornea occlusion• Classical Kajiya-Kay anisotropic hair rendering• Vertically unwrapped hair texture without using direction map• Hair depth fixup for post processing• Random texel micro adjustment for security reason• Great meshes and textures! (most important)

Page 53: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping
Page 54: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Player characteristics

Character rendering

• Fake subsurface scattering for performance reason• Fake eyeball specular that players can always see• Cornea occlusion• Classical Kajiya-Kay anisotropic hair rendering• Vertically unwrapped hair texture without using direction map• Hair depth fixup for post processing• Random texel micro adjustment for security reason• Great meshes and textures! (most important)

Page 55: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Player characteristics

Character rendering

• Fake subsurface scattering for performance reason• Fake eyeball specular that players can always see• Cornea occlusion• Classical Kajiya-Kay anisotropic hair rendering• Vertically unwrapped hair texture without using direction map• Hair depth fixup for post processing• Random texel micro adjustment for security reason• Great meshes and textures! (most important)

Page 56: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Player characteristics

Character customization

• Face and body deformation (adjust bone transform)• Vertex morphing for facial expression with index matching• Blending among several wrinkle maps will be applied• Areal mask for makeup (adjust color, intensity and reflection)• Multitexturing for tattoo• Skinned beard meshes• Curly hair (adjust uv only)• The more elements, the better it is

Page 57: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Player characteristics

Character customization

• Face and body deformation (adjust bone transform)• Vertex morphing for facial expression with index matching• Blending among several wrinkle maps will be applied• Areal mask for makeup (adjust color, intensity and reflection)• Multitexturing for tattoo• Skinned beard meshes• Curly hair (adjust uv only)• The more elements, the better it is

Page 58: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping
Page 59: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Player characteristics

Character customization

• Face and body deformation (adjust bone transform)• Vertex morphing for facial expression with index matching• Blending among several wrinkle maps will be applied• Areal mask for makeup (adjust color, intensity and reflection)• Multitexturing for tattoo• Skinned beard meshes• Curly hair (adjust uv only)• The more elements, the better it is

Page 60: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping
Page 61: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Player characteristics

Character customization

• Face and body deformation (adjust bone transform)• Vertex morphing for facial expression with index matching• Blending among several wrinkle maps will be applied• Areal mask for makeup (adjust color, intensity and reflection)• Multitexturing for tattoo• Skinned beard meshes• Curly hair (adjust uv only)• The more elements, the better it is

Page 62: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Player characteristics

Character customization

• Face and body deformation (adjust bone transform)• Vertex morphing for facial expression with index matching• Blending among several wrinkle maps will be applied• Areal mask for makeup (adjust color, intensity and reflection)• Multitexturing for tattoo• Skinned beard meshes• Curly hair (adjust uv only)• The more elements, the better it is

Page 63: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Player characteristics

Page 64: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Player characteristics

Character detail

• My character has much more detail• My character looks at me naturally (look IK)• Interact with other PCs and NPCs (collision reaction)• Sweats after doing hard work (sweat map)• Gets wet in the water

Page 65: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Player characteristics

Character detail

• My character has much more detail• My character looks at me naturally (look IK)• Interact with other PCs and NPCs (collision reaction)• Sweats after doing hard work (sweat map)• Gets wet in the water

Page 66: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Player characteristics

Page 67: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Player characteristics

Character detail

• My character has much more detail• My character looks at me naturally (look IK)• Interact with other PCs and NPCs (collision reaction)• Sweats after doing hard work (sweat map)• Gets wet in the water

Page 68: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Large and dynamically changing world

Page 69: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Large and dynamically changing world

We wanted a very long distance field

We wanted players to be able to move anywhere w/o loading

We wanted players to live in a continuously changing world

Page 70: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Large and dynamically changing world

Efficient and easy world building process for speed!

• Voxel based terrain to make cave-style spots easier and faster• Sketch Up is used for houses and castles including interiors• Massive alpha blended weathering decals built-in on meshes• Massive alpha blended screen space decals• Efficient prefab usage with easy construction tools• Fast resource and script change reflection

Page 71: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping
Page 72: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Large and dynamically changing world

Efficient and easy world building process for speed!

• Voxel based terrain to make cave-style spots easier and faster• Sketch Up is used for houses and castles including interiors• Massive alpha blended weathering decals built-in on meshes• Massive alpha blended screen space decals• Efficient prefab usage with easy construction tools• Fast resource and script change reflection

Page 73: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Large and dynamically changing world

Efficient and easy world building process for speed!

• Voxel based terrain to make cave-style spots easier and faster• Sketch Up is used for houses and castles including interiors• Massive alpha blended weathering decals built-in on meshes• Massive alpha blended screen space decals• Efficient prefab usage with easy construction tools• Fast resource and script change reflection

Page 74: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping
Page 75: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping
Page 76: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Large and dynamically changing world

Efficient and easy world building process for speed!

• Voxel based terrain to make cave-style spots easier and faster• Sketch Up is used for houses and castles including interiors• Massive alpha blended weathering decals built-in on meshes• Massive alpha blended screen space decals• Efficient prefab usage with easy construction tools• Fast resource and script change reflection

Page 77: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Large and dynamically changing world

Efficient and easy world building process for speed!

• Voxel based terrain to make cave-style spots easier and faster• Sketch Up is used for houses and castles including interiors• Massive alpha blended weathering decals built-in on meshes• Massive alpha blended screen space decals• Efficient prefab usage with easy construction tools• Fast resource and script change reflection

Page 78: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Large and dynamically changing world

Multithreaded world streaming was necessary

• World data is separated into many square sectors• Sectors are streamed by queueing always prior to characters• Fast moving solution 1 - Rough first then detailed• Fast moving solution 2 - Bound the player into certain range• Single material LOD for long distance scenery• Real time collision data construction (for size)• Texture streaming (low level mipmap and albedo tex first)• Balancing many threads (important for efficient CPU usage)

Page 79: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Large and dynamically changing world

Multithreaded world streaming was necessary

• World data is separated into many square sectors• Sectors are streamed by queueing always prior to characters• Fast moving solution 1 - Rough first then detailed• Fast moving solution 2 - Bound the player into certain range• Single material LOD for long distance scenery• Real time collision data construction (for size)• Texture streaming (low level mipmap and albedo tex first)• Balancing many threads (important for efficient CPU usage)

Page 80: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Large and dynamically changing world

Multithreaded world streaming was necessary

• World data is separated into many square sectors• Sectors are streamed by queueing always prior to characters• Fast moving solution 1 - Rough first then detailed• Fast moving solution 2 - Bound the player into certain range• Single material LOD for long distance scenery• Real time collision data construction (for size)• Texture streaming (low level mipmap and albedo tex first)• Balancing many threads (important for efficient CPU usage)

Page 81: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping
Page 82: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping
Page 83: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping
Page 84: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Large and dynamically changing world

Multithreaded world streaming was necessary

• World data is separated into many square sectors• Sectors are streamed by queueing always prior to characters• Fast moving solution 1 - Rough first then detailed• Fast moving solution 2 - Bound the player into certain range• Single material LOD for long distance scenery• Real time collision data construction (for size)• Texture streaming (low level mipmap and albedo tex first)• Balancing many threads (important for efficient CPU usage)

Page 85: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Large and dynamically changing world

Multithreaded world streaming was necessary

• World data is separated into many square sectors• Sectors are streamed by queueing always prior to characters• Fast moving solution 1 - Rough first then detailed• Fast moving solution 2 - Bound the player into certain range• Single material LOD for long distance scenery• Real time collision data construction (for size)• Texture streaming (low level mipmap and albedo tex first)• Balancing many threads (important for efficient CPU usage)

Page 86: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Large and dynamically changing world

Multithreaded world streaming was necessary

• World data is separated into many square sectors• Sectors are streamed by queueing always prior to characters• Fast moving solution 1 - Rough first then detailed• Fast moving solution 2 - Bound the player into certain range• Single material LOD for long distance scenery• Real time collision data construction (for size)• Texture streaming (low level mipmap and albedo tex first)• Balancing many threads (important for efficient CPU usage)

Page 87: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Large and dynamically changing world

Multithreaded character streaming

• Similar process with world streaming• Natural treatments until it is ready to be rendered• Single material LOD for not fully prepared characters• Texture streaming • Preload animation data (few frames)• Player characters first

Page 88: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Large and dynamically changing world

Multithreaded character streaming

• Similar process with world streaming• Natural treatments until it is ready to be rendered• Single material LOD for not fully prepared characters• Texture streaming • Preload animation data (few frames)• Player characters first

Page 89: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Large and dynamically changing world

Multithreaded character streaming

• Similar process with world streaming• Natural treatments until it is ready to be rendered• Single material LOD for not fully prepared characters• Texture streaming • Preload animation data (few frames)• Player characters first

Page 90: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Large and dynamically changing world

Dynamic weather

• Time of day with the simplified atmospheric scattering• Instanced particle clouds• Instanced particle rain and snow• Varying rain pools and snowdrift according to precipitation• Lightning and water flowing effect

Page 91: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Large and dynamically changing world

Dynamic weather

• Time of day with the simplified atmospheric scattering• Instanced particle clouds• Instanced particle rain and snow• Varying rain pools and snowdrift according to precipitation• Lightning and water flowing effect

Page 92: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping
Page 93: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Large and dynamically changing world

Dynamic weather

• Time of day with the simplified atmospheric scattering• Instanced particle clouds• Instanced particle rain and snow• Varying rain pools and snowdrift according to precipitation• Lightning and water flowing effect

Page 94: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Large and dynamically changing world

Dynamic weather

• Time of day with the simplified atmospheric scattering• Instanced particle clouds• Instanced particle rain and snow• Varying rain pools and snowdrift according to precipitation• Lightning and water flowing effect

Page 95: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping
Page 96: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping
Page 97: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Large and dynamically changing world

Dynamic scene reconstruction

• Duration based• Region based• Weather elements• Localized elements• Easily turn on/off with switches

Page 98: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Large and dynamically changing world

Path finding solution

• Our own voxel based navigation path finder• Raycast, areal occlusion test• Server side validation check for security reasons• This information was previously made public, check below

http://igc.inven.co.kr/detail.php?code=Y29kZTI3

Page 99: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Large and dynamically changing world

Path finding solution

• Our own voxel based navigation path finder• Raycast, areal occlusion test• Server side validation check for security reasons• This information was previously made public, check below

http://igc.inven.co.kr/detail.php?code=Y29kZTI3

Page 100: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Now we are remastering

• Improved high dynamic range rendering• Improved physically based rendering• Improved SSR, SSAO, post processing with YEBIS• Improved ocean rendering• Voxel cone tracing• Physically based atmospheric scattering with volume clouds• Lots of other quality and performance tuning…• Console platform (XB1)

Let’s talk about the above at GDC 2019

Page 101: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping
Page 102: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping
Page 103: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping
Page 104: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping
Page 105: Black Desert Online · 2. Compute goal positions of bones in each cluster - Simpler shape matching - Use roughly guiding animation as shape matching target 3. Bones in the overlapping

Thank you!

Special thanks

All Pearl Abyss members!