SlideShare a Scribd company logo
GameDevelopers
CONFERENCE
21st March 2019
@IntelSoftware @IntelGraphics 2
Introduction
• Leigh Davies Intel
• Leigh.Davies@Intel.com
• Senior Game / Graphics Application Engineer,
UK.
• James Vango-Brown IOI
• jamesv@ioi.dk
• Senior Gameplay / Physics Programmer,
Hitman Series
@IntelSoftware @IntelGraphics
Agenda
● Part 1: Introduction
● Part 2: Creating Realism
● Crowd System
● Rendering
● Audio
● Part 3: Why Destruction?
● Part 4: The Destruction Runtime
● Part 5: The Content Pipeline
● Part 7: Conclusion/Q&A
3
@IntelSoftware @IntelGraphics
Why are we here
4
@IntelSoftware @IntelGraphics
The World of Hitman
5
• Third-person stealth video game
• Unique varied levels, cities to jungles
• Why was HITMAN a good fit for CPU work?
• HITMAN was already well threaded
• Newer processors provided more cores
@IntelSoftware @IntelGraphics
Game design objectives:
● Create larger living levels
○ Picture in Picture
○ More complex environments
○ Larger draw distances
● Make the crowd an integral
part of the experience
● More opportunity to
interact with the world:-
“Make the world your
weapon”
”It’s not an eSport. It’s a sandbox. You’re
supposed to have fun with it.”:
Christian Elverdam
Scale on
CPU
Rendering
AI/
Animation
Physics
6
@IntelSoftware @IntelGraphics
Realism is more than just Pixel Quality
Masahiro Mori
Uncanny Valley
The common unsettling feeling people
experience when androids closely resemble
humans but are not quite convincingly realistic
7
@IntelSoftware @IntelGraphics
Detection based on simple detection of
physical cores
• Base: Default 4 Core System
• Better: Default 6 Core System
• Best: Default 8+ Core System
Realism is more than just Pixel Quality
Audio
Rendering
In gaming the Uncanny Valley includes the whole world:
The better it looks, the more important your interaction with it
8
@IntelSoftware @IntelGraphics
Miami
Default Simulation Settings
9
Best Simulation Settings
@IntelSoftware @IntelGraphics
How individual systems were scaled
10
@IntelSoftware @IntelGraphics
Evolving role of the Crowd in Hitman
Hitman: Absolution
● 1200 Characters per zone:
○ 500 max onscreen
● AI limited to per Zone
HITMAN Season 2
● 1700 (Default) Characters per level:
○ 700 Max onscreen
● Hitman can hide in the crowd
● AI simulation even when off screen
https://www.gdcvault.com/play/1015315/Crowds-in-Hitman
11
@IntelSoftware @IntelGraphics
Crowd is CPU intensive
● Heavily parallelized
● Mix of systems executed in job system;
○ AI Simulation: Done every frame
○ Animation: Asynchronous:
■ Time sliced over multiple frames
4 Core Micro Profiler capture
AI Simulation Animation
12
@IntelSoftware @IntelGraphics
Crowd Scaling
• Characters animating further into the
scene
• Higher quality animations
• Reduction in time slicing
8 Core Micro Profiler capture
13
@IntelSoftware @IntelGraphics
Crowd vs NPC
● Possession system, On-demand
upgrade crowd agent to full NPC AI
NPC Pool Size
Default build Pool Size
Default build 30
6 cores 60
8 cores 90
● Allocates small pool of invisible NPCs
● Supports advanced gameplay mechanics
○ Interaction with Agent 47
○ Allows for scripted crowd acts
■ Talk on phone, smoke, sit on bench
■ Couples holding hands
■ Wave flags
● Spawns randomly near player
● Larger pool == more unique animations
14
@IntelSoftware @IntelGraphics
Base
Default build 6 cores 8 cores
Total amount of Crowd:
1797
Max visible Crowd 700
Level Of Detail 1
Distance: 7.0
Count: 25
Level Of Detail 2
Distance: 15.0
Count: 75
Level Of Detail 3
Distance: 22.0
Count: 300
• Per level crowd limits affect level design in
none game play areas.
Crowds: Improving Realism
15
@IntelSoftware @IntelGraphics
Base
Better/Best
Default build 6 cores 8 cores
Total amount of Crowd:
1797 2923 2923
Max visible Crowd 700 1000 1400
Level Of Detail 1
Distance: 7.0
Count: 25
Distance: 10.0
Count: 50
Distance: 15.0
Count: 100
Level Of Detail 2
Distance: 15.0
Count: 75
Distance: 20.0
Count: 120
Distance: 25.0
Count: 200
Level Of Detail 3
Distance: 22.0
Count: 300
Distance: 25.0
Count: 400
Distance: 30.0
Count: 500
• Per level crowd limits affect level design in
none game play areas.
Crowds: Improving Realism
• Higher limits allow crowd usage in other
none game play areas.
• Crowds still interact with the events
16
@IntelSoftware @IntelGraphics
Rendering Multi-threading
General DX11 Threading
• Scene traversal multi-threaded.
• Software visibility culling runs
across up to 5 threads.
• Highest CPU load on Render
submission thread.
DX12 Improvements
• Commandlist Generation split
across worker threads shown as
“DRAW”
• 30+ “DRAW”’s Per frame,
submission on Render Thread
17
@IntelSoftware @IntelGraphics 18
Software Occlusion
• Used as simplified Depth pre-pass
• 5% of total draw calls in the scene
• 15K out of 3,000K+ vertices
• Based on Intel Software Occlusion
Culling (https://github.com/GameTechDev/OcclusionCulling)
• Optimisations taken from MSOC
https://github.com/GameTechDev/MaskedOcclusionCulling
• Used for Main scene and shadow
cascades.
@IntelSoftware @IntelGraphics 19
Occlusion Performance
Mumbai
No Depth
Culling
Culling
Occluders 210
Tests 21642
Draws/Instances 5540/12840 4870/8900
Occlusion cost
CPU Time@3Ghz
0ms 0.815ms
VS Invocations 4.54M 3.44M
PS Invocations 20.6M 19.2M
MS/Frame 11.9 10.7
*Core i7-6900X, 32GB Ram, NVIDIA GTX 1080
@IntelSoftware @IntelGraphics
Audio: Simulation Quality
• Wwise multi-core audio enables audio
tasks to execute as part of the job system.
• BASE:
• Reverb is based the listener position.
• Crossfade with reverb from adjoining
room when approaching doors,
windows etc..
• BETTER and BEST
• Each playing audio emitter uses
reverb of the room that it is located in.
• Increase active reverb busses.
• For BEST
• Use higher-quality reverb presets:
20
@IntelSoftware @IntelGraphics
What is it and why do we need it?
21
@IntelSoftware @IntelGraphics
First… A Demo!
22
@IntelSoftware @IntelGraphics
Why destroy things?
23
§ So much fun!
§ Environment interaction improves player
immersion
§ More interesting opportunities for
‘accidents’
§ More iconic destructive moments
@IntelSoftware @IntelGraphics
What we need
24
§ Very specific destruction patterns
§ Animated destructible objects
§ Scalable destruction
§ Support existing assets
@IntelSoftware @IntelGraphics 25
Dynamic
§ Simple cases are scalable (glass etc.)
§ Need lots of tooling for complex cases
§ Harder to scale at runtime
§ Lots of edge cases to deal with when
dynamically slicing assets
Pre-Defined
§ Not quite as realistic
§ Easier to scale at runtime
§ No need to worry about complex edge
cases when slicing assets
§ Content creators have full power over
how objects break
Dynamic vs Pre-Defined
@IntelSoftware @IntelGraphics
The destruction runtime
26
@IntelSoftware @IntelGraphics
Types of destruction
27
§ Gameplay Effecting
– Affects gameplay in a big way
– Usually affects AI
– May need to persist in the world between
saves
§ Cosmetic
– Doesn’t effect gameplay in a big way
– Has no major affect on AI
– Does not usually need to be saved
@IntelSoftware @IntelGraphics
Some Definitions
28
§ Destruction System
– Manages destruction of a single asset
§ Destructible Object
– A simulated physics object owned by a
destruction system
§ Destructible Piece
– A single piece of a destructible object
– Objects can be made of more than one
piece
@IntelSoftware @IntelGraphics
Destruction Phases
29
Fracture Replace
pieces
Detach Detach
pieces
Destroy Remove
pieces
@IntelSoftware @IntelGraphics
Destruction Runtime
30
§ Two classes of system
– Instanced sub systems
– Global systems
§ Runs alongside our physics engine as a
‘plugin’
§ Highly configurable
@IntelSoftware @IntelGraphics 31
Instance Specific Systems
Configuration Layer
Visual
Renderer Animator
Effect
Handler
Simulation
Activator
Interaction
Handler
Interaction
Processor
Data
Registry
Runtime
State
@IntelSoftware @IntelGraphics 32
Global Systems
Insertion
Queue
Reusable
Memory
Buffer
Manager
System
Caretaker
Effects
Manager
Destruction
instances
@IntelSoftware @IntelGraphics
Storing the Data
33
Instance Runtime
@IntelSoftware @IntelGraphics
Storing the Data
34
The Registry
§ Stores references to all active physics
objects for this destruction system
§ Maintains a link between the physics
object and its configuration data
– Piece Connections
– Materials
– Strength
@IntelSoftware @IntelGraphics
Storing the Data
35
The Runtime State
§ Stores all changes to the static
configuration data
§ This includes
– Damage applied to each piece
– Active connections for each piece
§ High level system state change flags
– Has been fractured, detached or destroyed
– Contains anchors etc.
@IntelSoftware @IntelGraphics
Controlling Simulation
36
Instance Runtime
@IntelSoftware @IntelGraphics
The Activator
37
§ Controls when a system should be
marked as ‘active’ or ‘inactive’
§ Causes the animator to run and
synchronise positions
§ Means that interactions will be
processed
§ Allows gameplay systems to hook into
when a destructible system is being
interacted with
§ Provides feedback to the debug systems
for displaying stats
@IntelSoftware @IntelGraphics
The Interaction Handler
38
§ Hooks into external game systems to
listen for destructible events
– Shots
– Explosions
– Collisions
– Out of world
§ Unifies external events into a common
destruction force structure
§ Passes destruction forces to the
interaction processor
@IntelSoftware @IntelGraphics
The Interaction
Processor
39
§ Stores a queue of pending interactions
and processes them each frame
§ Propagates damage through the system
for each interaction using a damage
propagator
§ Applies world state changes based on
the propagation results (fracturing,
detaching and destroying)
§ Passes all system results out for a frame
to the effect processor
@IntelSoftware @IntelGraphics 40
The Damage Propagator
Initial filtering
applied
Immediately
affected pieces
are gathered
Piece specific
filtering applied
Piece state
modified and
result stored
Force reduced
based on piece
material
Connected pieces
iterated
recursively till the
force is reduced
Island detection is
performed
Final results are
returned
@IntelSoftware @IntelGraphics
Island Detection
41
§ When connecting pieces are detached,
other pieces need to fall
§ Island detection is run when a piece or
set of pieces is detached from a system
§ Any ‘islands’ are then detached from the
system
@IntelSoftware @IntelGraphics
Island Detection
42
§ Get island candidates
§ For each island candidate
– Assign a group id to the candidate and
mark as visited
– Assign the same group id to each unvisited
connection and mark as visited
– Do the same for each connection
§ Find all unique group ids and detach
each of the smallest groups
@IntelSoftware @IntelGraphics
Modifying The World
43
Global Systems
@IntelSoftware @IntelGraphics
The Insertion Queue
44
§ Controls asynchronous creation and
insertion of physics objects in to the
scene
§ Allows throttling and discarding of
requests under heavy loads
§ Provides callbacks to the destruction
system instances when their requests
have been dealt with
@IntelSoftware @IntelGraphics
The Effects Manager
45
§ Responds to requests for showing an
effect from a system effect handler
§ Responds to four different events
– Collided
– Fractured
– Detached
– Destroyed
§ Pools effect resource instances to allow
them to be reused
§ Controls the synchronisation of active
effect positions
@IntelSoftware @IntelGraphics
Managing Resources
46
Global Systems
@IntelSoftware @IntelGraphics
The Reusable Memory
Buffer Manager
47
§ Provides thread safe access to reusable
memory buffers
§ Massively reduces the overhead of
runtime memory allocations during
destruction processing
@IntelSoftware @IntelGraphics
The System Caretaker
48
§ Periodically performs the following tasks
– Removes objects from the scene that meet
the required criteria
– Deallocates runtime memory that objects
no longer need
– Reduces particle effect pools based on a
heuristic that estimates current particle
effect requirements in the level
@IntelSoftware @IntelGraphics
How to make something destructible?
49
@IntelSoftware @IntelGraphics
Content Authoring
50
§ Content is created in 3DS Max
§ Voronoi partitions are used to split
assets
§ Physics shapes are automatically
generated from the geometry
§ The object hierarchy is used to define
the fracture levels
@IntelSoftware @IntelGraphics
Destruction materials
51
§ A material controls the response to
destructible forces
§ Response is configured in two parts
– Strength
– How resistant to damage is an object
– Shock absorption
– How much force is absorbed by an object
§ Different pieces can have different
materials
@IntelSoftware @IntelGraphics
Connections
52
§ Connections are used to connect two or
more pieces together
§ Connections are automatically generated
between touching geometry
§ Attributes can be used to disable
connection generation
@IntelSoftware @IntelGraphics
Anchor Pieces
53
§ Pieces connected directly or indirectly
will match the transform of the main
system when it is animated
§ Used to control kinematic objects and
objects with constraints
@IntelSoftware @IntelGraphics
Piece Attributes
54
Attributes that control behaviour
§ Remain : Pieces with this attribute will
not be removed from the world or
destroyed
§ Orphaned : Pieces with this attribute will
never allow connections to be generated
to other pieces
@IntelSoftware @IntelGraphics 55
The Destruction Content Pipeline
Pre-fracturing
and mesh
markup done
in 3D content
authoring tool
An asset is
exported
containing
mesh and bind
pose
information
Destruction
information is
‘packed’ into
an asset by
resource
server
Asset is
dropped into
the world as a
destructible
object
@IntelSoftware @IntelGraphics
● Realism is about more than pixel quality
● Scale simulation quality as CPU power increases
● Consider gameplay implications
● Expand Sandbox without effecting core gameplay mechanics
● Add more diversity to scene through physics and animation LOD’s
● Environment interaction improves player immersion
○ More interesting opportunities for ‘accidents’
○ Consider gameplay implications again J
● Utilize DX12 and advanced culling system to support ever expanding content sets
● Audio adds to immersion, look at multi-threaded solutions
Conclusion
56
@IntelSoftware @IntelGraphics
Legal Notices and Disclaimers
No license (express or implied, by estoppel or otherwise) to any intellectual property rights is granted by this document.
Intel disclaims all express and implied warranties, including without limitation, the implied warranties of merchantability, fitness for a particular purpose, and non-infringement, as well
as any warranty arising from course of performance, course of dealing, or usage in trade.
You may not use or facilitate the use of this document in connection with any infringement or other legal analysis concerning Intel products described herein. You agree to grant Intel a
non-exclusive, royalty-free license to any patent claim thereafter drafted which includes subject matter disclosed herein.
The products and services described may contain defects or errors known as errata which may cause deviations from published specifications. Current characterized errata are
available on request.
Intel technologies’ features and benefits depend on system configuration and may require enabled hardware, software or service activation. Performance varies depending on system
configuration. No computer system can be absolutely secure. Check with your system manufacturer or retailer or learn more at [intel.com].
Software and workloads used in performance tests may have been optimized for performance only on Intel microprocessors. Performance tests, such as SYSmark and MobileMark, are
measured using specific computer systems, components, software, operations and functions. Any change to any of those factors may cause the results to vary. You should consult
other information and performance tests to assist you in fully evaluating your contemplated purchases, including the performance of that product when combined with other
products. For more complete information visit www.intel.com/benchmarks.
Optimization Notice: Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These
optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on
microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not
specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific
instruction sets covered by this notice.
Results have been estimated or simulated using internal Intel analysis or architecture simulation or modeling, and provided to you for informational purposes. Any differences in your
system hardware, software or configuration may affect your actual performance.
Intel, Core and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries.
*Other names and brands may be claimed as the property of others
© Intel Corporation.
57
Questions?
Create a Scalable and Destructible World in HITMAN 2*

More Related Content

PDF
The Architecture of 11th Generation Intel® Processor Graphics
Intel® Software
 
PDF
Accelerate Large-Scale Inverse Kinematics with the Intel® Distribution of Ope...
Intel® Software
 
PDF
Streamed Cloud Gaming Solutions for Android* and PC Games
Intel® Software
 
PDF
It Doesn't Have to Be Hard: How to Fix Your Performance Woes
Intel® Software
 
PPTX
Forts and Fights Scaling Performance on Unreal Engine*
Intel® Software
 
PPTX
World of Tanks* 1.0+: Enriching Gamers Experience with Multicore Optimized Ph...
Intel® Software
 
PDF
Scalability for All: Unreal Engine* 4 with Intel
Intel® Software
 
PDF
RenderMan*: The Role of Open Shading Language (OSL) with Intel® Advanced Vect...
Intel® Software
 
The Architecture of 11th Generation Intel® Processor Graphics
Intel® Software
 
Accelerate Large-Scale Inverse Kinematics with the Intel® Distribution of Ope...
Intel® Software
 
Streamed Cloud Gaming Solutions for Android* and PC Games
Intel® Software
 
It Doesn't Have to Be Hard: How to Fix Your Performance Woes
Intel® Software
 
Forts and Fights Scaling Performance on Unreal Engine*
Intel® Software
 
World of Tanks* 1.0+: Enriching Gamers Experience with Multicore Optimized Ph...
Intel® Software
 
Scalability for All: Unreal Engine* 4 with Intel
Intel® Software
 
RenderMan*: The Role of Open Shading Language (OSL) with Intel® Advanced Vect...
Intel® Software
 

What's hot (20)

PDF
Simple Single Instruction Multiple Data (SIMD) with the Intel® Implicit SPMD ...
Intel® Software
 
PPTX
Masked Occlusion Culling
Intel® Software
 
PPTX
Scale CPU Experiences: Maximize Unity* Performance Using the Entity Component...
Intel® Software
 
PDF
Bring Intelligent Motion Using Reinforcement Learning Engines | SIGGRAPH 2019...
Intel® Software
 
PPTX
Getting Space Pirate Trainer* to Perform on Intel® Graphics
Intel® Software
 
PPTX
Accelerate Game Development and Enhance Game Experience with Intel® Optane™ T...
Intel® Software
 
PDF
Enhance and Accelerate Your AI and Machine Learning Solution | SIGGRAPH 2019 ...
Intel® Software
 
PDF
Intel® Open Image Denoise: Optimized CPU Denoising | SIGGRAPH 2019 Technical ...
Intel® Software
 
PDF
Advanced Single Instruction Multiple Data (SIMD) Programming with Intel® Impl...
Intel® Software
 
PDF
Use Variable Rate Shading (VRS) to Improve the User Experience in Real-Time G...
Intel® Software
 
PPTX
Parallelizing Conqueror's Blade
Intel® Software
 
PDF
Ray Tracing with Intel® Embree and Intel® OSPRay: Use Cases and Updates | SIG...
Intel® Software
 
PPTX
Tuning For Deep Learning Inference with Intel® Processor Graphics | SIGGRAPH ...
Intel® Software
 
PDF
Build a Deep Learning Video Analytics Framework | SIGGRAPH 2019 Technical Ses...
Intel® Software
 
PDF
Ultra HD Video Scaling: Low-Power HW FF vs. CNN-based Super-Resolution
Intel® Software
 
PDF
clCaffe*: Unleashing the Power of Intel Graphics for Deep Learning Acceleration
Intel® Software
 
PDF
Open Source Interactive CPU Preview Rendering with Pixar's Universal Scene De...
Intel® Software
 
PPTX
Optimizing Total War*: WARHAMMER II
Intel® Software
 
PPTX
Reducing Deep Learning Integration Costs and Maximizing Compute Efficiency| S...
Intel® Software
 
PPTX
Unleashing Intel® Advanced Vector Extensions 512 (Intel® AVX-512) Inside the ...
Intel® Software
 
Simple Single Instruction Multiple Data (SIMD) with the Intel® Implicit SPMD ...
Intel® Software
 
Masked Occlusion Culling
Intel® Software
 
Scale CPU Experiences: Maximize Unity* Performance Using the Entity Component...
Intel® Software
 
Bring Intelligent Motion Using Reinforcement Learning Engines | SIGGRAPH 2019...
Intel® Software
 
Getting Space Pirate Trainer* to Perform on Intel® Graphics
Intel® Software
 
Accelerate Game Development and Enhance Game Experience with Intel® Optane™ T...
Intel® Software
 
Enhance and Accelerate Your AI and Machine Learning Solution | SIGGRAPH 2019 ...
Intel® Software
 
Intel® Open Image Denoise: Optimized CPU Denoising | SIGGRAPH 2019 Technical ...
Intel® Software
 
Advanced Single Instruction Multiple Data (SIMD) Programming with Intel® Impl...
Intel® Software
 
Use Variable Rate Shading (VRS) to Improve the User Experience in Real-Time G...
Intel® Software
 
Parallelizing Conqueror's Blade
Intel® Software
 
Ray Tracing with Intel® Embree and Intel® OSPRay: Use Cases and Updates | SIG...
Intel® Software
 
Tuning For Deep Learning Inference with Intel® Processor Graphics | SIGGRAPH ...
Intel® Software
 
Build a Deep Learning Video Analytics Framework | SIGGRAPH 2019 Technical Ses...
Intel® Software
 
Ultra HD Video Scaling: Low-Power HW FF vs. CNN-based Super-Resolution
Intel® Software
 
clCaffe*: Unleashing the Power of Intel Graphics for Deep Learning Acceleration
Intel® Software
 
Open Source Interactive CPU Preview Rendering with Pixar's Universal Scene De...
Intel® Software
 
Optimizing Total War*: WARHAMMER II
Intel® Software
 
Reducing Deep Learning Integration Costs and Maximizing Compute Efficiency| S...
Intel® Software
 
Unleashing Intel® Advanced Vector Extensions 512 (Intel® AVX-512) Inside the ...
Intel® Software
 
Ad

Similar to Create a Scalable and Destructible World in HITMAN 2* (20)

PPTX
Improve the performance of your Unity project using Graphics Performance Anal...
Unity Technologies
 
PDF
JS Fest 2019. Денис Радин. AAA 3D графика в Web с ReactJS, BabylonJS и Unity3D
JSFestUA
 
PPTX
AAA 3D GRAPHICS ON THE WEB WITH REACTJS + BABYLONJS + UNITY3D by Denis Radin ...
DevClub_lv
 
PDF
Unreal Ahmedabad Meetup Hosted by 300Minds.pdf
Samir Patel
 
PPTX
PRESENTATION ON Game Engine
Diksha Bhargava
 
PDF
Game Models - A Different Approach
Nick Pruehs
 
PDF
Developing applications and games in Unity engine - Matej Jariabka, Rudolf Ka...
gamifi.cc
 
PDF
De Re PlayStation Vita
Slide_N
 
PDF
Mobile games, from idea to product
Àlex Cabrera Gil
 
PDF
Lecture 1 Introduction to VR Programming
Kobkrit Viriyayudhakorn
 
PPTX
Initial design (Game Architecture)
Rajkumar Pawar
 
PPT
Harlan Beverly Lag The Barrier to innovation gdc austin 2009
Harlan Beverly
 
PDF
Scalability & Big Data challenges in real time multiplayer games
Yan Cui
 
PPTX
Game engines and Their Influence in Game Design
Prashant Warrier
 
PPTX
Supersize your production pipe enjmin 2013 v1.1 hd
slantsixgames
 
PDF
Large-scale Media Processing on Cloud - Cloud Asia 2016 PANEL DISCUSSION
Anand Bhojan
 
PPTX
Game Engine for Serious Games
Kashif Shamaun
 
PPTX
Mastering Multiplayer Stage3d and AIR game development for mobile devices
Jean-Philippe Doiron
 
DOCX
Engine terminology
adampatrickhughes
 
DOCX
Y1 gd engine_terminology
Jordanianmc
 
Improve the performance of your Unity project using Graphics Performance Anal...
Unity Technologies
 
JS Fest 2019. Денис Радин. AAA 3D графика в Web с ReactJS, BabylonJS и Unity3D
JSFestUA
 
AAA 3D GRAPHICS ON THE WEB WITH REACTJS + BABYLONJS + UNITY3D by Denis Radin ...
DevClub_lv
 
Unreal Ahmedabad Meetup Hosted by 300Minds.pdf
Samir Patel
 
PRESENTATION ON Game Engine
Diksha Bhargava
 
Game Models - A Different Approach
Nick Pruehs
 
Developing applications and games in Unity engine - Matej Jariabka, Rudolf Ka...
gamifi.cc
 
De Re PlayStation Vita
Slide_N
 
Mobile games, from idea to product
Àlex Cabrera Gil
 
Lecture 1 Introduction to VR Programming
Kobkrit Viriyayudhakorn
 
Initial design (Game Architecture)
Rajkumar Pawar
 
Harlan Beverly Lag The Barrier to innovation gdc austin 2009
Harlan Beverly
 
Scalability & Big Data challenges in real time multiplayer games
Yan Cui
 
Game engines and Their Influence in Game Design
Prashant Warrier
 
Supersize your production pipe enjmin 2013 v1.1 hd
slantsixgames
 
Large-scale Media Processing on Cloud - Cloud Asia 2016 PANEL DISCUSSION
Anand Bhojan
 
Game Engine for Serious Games
Kashif Shamaun
 
Mastering Multiplayer Stage3d and AIR game development for mobile devices
Jean-Philippe Doiron
 
Engine terminology
adampatrickhughes
 
Y1 gd engine_terminology
Jordanianmc
 
Ad

More from Intel® Software (20)

PPTX
AI for All: Biology is eating the world & AI is eating Biology
Intel® Software
 
PPTX
Python Data Science and Machine Learning at Scale with Intel and Anaconda
Intel® Software
 
PDF
Streamline End-to-End AI Pipelines with Intel, Databricks, and OmniSci
Intel® Software
 
PDF
AI for good: Scaling AI in science, healthcare, and more.
Intel® Software
 
PDF
Software AI Accelerators: The Next Frontier | Software for AI Optimization Su...
Intel® Software
 
PPTX
Advanced Techniques to Accelerate Model Tuning | Software for AI Optimization...
Intel® Software
 
PPTX
AWS & Intel Webinar Series - Accelerating AI Research
Intel® Software
 
PPTX
Intel Developer Program
Intel® Software
 
PDF
Intel AIDC Houston Summit - Overview Slides
Intel® Software
 
PDF
AIDC NY: BODO AI Presentation - 09.19.2019
Intel® Software
 
PDF
AIDC NY: Applications of Intel AI by QuEST Global - 09.19.2019
Intel® Software
 
PDF
AIDC India - AI on IA
Intel® Software
 
PDF
AIDC India - Intel Movidius / Open Vino Slides
Intel® Software
 
PDF
AIDC India - AI Vision Slides
Intel® Software
 
PDF
ANYFACE*: Create Film Industry-Quality Facial Rendering & Animation Using Mai...
Intel® Software
 
PDF
Bring the Future of Entertainment to Your Living Room: MPEG-I Immersive Video...
Intel® Software
 
PDF
Intel® AI: Parameter Efficient Training
Intel® Software
 
PDF
Intel® AI: Non-Parametric Priors for Generative Adversarial Networks
Intel® Software
 
PDF
Persistent Memory Programming with Pmemkv
Intel® Software
 
PDF
Big Data Uses with Distributed Asynchronous Object Storage
Intel® Software
 
AI for All: Biology is eating the world & AI is eating Biology
Intel® Software
 
Python Data Science and Machine Learning at Scale with Intel and Anaconda
Intel® Software
 
Streamline End-to-End AI Pipelines with Intel, Databricks, and OmniSci
Intel® Software
 
AI for good: Scaling AI in science, healthcare, and more.
Intel® Software
 
Software AI Accelerators: The Next Frontier | Software for AI Optimization Su...
Intel® Software
 
Advanced Techniques to Accelerate Model Tuning | Software for AI Optimization...
Intel® Software
 
AWS & Intel Webinar Series - Accelerating AI Research
Intel® Software
 
Intel Developer Program
Intel® Software
 
Intel AIDC Houston Summit - Overview Slides
Intel® Software
 
AIDC NY: BODO AI Presentation - 09.19.2019
Intel® Software
 
AIDC NY: Applications of Intel AI by QuEST Global - 09.19.2019
Intel® Software
 
AIDC India - AI on IA
Intel® Software
 
AIDC India - Intel Movidius / Open Vino Slides
Intel® Software
 
AIDC India - AI Vision Slides
Intel® Software
 
ANYFACE*: Create Film Industry-Quality Facial Rendering & Animation Using Mai...
Intel® Software
 
Bring the Future of Entertainment to Your Living Room: MPEG-I Immersive Video...
Intel® Software
 
Intel® AI: Parameter Efficient Training
Intel® Software
 
Intel® AI: Non-Parametric Priors for Generative Adversarial Networks
Intel® Software
 
Persistent Memory Programming with Pmemkv
Intel® Software
 
Big Data Uses with Distributed Asynchronous Object Storage
Intel® Software
 

Recently uploaded (20)

PDF
Software Development Methodologies in 2025
KodekX
 
PDF
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
PPTX
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
PPTX
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
PDF
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 
PDF
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 
PPTX
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
PDF
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
PDF
Doc9.....................................
SofiaCollazos
 
PDF
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
PDF
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
PDF
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
PDF
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
PDF
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
PPTX
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
PDF
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
PDF
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
PPTX
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
PPTX
Introduction to Flutter by Ayush Desai.pptx
ayushdesai204
 
PPTX
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
Software Development Methodologies in 2025
KodekX
 
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
What-is-the-World-Wide-Web -- Introduction
tonifi9488
 
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
Google I/O Extended 2025 Baku - all ppts
HusseinMalikMammadli
 
Doc9.....................................
SofiaCollazos
 
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
Make GenAI investments go further with the Dell AI Factory
Principled Technologies
 
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
Introduction to Flutter by Ayush Desai.pptx
ayushdesai204
 
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 

Create a Scalable and Destructible World in HITMAN 2*

  • 2. @IntelSoftware @IntelGraphics 2 Introduction • Leigh Davies Intel • [email protected] • Senior Game / Graphics Application Engineer, UK. • James Vango-Brown IOI • [email protected] • Senior Gameplay / Physics Programmer, Hitman Series
  • 3. @IntelSoftware @IntelGraphics Agenda ● Part 1: Introduction ● Part 2: Creating Realism ● Crowd System ● Rendering ● Audio ● Part 3: Why Destruction? ● Part 4: The Destruction Runtime ● Part 5: The Content Pipeline ● Part 7: Conclusion/Q&A 3
  • 5. @IntelSoftware @IntelGraphics The World of Hitman 5 • Third-person stealth video game • Unique varied levels, cities to jungles • Why was HITMAN a good fit for CPU work? • HITMAN was already well threaded • Newer processors provided more cores
  • 6. @IntelSoftware @IntelGraphics Game design objectives: ● Create larger living levels ○ Picture in Picture ○ More complex environments ○ Larger draw distances ● Make the crowd an integral part of the experience ● More opportunity to interact with the world:- “Make the world your weapon” ”It’s not an eSport. It’s a sandbox. You’re supposed to have fun with it.”: Christian Elverdam Scale on CPU Rendering AI/ Animation Physics 6
  • 7. @IntelSoftware @IntelGraphics Realism is more than just Pixel Quality Masahiro Mori Uncanny Valley The common unsettling feeling people experience when androids closely resemble humans but are not quite convincingly realistic 7
  • 8. @IntelSoftware @IntelGraphics Detection based on simple detection of physical cores • Base: Default 4 Core System • Better: Default 6 Core System • Best: Default 8+ Core System Realism is more than just Pixel Quality Audio Rendering In gaming the Uncanny Valley includes the whole world: The better it looks, the more important your interaction with it 8
  • 9. @IntelSoftware @IntelGraphics Miami Default Simulation Settings 9 Best Simulation Settings
  • 11. @IntelSoftware @IntelGraphics Evolving role of the Crowd in Hitman Hitman: Absolution ● 1200 Characters per zone: ○ 500 max onscreen ● AI limited to per Zone HITMAN Season 2 ● 1700 (Default) Characters per level: ○ 700 Max onscreen ● Hitman can hide in the crowd ● AI simulation even when off screen https://www.gdcvault.com/play/1015315/Crowds-in-Hitman 11
  • 12. @IntelSoftware @IntelGraphics Crowd is CPU intensive ● Heavily parallelized ● Mix of systems executed in job system; ○ AI Simulation: Done every frame ○ Animation: Asynchronous: ■ Time sliced over multiple frames 4 Core Micro Profiler capture AI Simulation Animation 12
  • 13. @IntelSoftware @IntelGraphics Crowd Scaling • Characters animating further into the scene • Higher quality animations • Reduction in time slicing 8 Core Micro Profiler capture 13
  • 14. @IntelSoftware @IntelGraphics Crowd vs NPC ● Possession system, On-demand upgrade crowd agent to full NPC AI NPC Pool Size Default build Pool Size Default build 30 6 cores 60 8 cores 90 ● Allocates small pool of invisible NPCs ● Supports advanced gameplay mechanics ○ Interaction with Agent 47 ○ Allows for scripted crowd acts ■ Talk on phone, smoke, sit on bench ■ Couples holding hands ■ Wave flags ● Spawns randomly near player ● Larger pool == more unique animations 14
  • 15. @IntelSoftware @IntelGraphics Base Default build 6 cores 8 cores Total amount of Crowd: 1797 Max visible Crowd 700 Level Of Detail 1 Distance: 7.0 Count: 25 Level Of Detail 2 Distance: 15.0 Count: 75 Level Of Detail 3 Distance: 22.0 Count: 300 • Per level crowd limits affect level design in none game play areas. Crowds: Improving Realism 15
  • 16. @IntelSoftware @IntelGraphics Base Better/Best Default build 6 cores 8 cores Total amount of Crowd: 1797 2923 2923 Max visible Crowd 700 1000 1400 Level Of Detail 1 Distance: 7.0 Count: 25 Distance: 10.0 Count: 50 Distance: 15.0 Count: 100 Level Of Detail 2 Distance: 15.0 Count: 75 Distance: 20.0 Count: 120 Distance: 25.0 Count: 200 Level Of Detail 3 Distance: 22.0 Count: 300 Distance: 25.0 Count: 400 Distance: 30.0 Count: 500 • Per level crowd limits affect level design in none game play areas. Crowds: Improving Realism • Higher limits allow crowd usage in other none game play areas. • Crowds still interact with the events 16
  • 17. @IntelSoftware @IntelGraphics Rendering Multi-threading General DX11 Threading • Scene traversal multi-threaded. • Software visibility culling runs across up to 5 threads. • Highest CPU load on Render submission thread. DX12 Improvements • Commandlist Generation split across worker threads shown as “DRAW” • 30+ “DRAW”’s Per frame, submission on Render Thread 17
  • 18. @IntelSoftware @IntelGraphics 18 Software Occlusion • Used as simplified Depth pre-pass • 5% of total draw calls in the scene • 15K out of 3,000K+ vertices • Based on Intel Software Occlusion Culling (https://github.com/GameTechDev/OcclusionCulling) • Optimisations taken from MSOC https://github.com/GameTechDev/MaskedOcclusionCulling • Used for Main scene and shadow cascades.
  • 19. @IntelSoftware @IntelGraphics 19 Occlusion Performance Mumbai No Depth Culling Culling Occluders 210 Tests 21642 Draws/Instances 5540/12840 4870/8900 Occlusion cost CPU Time@3Ghz 0ms 0.815ms VS Invocations 4.54M 3.44M PS Invocations 20.6M 19.2M MS/Frame 11.9 10.7 *Core i7-6900X, 32GB Ram, NVIDIA GTX 1080
  • 20. @IntelSoftware @IntelGraphics Audio: Simulation Quality • Wwise multi-core audio enables audio tasks to execute as part of the job system. • BASE: • Reverb is based the listener position. • Crossfade with reverb from adjoining room when approaching doors, windows etc.. • BETTER and BEST • Each playing audio emitter uses reverb of the room that it is located in. • Increase active reverb busses. • For BEST • Use higher-quality reverb presets: 20
  • 21. @IntelSoftware @IntelGraphics What is it and why do we need it? 21
  • 23. @IntelSoftware @IntelGraphics Why destroy things? 23 § So much fun! § Environment interaction improves player immersion § More interesting opportunities for ‘accidents’ § More iconic destructive moments
  • 24. @IntelSoftware @IntelGraphics What we need 24 § Very specific destruction patterns § Animated destructible objects § Scalable destruction § Support existing assets
  • 25. @IntelSoftware @IntelGraphics 25 Dynamic § Simple cases are scalable (glass etc.) § Need lots of tooling for complex cases § Harder to scale at runtime § Lots of edge cases to deal with when dynamically slicing assets Pre-Defined § Not quite as realistic § Easier to scale at runtime § No need to worry about complex edge cases when slicing assets § Content creators have full power over how objects break Dynamic vs Pre-Defined
  • 27. @IntelSoftware @IntelGraphics Types of destruction 27 § Gameplay Effecting – Affects gameplay in a big way – Usually affects AI – May need to persist in the world between saves § Cosmetic – Doesn’t effect gameplay in a big way – Has no major affect on AI – Does not usually need to be saved
  • 28. @IntelSoftware @IntelGraphics Some Definitions 28 § Destruction System – Manages destruction of a single asset § Destructible Object – A simulated physics object owned by a destruction system § Destructible Piece – A single piece of a destructible object – Objects can be made of more than one piece
  • 29. @IntelSoftware @IntelGraphics Destruction Phases 29 Fracture Replace pieces Detach Detach pieces Destroy Remove pieces
  • 30. @IntelSoftware @IntelGraphics Destruction Runtime 30 § Two classes of system – Instanced sub systems – Global systems § Runs alongside our physics engine as a ‘plugin’ § Highly configurable
  • 31. @IntelSoftware @IntelGraphics 31 Instance Specific Systems Configuration Layer Visual Renderer Animator Effect Handler Simulation Activator Interaction Handler Interaction Processor Data Registry Runtime State
  • 32. @IntelSoftware @IntelGraphics 32 Global Systems Insertion Queue Reusable Memory Buffer Manager System Caretaker Effects Manager Destruction instances
  • 33. @IntelSoftware @IntelGraphics Storing the Data 33 Instance Runtime
  • 34. @IntelSoftware @IntelGraphics Storing the Data 34 The Registry § Stores references to all active physics objects for this destruction system § Maintains a link between the physics object and its configuration data – Piece Connections – Materials – Strength
  • 35. @IntelSoftware @IntelGraphics Storing the Data 35 The Runtime State § Stores all changes to the static configuration data § This includes – Damage applied to each piece – Active connections for each piece § High level system state change flags – Has been fractured, detached or destroyed – Contains anchors etc.
  • 37. @IntelSoftware @IntelGraphics The Activator 37 § Controls when a system should be marked as ‘active’ or ‘inactive’ § Causes the animator to run and synchronise positions § Means that interactions will be processed § Allows gameplay systems to hook into when a destructible system is being interacted with § Provides feedback to the debug systems for displaying stats
  • 38. @IntelSoftware @IntelGraphics The Interaction Handler 38 § Hooks into external game systems to listen for destructible events – Shots – Explosions – Collisions – Out of world § Unifies external events into a common destruction force structure § Passes destruction forces to the interaction processor
  • 39. @IntelSoftware @IntelGraphics The Interaction Processor 39 § Stores a queue of pending interactions and processes them each frame § Propagates damage through the system for each interaction using a damage propagator § Applies world state changes based on the propagation results (fracturing, detaching and destroying) § Passes all system results out for a frame to the effect processor
  • 40. @IntelSoftware @IntelGraphics 40 The Damage Propagator Initial filtering applied Immediately affected pieces are gathered Piece specific filtering applied Piece state modified and result stored Force reduced based on piece material Connected pieces iterated recursively till the force is reduced Island detection is performed Final results are returned
  • 41. @IntelSoftware @IntelGraphics Island Detection 41 § When connecting pieces are detached, other pieces need to fall § Island detection is run when a piece or set of pieces is detached from a system § Any ‘islands’ are then detached from the system
  • 42. @IntelSoftware @IntelGraphics Island Detection 42 § Get island candidates § For each island candidate – Assign a group id to the candidate and mark as visited – Assign the same group id to each unvisited connection and mark as visited – Do the same for each connection § Find all unique group ids and detach each of the smallest groups
  • 44. @IntelSoftware @IntelGraphics The Insertion Queue 44 § Controls asynchronous creation and insertion of physics objects in to the scene § Allows throttling and discarding of requests under heavy loads § Provides callbacks to the destruction system instances when their requests have been dealt with
  • 45. @IntelSoftware @IntelGraphics The Effects Manager 45 § Responds to requests for showing an effect from a system effect handler § Responds to four different events – Collided – Fractured – Detached – Destroyed § Pools effect resource instances to allow them to be reused § Controls the synchronisation of active effect positions
  • 47. @IntelSoftware @IntelGraphics The Reusable Memory Buffer Manager 47 § Provides thread safe access to reusable memory buffers § Massively reduces the overhead of runtime memory allocations during destruction processing
  • 48. @IntelSoftware @IntelGraphics The System Caretaker 48 § Periodically performs the following tasks – Removes objects from the scene that meet the required criteria – Deallocates runtime memory that objects no longer need – Reduces particle effect pools based on a heuristic that estimates current particle effect requirements in the level
  • 49. @IntelSoftware @IntelGraphics How to make something destructible? 49
  • 50. @IntelSoftware @IntelGraphics Content Authoring 50 § Content is created in 3DS Max § Voronoi partitions are used to split assets § Physics shapes are automatically generated from the geometry § The object hierarchy is used to define the fracture levels
  • 51. @IntelSoftware @IntelGraphics Destruction materials 51 § A material controls the response to destructible forces § Response is configured in two parts – Strength – How resistant to damage is an object – Shock absorption – How much force is absorbed by an object § Different pieces can have different materials
  • 52. @IntelSoftware @IntelGraphics Connections 52 § Connections are used to connect two or more pieces together § Connections are automatically generated between touching geometry § Attributes can be used to disable connection generation
  • 53. @IntelSoftware @IntelGraphics Anchor Pieces 53 § Pieces connected directly or indirectly will match the transform of the main system when it is animated § Used to control kinematic objects and objects with constraints
  • 54. @IntelSoftware @IntelGraphics Piece Attributes 54 Attributes that control behaviour § Remain : Pieces with this attribute will not be removed from the world or destroyed § Orphaned : Pieces with this attribute will never allow connections to be generated to other pieces
  • 55. @IntelSoftware @IntelGraphics 55 The Destruction Content Pipeline Pre-fracturing and mesh markup done in 3D content authoring tool An asset is exported containing mesh and bind pose information Destruction information is ‘packed’ into an asset by resource server Asset is dropped into the world as a destructible object
  • 56. @IntelSoftware @IntelGraphics ● Realism is about more than pixel quality ● Scale simulation quality as CPU power increases ● Consider gameplay implications ● Expand Sandbox without effecting core gameplay mechanics ● Add more diversity to scene through physics and animation LOD’s ● Environment interaction improves player immersion ○ More interesting opportunities for ‘accidents’ ○ Consider gameplay implications again J ● Utilize DX12 and advanced culling system to support ever expanding content sets ● Audio adds to immersion, look at multi-threaded solutions Conclusion 56
  • 57. @IntelSoftware @IntelGraphics Legal Notices and Disclaimers No license (express or implied, by estoppel or otherwise) to any intellectual property rights is granted by this document. Intel disclaims all express and implied warranties, including without limitation, the implied warranties of merchantability, fitness for a particular purpose, and non-infringement, as well as any warranty arising from course of performance, course of dealing, or usage in trade. You may not use or facilitate the use of this document in connection with any infringement or other legal analysis concerning Intel products described herein. You agree to grant Intel a non-exclusive, royalty-free license to any patent claim thereafter drafted which includes subject matter disclosed herein. The products and services described may contain defects or errors known as errata which may cause deviations from published specifications. Current characterized errata are available on request. Intel technologies’ features and benefits depend on system configuration and may require enabled hardware, software or service activation. Performance varies depending on system configuration. No computer system can be absolutely secure. Check with your system manufacturer or retailer or learn more at [intel.com]. Software and workloads used in performance tests may have been optimized for performance only on Intel microprocessors. Performance tests, such as SYSmark and MobileMark, are measured using specific computer systems, components, software, operations and functions. Any change to any of those factors may cause the results to vary. You should consult other information and performance tests to assist you in fully evaluating your contemplated purchases, including the performance of that product when combined with other products. For more complete information visit www.intel.com/benchmarks. Optimization Notice: Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice. Results have been estimated or simulated using internal Intel analysis or architecture simulation or modeling, and provided to you for informational purposes. Any differences in your system hardware, software or configuration may affect your actual performance. Intel, Core and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries. *Other names and brands may be claimed as the property of others © Intel Corporation. 57