Customisation System for a Persistent Online Action Game Maurizio - - PowerPoint PPT Presentation

customisation system for a
SMART_READER_LITE
LIVE PREVIEW

Customisation System for a Persistent Online Action Game Maurizio - - PowerPoint PPT Presentation

APB: Creating a Powerful Customisation System for a Persistent Online Action Game Maurizio Sciglio Simon Taylor Outline Goals Initial Design Refinements Demo Scalability Conclusions GOALS What is APB? Persistent


slide-1
SLIDE 1
slide-2
SLIDE 2

APB: Creating a Powerful Customisation System for a Persistent Online Action Game

Maurizio Sciglio Simon Taylor

slide-3
SLIDE 3

Outline

 Goals  Initial Design  Refinements  Demo  Scalability  Conclusions

slide-4
SLIDE 4

GOALS

slide-5
SLIDE 5

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

slide-6
SLIDE 6

Decal Application – Forza

slide-7
SLIDE 7

Decal Application – Forza

slide-8
SLIDE 8

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

slide-9
SLIDE 9

Other Requirements

 Face & body customisation  Hair styles  Clothing application with large

variety of available styles

 Decal application

 Tattoos on skin  Print on clothes

slide-10
SLIDE 10

MMO Concerns

 Large player count  Limited bandwidth  No upfront “Lobby”

 Players enter and leave at any time

slide-11
SLIDE 11

INITIAL DESIGN

slide-12
SLIDE 12

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

slide-13
SLIDE 13

Morphing

 Fundamental mesh operation

 Standard additive morphing

 Used for Body & Facial

modification

 Sliders control individual target

weights

slide-14
SLIDE 14

Decals / Tattoos

slide-15
SLIDE 15

Skin Tone

slide-16
SLIDE 16

Skin Pigment

slide-17
SLIDE 17

Skin – Additional Features

slide-18
SLIDE 18

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

slide-19
SLIDE 19

Clothing – Morph Item

slide-20
SLIDE 20

Clothing – Extra Mesh Item

slide-21
SLIDE 21

Mesh Culling

slide-22
SLIDE 22

UV Layout

slide-23
SLIDE 23

UV Layout

slide-24
SLIDE 24

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 material

selection

Phong decomposition

slide-25
SLIDE 25

REFINEMENTS

slide-26
SLIDE 26

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

slide-27
SLIDE 27

Symbols

slide-28
SLIDE 28

Distance-Field Encoding

Regular Texture Distance-field encoded

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

slide-29
SLIDE 29

Height Scaling

 Customisable character height  Per-bone non-uniform scaling  Many issues

 Artist time  Animation issues  Collision implications  Fairness  Bugs!

slide-30
SLIDE 30

Height Scaling

slide-31
SLIDE 31

Projection Seams

slide-32
SLIDE 32

Projection Seams

slide-33
SLIDE 33

Hair-Clothing Interactions

slide-34
SLIDE 34

Original

slide-35
SLIDE 35

With Fitting Morphs

slide-36
SLIDE 36

Demo

slide-37
SLIDE 37

SCALABILITY

slide-38
SLIDE 38

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

slide-39
SLIDE 39

Background build

 Assets built during gameplay  Two options

 Threads  Time-slicing

 Problems with threads

 No multithreaded D3D access  Less control

 We chose time-slicing

slide-40
SLIDE 40

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

slide-41
SLIDE 41

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

slide-42
SLIDE 42

RESULTS & CONCLUSIONS

slide-43
SLIDE 43
slide-44
SLIDE 44
slide-45
SLIDE 45
slide-46
SLIDE 46
slide-47
SLIDE 47

Future Work

 Blend-weight morphing  Physics simulation on hair and

clothes

 Improved hair rendering  DXT Compression  Better descriptor compression  Persistent disk cache

slide-48
SLIDE 48

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

slide-49
SLIDE 49

Questions?

maurizio.sciglio@realtimeworlds.com simon.taylor@realtimeworlds.com www.realtimeworlds.com www.apb.com