APB Customisation System

49

Transcript of APB Customisation System

Page 1: APB Customisation System
Page 2: APB Customisation System

APB: Creating a Powerful

Customisation System for a

Persistent Online Action Game

Maurizio Sciglio

Simon Taylor

Page 3: APB Customisation System

Outline

Goals

Initial Design

Refinements

Demo

Scalability

Conclusions

Page 4: APB Customisation System

GOALS

Page 5: APB Customisation System

What is APB?

“Persistent Online Action Game”

Shared player-space

Fast-paced 3rd-person gameplay

RTW-run backend

Customisation a key selling point

PC initially

Unreal Engine 3

Page 6: APB Customisation System

Decal Application – Forza

Page 7: APB Customisation System

Decal Application – Forza

Page 8: APB Customisation System

Decal Application

Not just vehicles; characters too

Characters are harder:

More complex shape/UV mapping

Heterogeneous surface (clothing, hair, etc.)

Complex masking for clothing

Therefore, simple UV-space composition not possible

Page 9: APB Customisation System

Other Requirements

Face & body customisation

Hair styles

Clothing application with large variety of available styles

Decal application

Tattoos on skin

Print on clothes

Page 10: APB Customisation System

MMO Concerns

Large player count

Limited bandwidth

No upfront “Lobby”

Players enter and leave at any time

Page 11: APB Customisation System

INITIAL DESIGN

Page 12: APB Customisation System

Parametric Description

Final assets (meshes & textures) are big

E.g. 1 MB for a 1024x1024 DXT5 texture

Bandwidth is expensive

Can’t send final assets over the network

Therefore, describe assets parametrically

Build final assets on clients

Fundamental principle of the system

Page 13: APB Customisation System

Morphing

Fundamental mesh operation

Standard additive morphing

Used for Body & Facial modification

Sliders control individual target weights

Page 14: APB Customisation System

Decals / Tattoos

Page 15: APB Customisation System

Skin Tone

Page 16: APB Customisation System

Skin Pigment

Page 17: APB Customisation System

Skin – Additional Features

Page 18: APB Customisation System

Clothing Customisation

Rendering / memory cost independent from the number of items

One mesh to rule them all!

Clothing mesh must be merged with the base mesh

Texture must be combined with the base texture

Page 19: APB Customisation System

Clothing – Morph Item

Page 20: APB Customisation System

Clothing – Extra Mesh Item

Page 21: APB Customisation System

Mesh Culling

Page 22: APB Customisation System

UV Layout

Page 23: APB Customisation System

UV Layout

Page 24: APB Customisation System

Character Materials

Main goals:

Single draw call per character

Support multiple materials

BRDF decompositions stored in a 3D texture

N dot L

R dot V

Per-pixel materialselection

Phong decomposition

Page 25: APB Customisation System

REFINEMENTS

Page 26: APB Customisation System

Decal Projection Issues

Slow to construct

Large data size

Layer count had to be restricted

Artists didn’t like this

In most cases, not actually required

Solution: Symbols

Page 27: APB Customisation System

Symbols

Page 28: APB Customisation System

Distance-Field Encoding

Regular TextureDistance-field encoded

[http://www.valvesoftware.com/publications/2007/SIGGRAPH2007_AlphaTestedMagnification.pdf]

Page 29: APB Customisation System

Height Scaling

Customisable character height

Per-bone non-uniform scaling

Many issues

Artist time

Animation issues

Collision implications

Fairness

Bugs!

Page 30: APB Customisation System

Height Scaling

Page 31: APB Customisation System

Projection Seams

Page 32: APB Customisation System

Projection Seams

Page 33: APB Customisation System

Hair-Clothing Interactions

Page 34: APB Customisation System

Original

Page 35: APB Customisation System

With Fitting Morphs

Page 36: APB Customisation System

Demo

Page 37: APB Customisation System

SCALABILITY

Page 38: APB Customisation System

Bandwidth

…is expensive

Even parametric representation is big

Bandwidth is n2 in player count

Must minimise data size

Quantise parameters

zlib compress all data

Average ~4 kB per character

Limit complexity user can create

Page 39: APB Customisation System

Background build

Assets built during gameplay

Two options

Threads

Time-slicing

Problems with threads

No multithreaded D3D access

Less control

We chose time-slicing

Page 40: APB Customisation System

The Correct Choice?

Time-slicing brings its own issues

Developer time

Frame-rate spikes

No true parallelism

In hindsight, threads were maybe the better option

Page 41: APB Customisation System

Memory Management

Memory use for customised assets is huge

Too slow to build on-demand

Therefore, must write out assets to disk cache

Textures and meshes streamed from cache files

Total memory usage capped

Not persistent

Page 42: APB Customisation System

RESULTS & CONCLUSIONS

Page 43: APB Customisation System
Page 44: APB Customisation System
Page 45: APB Customisation System
Page 46: APB Customisation System
Page 47: APB Customisation System

Future Work

Blend-weight morphing

Physics simulation on hair and clothes

Improved hair rendering

DXT Compression

Better descriptor compression

Persistent disk cache

Page 48: APB Customisation System

Conclusions

Customisation needs time and resources

Roughly 50% of graphics team workload

Significant proportion of memory and CPU/GPU resources dedicated to it

Get art pipeline sorted first

Flexibility is key

For artists and players

Distance fields are fantastic

Page 49: APB Customisation System

Questions?

[email protected]

[email protected]

www.realtimeworlds.com

www.apb.com