apb: creating a powerful customisation system for a persistent online action game
DESCRIPTION
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 Online Action Game” Shared player-space - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: APB: Creating a Powerful Customisation System for a Persistent Online Action Game](https://reader036.vdocuments.us/reader036/viewer/2022081517/56815ede550346895dcd7ef4/html5/thumbnails/1.jpg)
![Page 2: APB: Creating a Powerful Customisation System for a Persistent Online Action Game](https://reader036.vdocuments.us/reader036/viewer/2022081517/56815ede550346895dcd7ef4/html5/thumbnails/2.jpg)
APB: Creating a Powerful Customisation System for a Persistent Online Action Game
Maurizio SciglioSimon Taylor
![Page 3: APB: Creating a Powerful Customisation System for a Persistent Online Action Game](https://reader036.vdocuments.us/reader036/viewer/2022081517/56815ede550346895dcd7ef4/html5/thumbnails/3.jpg)
![Page 4: APB: Creating a Powerful Customisation System for a Persistent Online Action Game](https://reader036.vdocuments.us/reader036/viewer/2022081517/56815ede550346895dcd7ef4/html5/thumbnails/4.jpg)
Outline Goals Initial Design Refinements Demo Scalability Conclusions
![Page 5: APB: Creating a Powerful Customisation System for a Persistent Online Action Game](https://reader036.vdocuments.us/reader036/viewer/2022081517/56815ede550346895dcd7ef4/html5/thumbnails/5.jpg)
GOALS
![Page 6: APB: Creating a Powerful Customisation System for a Persistent Online Action Game](https://reader036.vdocuments.us/reader036/viewer/2022081517/56815ede550346895dcd7ef4/html5/thumbnails/6.jpg)
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 7: APB: Creating a Powerful Customisation System for a Persistent Online Action Game](https://reader036.vdocuments.us/reader036/viewer/2022081517/56815ede550346895dcd7ef4/html5/thumbnails/7.jpg)
Decal Application – Forza
![Page 8: APB: Creating a Powerful Customisation System for a Persistent Online Action Game](https://reader036.vdocuments.us/reader036/viewer/2022081517/56815ede550346895dcd7ef4/html5/thumbnails/8.jpg)
Decal Application – Forza
![Page 9: APB: Creating a Powerful Customisation System for a Persistent Online Action Game](https://reader036.vdocuments.us/reader036/viewer/2022081517/56815ede550346895dcd7ef4/html5/thumbnails/9.jpg)
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 10: APB: Creating a Powerful Customisation System for a Persistent Online Action Game](https://reader036.vdocuments.us/reader036/viewer/2022081517/56815ede550346895dcd7ef4/html5/thumbnails/10.jpg)
Other Requirements Face & body customisation Hair styles Clothing application with large
variety of available styles Decal application
Tattoos on skin Print on clothes
![Page 11: APB: Creating a Powerful Customisation System for a Persistent Online Action Game](https://reader036.vdocuments.us/reader036/viewer/2022081517/56815ede550346895dcd7ef4/html5/thumbnails/11.jpg)
MMO Concerns Large player count Limited bandwidth No upfront “Lobby”
Players enter and leave at any time
![Page 12: APB: Creating a Powerful Customisation System for a Persistent Online Action Game](https://reader036.vdocuments.us/reader036/viewer/2022081517/56815ede550346895dcd7ef4/html5/thumbnails/12.jpg)
INITIAL DESIGN
![Page 13: APB: Creating a Powerful Customisation System for a Persistent Online Action Game](https://reader036.vdocuments.us/reader036/viewer/2022081517/56815ede550346895dcd7ef4/html5/thumbnails/13.jpg)
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 14: APB: Creating a Powerful Customisation System for a Persistent Online Action Game](https://reader036.vdocuments.us/reader036/viewer/2022081517/56815ede550346895dcd7ef4/html5/thumbnails/14.jpg)
Morphing Fundamental mesh operation
Standard additive morphing Used for Body & Facial modification Sliders control individual target
weights
![Page 15: APB: Creating a Powerful Customisation System for a Persistent Online Action Game](https://reader036.vdocuments.us/reader036/viewer/2022081517/56815ede550346895dcd7ef4/html5/thumbnails/15.jpg)
Decals / Tattoos
![Page 16: APB: Creating a Powerful Customisation System for a Persistent Online Action Game](https://reader036.vdocuments.us/reader036/viewer/2022081517/56815ede550346895dcd7ef4/html5/thumbnails/16.jpg)
Skin Tone
![Page 17: APB: Creating a Powerful Customisation System for a Persistent Online Action Game](https://reader036.vdocuments.us/reader036/viewer/2022081517/56815ede550346895dcd7ef4/html5/thumbnails/17.jpg)
Skin Pigment
![Page 18: APB: Creating a Powerful Customisation System for a Persistent Online Action Game](https://reader036.vdocuments.us/reader036/viewer/2022081517/56815ede550346895dcd7ef4/html5/thumbnails/18.jpg)
Skin – Additional Features
![Page 19: APB: Creating a Powerful Customisation System for a Persistent Online Action Game](https://reader036.vdocuments.us/reader036/viewer/2022081517/56815ede550346895dcd7ef4/html5/thumbnails/19.jpg)
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 20: APB: Creating a Powerful Customisation System for a Persistent Online Action Game](https://reader036.vdocuments.us/reader036/viewer/2022081517/56815ede550346895dcd7ef4/html5/thumbnails/20.jpg)
Clothing – Morph Item
![Page 21: APB: Creating a Powerful Customisation System for a Persistent Online Action Game](https://reader036.vdocuments.us/reader036/viewer/2022081517/56815ede550346895dcd7ef4/html5/thumbnails/21.jpg)
Clothing – Extra Mesh Item
![Page 22: APB: Creating a Powerful Customisation System for a Persistent Online Action Game](https://reader036.vdocuments.us/reader036/viewer/2022081517/56815ede550346895dcd7ef4/html5/thumbnails/22.jpg)
Mesh Culling
![Page 23: APB: Creating a Powerful Customisation System for a Persistent Online Action Game](https://reader036.vdocuments.us/reader036/viewer/2022081517/56815ede550346895dcd7ef4/html5/thumbnails/23.jpg)
UV Layout
![Page 24: APB: Creating a Powerful Customisation System for a Persistent Online Action Game](https://reader036.vdocuments.us/reader036/viewer/2022081517/56815ede550346895dcd7ef4/html5/thumbnails/24.jpg)
UV Layout
![Page 25: APB: Creating a Powerful Customisation System for a Persistent Online Action Game](https://reader036.vdocuments.us/reader036/viewer/2022081517/56815ede550346895dcd7ef4/html5/thumbnails/25.jpg)
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
![Page 26: APB: Creating a Powerful Customisation System for a Persistent Online Action Game](https://reader036.vdocuments.us/reader036/viewer/2022081517/56815ede550346895dcd7ef4/html5/thumbnails/26.jpg)
REFINEMENTS
![Page 27: APB: Creating a Powerful Customisation System for a Persistent Online Action Game](https://reader036.vdocuments.us/reader036/viewer/2022081517/56815ede550346895dcd7ef4/html5/thumbnails/27.jpg)
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 28: APB: Creating a Powerful Customisation System for a Persistent Online Action Game](https://reader036.vdocuments.us/reader036/viewer/2022081517/56815ede550346895dcd7ef4/html5/thumbnails/28.jpg)
Symbols
![Page 29: APB: Creating a Powerful Customisation System for a Persistent Online Action Game](https://reader036.vdocuments.us/reader036/viewer/2022081517/56815ede550346895dcd7ef4/html5/thumbnails/29.jpg)
Distance-Field Encoding
Regular TextureDistance-field encoded
[http://www.valvesoftware.com/publications/2007/SIGGRAPH2007_AlphaTestedMagnification.pdf]
![Page 30: APB: Creating a Powerful Customisation System for a Persistent Online Action Game](https://reader036.vdocuments.us/reader036/viewer/2022081517/56815ede550346895dcd7ef4/html5/thumbnails/30.jpg)
Height Scaling Customisable character height Per-bone non-uniform scaling Many issues
Artist time Animation issues Collision implications Fairness Bugs!
![Page 31: APB: Creating a Powerful Customisation System for a Persistent Online Action Game](https://reader036.vdocuments.us/reader036/viewer/2022081517/56815ede550346895dcd7ef4/html5/thumbnails/31.jpg)
Height Scaling
![Page 32: APB: Creating a Powerful Customisation System for a Persistent Online Action Game](https://reader036.vdocuments.us/reader036/viewer/2022081517/56815ede550346895dcd7ef4/html5/thumbnails/32.jpg)
Projection Seams
![Page 33: APB: Creating a Powerful Customisation System for a Persistent Online Action Game](https://reader036.vdocuments.us/reader036/viewer/2022081517/56815ede550346895dcd7ef4/html5/thumbnails/33.jpg)
Projection Seams
![Page 34: APB: Creating a Powerful Customisation System for a Persistent Online Action Game](https://reader036.vdocuments.us/reader036/viewer/2022081517/56815ede550346895dcd7ef4/html5/thumbnails/34.jpg)
Hair-Clothing Interactions
![Page 35: APB: Creating a Powerful Customisation System for a Persistent Online Action Game](https://reader036.vdocuments.us/reader036/viewer/2022081517/56815ede550346895dcd7ef4/html5/thumbnails/35.jpg)
Original
![Page 36: APB: Creating a Powerful Customisation System for a Persistent Online Action Game](https://reader036.vdocuments.us/reader036/viewer/2022081517/56815ede550346895dcd7ef4/html5/thumbnails/36.jpg)
With Fitting Morphs
![Page 37: APB: Creating a Powerful Customisation System for a Persistent Online Action Game](https://reader036.vdocuments.us/reader036/viewer/2022081517/56815ede550346895dcd7ef4/html5/thumbnails/37.jpg)
Demo
![Page 38: APB: Creating a Powerful Customisation System for a Persistent Online Action Game](https://reader036.vdocuments.us/reader036/viewer/2022081517/56815ede550346895dcd7ef4/html5/thumbnails/38.jpg)
SCALABILITY
![Page 39: APB: Creating a Powerful Customisation System for a Persistent Online Action Game](https://reader036.vdocuments.us/reader036/viewer/2022081517/56815ede550346895dcd7ef4/html5/thumbnails/39.jpg)
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 40: APB: Creating a Powerful Customisation System for a Persistent Online Action Game](https://reader036.vdocuments.us/reader036/viewer/2022081517/56815ede550346895dcd7ef4/html5/thumbnails/40.jpg)
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 41: APB: Creating a Powerful Customisation System for a Persistent Online Action Game](https://reader036.vdocuments.us/reader036/viewer/2022081517/56815ede550346895dcd7ef4/html5/thumbnails/41.jpg)
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 42: APB: Creating a Powerful Customisation System for a Persistent Online Action Game](https://reader036.vdocuments.us/reader036/viewer/2022081517/56815ede550346895dcd7ef4/html5/thumbnails/42.jpg)
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 43: APB: Creating a Powerful Customisation System for a Persistent Online Action Game](https://reader036.vdocuments.us/reader036/viewer/2022081517/56815ede550346895dcd7ef4/html5/thumbnails/43.jpg)
RESULTS & CONCLUSIONS
![Page 44: APB: Creating a Powerful Customisation System for a Persistent Online Action Game](https://reader036.vdocuments.us/reader036/viewer/2022081517/56815ede550346895dcd7ef4/html5/thumbnails/44.jpg)
![Page 45: APB: Creating a Powerful Customisation System for a Persistent Online Action Game](https://reader036.vdocuments.us/reader036/viewer/2022081517/56815ede550346895dcd7ef4/html5/thumbnails/45.jpg)
![Page 46: APB: Creating a Powerful Customisation System for a Persistent Online Action Game](https://reader036.vdocuments.us/reader036/viewer/2022081517/56815ede550346895dcd7ef4/html5/thumbnails/46.jpg)
![Page 47: APB: Creating a Powerful Customisation System for a Persistent Online Action Game](https://reader036.vdocuments.us/reader036/viewer/2022081517/56815ede550346895dcd7ef4/html5/thumbnails/47.jpg)
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: Creating a Powerful Customisation System for a Persistent Online Action Game](https://reader036.vdocuments.us/reader036/viewer/2022081517/56815ede550346895dcd7ef4/html5/thumbnails/48.jpg)
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: Creating a Powerful Customisation System for a Persistent Online Action Game](https://reader036.vdocuments.us/reader036/viewer/2022081517/56815ede550346895dcd7ef4/html5/thumbnails/49.jpg)
[email protected]@realtimeworlds.comwww.realtimeworlds.comwww.apb.com