SlideShare a Scribd company logo
1 of 41
Download to read offline
UNREAL ENGINE - OPTIMIZATIONUNREAL ENGINE - OPTIMIZATION
Adam FrańczakAdam Frańczak
PlaysoftPlaysoft
Adam.franczak@playsoft.frAdam.franczak@playsoft.fr
OVERVIEWOVERVIEW
●
About UEAbout UE
●
Application examplesApplication examples
● OptimizationOptimization
● Tools for optimization in UE3Tools for optimization in UE3
●
OptimizationOptimization in UE3in UE3
●
OptimizationOptimization:: examplesexamples
ABOUT UNREAL ENGINEABOUT UNREAL ENGINE
● Developer – Epic GamesDeveloper – Epic Games
● First version – 1998First version – 1998
● Operating system – cross-platformOperating system – cross-platform
● Stable release – February/2013 Unreal Engine3Stable release – February/2013 Unreal Engine3
● Unreal Engine 4 ? -Unreal Engine 4 ? - stillstill inin progressprogress
ABOUT UNREAL ENGINEABOUT UNREAL ENGINE
Editor:
ABOUT UNREAL ENGINEABOUT UNREAL ENGINE
Unreal Script example:Unreal Script example:
var FastBallFinish m_FastBallFinish;var FastBallFinish m_FastBallFinish;
event PreBeginPlay(){event PreBeginPlay(){
super.PreBeginPlay();super.PreBeginPlay();
ConsoleCommand("stat fps");ConsoleCommand("stat fps");
SetPlayerTimer();SetPlayerTimer();
}}
auto state PrepRound{auto state PrepRound{
function BeginState(Namefunction BeginState(Name
PreviousStateName) {PreviousStateName) {
}}
Begin:Begin:
CheckStartRound();CheckStartRound();
}}
Kismet exampleKismet example:
ABOUT UNREAL ENGINEABOUT UNREAL ENGINE
UE3 has support for manyUE3 has support for many platformsplatforms likelike:
ABOUT UNREAL ENGINEABOUT UNREAL ENGINE
mobile and PC examplesmobile and PC examples
ABOUT UNREAL ENGINEABOUT UNREAL ENGINE
games and applicationsgames and applications
OPTIMIZATIONOPTIMIZATION
OPTIMIZATIONOPTIMIZATION
Optimization - is the process of modifying a software system to makeOptimization - is the process of modifying a software system to make
some aspect of it work more efficiently or to use less resources.some aspect of it work more efficiently or to use less resources.
Levels of optimization:Levels of optimization:
● DesignDesign
● Source CodeSource Code
● CompileCompile
● AssemblyAssembly
● Run timeRun time
OPTIMIZATION IN UEOPTIMIZATION IN UE
„„UE3 has a large number of tools and techniques to help you win theUE3 has a large number of tools and techniques to help you win the
battle with an optimization!”battle with an optimization!”
● STATS COMMANDSTATS COMMAND
● GAME PROFILERGAME PROFILER
● MEMLEAK-CHECKMEMLEAK-CHECK
● SHADER ANALIZERSHADER ANALIZER
andand moremore
STAT COMMANDSSTAT COMMANDS
STATSTAT COMMANDS in Unreal Engine 3 provides the ability to view a lotCOMMANDS in Unreal Engine 3 provides the ability to view a lot
of statistics about various aspects of the game and engine.of statistics about various aspects of the game and engine.
MostMost importantimportant STAT COMMANDS:STAT COMMANDS:
●
STAT FPS – just FPSSTAT FPS – just FPS
●
STAT UNIT – show information about time spent for the currentSTAT UNIT – show information about time spent for the current
frame on the CPU, the time spent in the game thread and time spentframe on the CPU, the time spent in the game thread and time spent
in the render threadin the render thread
●STAT MEMORY – display information about memorySTAT MEMORY – display information about memory
●STAT ENGINESTAT ENGINE
●STAT GAME -STAT GAME -
●STAT OBJECT – show information about object creation andSTAT OBJECT – show information about object creation and
destructiondestruction
STAT COMMANDS (screens)STAT COMMANDS (screens)
MEMLEAKCHECKMEMLEAKCHECK
Help to understand where and when memory is being used in ourHelp to understand where and when memory is being used in our
game.game.
Output Sections:Output Sections:
●
headerheader
● class listclass list
● specific object listspecific object list
●
platform memoryplatform memory
● game specific memorygame specific memory
●
rendering memoryrendering memory
●
package memorypackage memory
● assets listassets list
●
actor listactor list
● level listlevel list
MEMLEAKCHECKMEMLEAKCHECK
Provides to use and understand where and when memory is being useProvides to use and understand where and when memory is being use
in our game.in our game.
Output Sections:Output Sections:
●
headerheader
● class listclass list
● specific object listspecific object list
●
platform memoryplatform memory
● game specific memorygame specific memory
●
rendering memoryrendering memory
●
package memorypackage memory
● assets listassets list
●
actor listactor list
● level listlevel list
MEMLEAKCHECK (screens)MEMLEAKCHECK (screens)
GAMEPLAYPROFILERGAMEPLAYPROFILER
The gameplay profiler is a tool that makes use of data captured duringThe gameplay profiler is a tool that makes use of data captured during
profiling sessions and it allows you to dig deeper into gameplay codeprofiling sessions and it allows you to dig deeper into gameplay code
to analyze time spent on performing functionsto analyze time spent on performing functions.
GAMEPLAYPROFILERGAMEPLAYPROFILER
OTHER TOOLSOTHER TOOLS
LightMap densityLightMap density
OTHER TOOLSOTHER TOOLS
Shader complexityShader complexity
OTHER TOOLSOTHER TOOLS
Texture densityTexture density
GENERAL RULESGENERAL RULES
● Identify your budget (for assets , textures, sound etc.)Identify your budget (for assets , textures, sound etc.)
● Instill the mindset of making certain that people are using theInstill the mindset of making certain that people are using the
minimal amount of data / cpu cycles to create what they wantminimal amount of data / cpu cycles to create what they want
● Remember that the game has to run within the constraints of theRemember that the game has to run within the constraints of the
target platforms – this process requires constant monitoringtarget platforms – this process requires constant monitoring.
RULESRULES
● Identify slow but low visual impact casesIdentify slow but low visual impact cases
● Ideally find enough potential optimizations that if they were allIdeally find enough potential optimizations that if they were all
implemented, the scene would be < 33msimplemented, the scene would be < 33ms
● Use detailed draw event information to quickly identify what eachUse detailed draw event information to quickly identify what each
draw call is in the editordraw call is in the editor
● Record Actor name, Resource name (static mesh, particle emitter,Record Actor name, Resource name (static mesh, particle emitter,
etc), Material nameetc), Material name
RULESRULES
● Provide LD's with suggestions on what to change, with clearProvide LD's with suggestions on what to change, with clear
directions and screenshotsdirections and screenshots
● LD's and artists decide which optimizations are worth while, makeLD's and artists decide which optimizations are worth while, make
content changescontent changes
● This ensures that art is responsible for quality decisionsThis ensures that art is responsible for quality decisions
● Repeat steps 1-3 if needed.Repeat steps 1-3 if needed.
DRAW CALLSDRAW CALLS
Number of draw call is very important. Each material is a separateNumber of draw call is very important. Each material is a separate
draw call, so if you have 1 mesh with 4 materials, it is 4 draw calls.draw call, so if you have 1 mesh with 4 materials, it is 4 draw calls.
Remember:Remember: keep draw calls downkeep draw calls down
● Combine meshes that use the same texture and shaderCombine meshes that use the same texture and shader
● Aggressive cullingAggressive culling
DRAW CALLSDRAW CALLS
TEXTURESTEXTURES
The first thing to look at is the "Over Budget" value in STATThe first thing to look at is the "Over Budget" value in STAT
STREAMING. If it's „0” you're ok. If it's non-zero, you're using moreSTREAMING. If it's „0” you're ok. If it's non-zero, you're using more
textures than can fit in the texture pool and you should reducetextures than can fit in the texture pool and you should reduce
memory usage and/or increase the texture pool size.memory usage and/or increase the texture pool size.
Use only square and require power of two for mobile devices.Use only square and require power of two for mobile devices.
If it is possible just turn off alpha channelIf it is possible just turn off alpha channel
TEXTURESTEXTURES
Textures Groups: groups of textures which are handled specially.Textures Groups: groups of textures which are handled specially.
●
TEXTUREGROUP_SkyboxTEXTUREGROUP_Skybox (textures are always fully streamed in,(textures are always fully streamed in,
they're automatically marked Forced).they're automatically marked Forced).
●
TEXTUREGROUP_UI (TEXTUREGROUP_UI (textures have all their mip-levels removedtextures have all their mip-levels removed
during cooking)during cooking)
● TEXTUREGROUP_Lightmapse (TEXTUREGROUP_Lightmapse (extra boost factors from .iniextra boost factors from .ini
settings)settings)
● TEXTUREGROUP_ShadowmapTEXTUREGROUP_Shadowmap
● TEXTUREGROUP_CharacterTEXTUREGROUP_Character (groups has a slight preference in(groups has a slight preference in
that they can be the first ones to stream in when loading a mapthat they can be the first ones to stream in when loading a map
and will be the last textures to stream out in a panic stream out)and will be the last textures to stream out in a panic stream out)
MEMORYMEMORY
Memory usage is always a concern for video games, especially thoseMemory usage is always a concern for video games, especially those
destined for consoles or mobile devices where memory is limited. Thisdestined for consoles or mobile devices where memory is limited. This
extends from the amount of space taken up by content assets on diskextends from the amount of space taken up by content assets on disk
to memory usage of different systems during runtime. These are allto memory usage of different systems during runtime. These are all
extremely important pieces of information that make it possible toextremely important pieces of information that make it possible to
constrain memory usage within acceptable limitsconstrain memory usage within acceptable limits.
MEMORYMEMORY
Important rules:Important rules:
●
Budget: Decide what to use memory on.Budget: Decide what to use memory on.
●
Make sure all assets are optimal and don't have unnecessaryMake sure all assets are optimal and don't have unnecessary
references.references.
● Make sure you have enough buffer (for fragmentation) to keepMake sure you have enough buffer (for fragmentation) to keep
your game runningyour game running
MEMORYMEMORY
Possibilities include:Possibilities include:
● The level that has too many Static MeshesThe level that has too many Static Meshes
● AI that create too many projectiles and particlesAI that create too many projectiles and particles
● Code that allocates too much memoryCode that allocates too much memory
SPAWN VS POOLING OBJECTSSPAWN VS POOLING OBJECTS
Using object pooling for ephemeral objects is faster than creating andUsing object pooling for ephemeral objects is faster than creating and
destroying them.destroying them.
However:However: if you keep allocating memory on top of the pools you justif you keep allocating memory on top of the pools you just
created, you might trigger garbage collection even more oftencreated, you might trigger garbage collection even more often
Remember: performance will suffer if you allocate pools that are tooRemember: performance will suffer if you allocate pools that are too
large or keep them active when the objects they contain will not belarge or keep them active when the objects they contain will not be
needed for some timeneeded for some time
CODE – GOOD PRACTICECODE – GOOD PRACTICE
Use the kismet and sequences if it is possible:Use the kismet and sequences if it is possible:
●
Fast and easy toggle on or toggle off all objectsFast and easy toggle on or toggle off all objects
● Precisely run scriptsPrecisely run scripts
● Precisely run movies/cinematicsPrecisely run movies/cinematics
● Acces to matineAcces to matine
● Level streamingLevel streaming
CODE – GOOD PRACTICECODE – GOOD PRACTICE
ExampleExample::
CODE – GOOD PRACTICECODE – GOOD PRACTICE
CODE – GOOD PRACTICECODE – GOOD PRACTICE
● Native functionality instead of UnrealScript codeNative functionality instead of UnrealScript code
● Execute code only as often as neededExecute code only as often as needed
●
Find bottlenecks by measuring execution timeFind bottlenecks by measuring execution time
function MyFunction() {function MyFunction() {
local float ExecutionTime;local float ExecutionTime;
Clock(ExecutionTime);Clock(ExecutionTime);
UnClock(ExecutionTime);UnClock(ExecutionTime);
Log("Time spent executing something:" @ ExecutionTime @ "ms");Log("Time spent executing something:" @ ExecutionTime @ "ms");
}}
CODE – GOOD PRACTICECODE – GOOD PRACTICE
Speed comparison of loops: (different loops have differentSpeed comparison of loops: (different loops have different
overhead times)overhead times)
while( i!=n ){while( i!=n ){
stuff[i++] = vect(1,0,0)*FRand() + vect(0,1,0)*FRand() + vect(0,0,1)*FRand();stuff[i++] = vect(1,0,0)*FRand() + vect(0,1,0)*FRand() + vect(0,0,1)*FRand();
} //} // While loop takes 0.93 time unitWhile loop takes 0.93 time unit
if( n!=0 ){if( n!=0 ){
do{do{
stuff[i++] = vect(1,0,0)*FRand() + vect(0,1,0)*FRand() + vect(0,0,1)*FRand();stuff[i++] = vect(1,0,0)*FRand() + vect(0,1,0)*FRand() + vect(0,0,1)*FRand();
}until( i==n )}until( i==n )
} //} //Until loop takes 0.90 time unitUntil loop takes 0.90 time unit
CODE – GOOD PRACTICECODE – GOOD PRACTICE
Disable engine events when you don't need themDisable engine events when you don't need them
event PostBeginPlay{event PostBeginPlay{
// all events are enabled by default, so disable Tick event to start with// all events are enabled by default, so disable Tick event to start with
Disable('Tick');Disable('Tick');
}}
event Trigger(Actor Sender, Pawn Instigator){event Trigger(Actor Sender, Pawn Instigator){
// tell engine to call Tick event from now on// tell engine to call Tick event from now on
Enable('Tick');Enable('Tick');
}}
event Tick(float DeltaTime) {event Tick(float DeltaTime) {
// do something -- executed only after the actor has been triggered// do something -- executed only after the actor has been triggered
}}
GOOD IDEASGOOD IDEAS
Remember:Remember:
●
particle systems are not cheapparticle systems are not cheap
- automated flipbook texture creation from expensive animated- automated flipbook texture creation from expensive animated
materialsmaterials
● Considerations for different devicesConsiderations for different devices
- screen resolution vs memory- screen resolution vs memory
- per-pixel rendering performance- per-pixel rendering performance
CODE – GOOD PRACTICECODE – GOOD PRACTICE
and remember at the endand remember at the end REFINE YOUR ALGORITHMS.REFINE YOUR ALGORITHMS.
THANK YOUTHANK YOU
adam.franczak@playsoft.fr
udkdev.net

More Related Content

What's hot

Creating Games for Asha - platform
Creating Games for Asha - platformCreating Games for Asha - platform
Creating Games for Asha - platformJussi Pohjolainen
 
Rendering Tech of Space Marine
Rendering Tech of Space MarineRendering Tech of Space Marine
Rendering Tech of Space MarinePope Kim
 
Optimizing unity games (Google IO 2014)
Optimizing unity games (Google IO 2014)Optimizing unity games (Google IO 2014)
Optimizing unity games (Google IO 2014)Alexander Dolbilov
 
BitSquid Tech: Benefits of a data-driven renderer
BitSquid Tech: Benefits of a data-driven rendererBitSquid Tech: Benefits of a data-driven renderer
BitSquid Tech: Benefits of a data-driven renderertobias_persson
 
4Developers 2015: Gamedev-grade debugging - Leszek Godlewski
4Developers 2015: Gamedev-grade debugging - Leszek Godlewski4Developers 2015: Gamedev-grade debugging - Leszek Godlewski
4Developers 2015: Gamedev-grade debugging - Leszek GodlewskiPROIDEA
 
Deferred rendering case study
Deferred rendering case studyDeferred rendering case study
Deferred rendering case studyozlael ozlael
 
A Bizarre Way to do Real-Time Lighting
A Bizarre Way to do Real-Time LightingA Bizarre Way to do Real-Time Lighting
A Bizarre Way to do Real-Time LightingSteven Tovey
 

What's hot (8)

Creating Games for Asha - platform
Creating Games for Asha - platformCreating Games for Asha - platform
Creating Games for Asha - platform
 
Relic's FX System
Relic's FX SystemRelic's FX System
Relic's FX System
 
Rendering Tech of Space Marine
Rendering Tech of Space MarineRendering Tech of Space Marine
Rendering Tech of Space Marine
 
Optimizing unity games (Google IO 2014)
Optimizing unity games (Google IO 2014)Optimizing unity games (Google IO 2014)
Optimizing unity games (Google IO 2014)
 
BitSquid Tech: Benefits of a data-driven renderer
BitSquid Tech: Benefits of a data-driven rendererBitSquid Tech: Benefits of a data-driven renderer
BitSquid Tech: Benefits of a data-driven renderer
 
4Developers 2015: Gamedev-grade debugging - Leszek Godlewski
4Developers 2015: Gamedev-grade debugging - Leszek Godlewski4Developers 2015: Gamedev-grade debugging - Leszek Godlewski
4Developers 2015: Gamedev-grade debugging - Leszek Godlewski
 
Deferred rendering case study
Deferred rendering case studyDeferred rendering case study
Deferred rendering case study
 
A Bizarre Way to do Real-Time Lighting
A Bizarre Way to do Real-Time LightingA Bizarre Way to do Real-Time Lighting
A Bizarre Way to do Real-Time Lighting
 

Viewers also liked

In The Trenches Optimizing UE4 for Intel
In The Trenches Optimizing UE4 for IntelIn The Trenches Optimizing UE4 for Intel
In The Trenches Optimizing UE4 for IntelIntel® Software
 
Digital strategy-101-bud-caddell-130709225509-phpapp01
Digital strategy-101-bud-caddell-130709225509-phpapp01Digital strategy-101-bud-caddell-130709225509-phpapp01
Digital strategy-101-bud-caddell-130709225509-phpapp01Raymond Morin
 
Next generation mobile gp us and rendering techniques - niklas smedberg
Next generation mobile gp us and rendering techniques - niklas smedbergNext generation mobile gp us and rendering techniques - niklas smedberg
Next generation mobile gp us and rendering techniques - niklas smedbergMary Chan
 
Luis cataldi-ue4-vr-best-practices2
Luis cataldi-ue4-vr-best-practices2Luis cataldi-ue4-vr-best-practices2
Luis cataldi-ue4-vr-best-practices2Luis Cataldi
 
Unreal Engine (For Creating Games) Presentation
Unreal Engine (For Creating Games) PresentationUnreal Engine (For Creating Games) Presentation
Unreal Engine (For Creating Games) PresentationNitin Sharma
 
Unreal Engine 4 Introduction
Unreal Engine 4 IntroductionUnreal Engine 4 Introduction
Unreal Engine 4 IntroductionSperasoft
 
Rendering AAA-Quality Characters of Project A1
Rendering AAA-Quality Characters of Project A1Rendering AAA-Quality Characters of Project A1
Rendering AAA-Quality Characters of Project A1Ki Hyunwoo
 
Unreal Summit 2016 Seoul Lighting the Planetary World of Project A1
Unreal Summit 2016 Seoul Lighting the Planetary World of Project A1Unreal Summit 2016 Seoul Lighting the Planetary World of Project A1
Unreal Summit 2016 Seoul Lighting the Planetary World of Project A1Ki Hyunwoo
 
Optimization Deep Dive: Unreal Engine 4 on Intel
Optimization Deep Dive: Unreal Engine 4 on IntelOptimization Deep Dive: Unreal Engine 4 on Intel
Optimization Deep Dive: Unreal Engine 4 on IntelIntel® Software
 
Digital Marketing in India - Current State, Trends and Future Outlook
Digital Marketing in India - Current State, Trends and Future OutlookDigital Marketing in India - Current State, Trends and Future Outlook
Digital Marketing in India - Current State, Trends and Future OutlookSiddharth Sriram
 
Introduction to Digital Marketing | #IntroToDigital +22 Free Tools inside
Introduction to Digital Marketing | #IntroToDigital +22 Free Tools insideIntroduction to Digital Marketing | #IntroToDigital +22 Free Tools inside
Introduction to Digital Marketing | #IntroToDigital +22 Free Tools insideNicolas J. Chevalier
 
Custom fabric shader for unreal engine 4
Custom fabric shader for unreal engine 4Custom fabric shader for unreal engine 4
Custom fabric shader for unreal engine 4동석 김
 
Digital Trends in 2017: Making Business Impact in a Changing World
Digital Trends in 2017: Making Business Impact in a Changing WorldDigital Trends in 2017: Making Business Impact in a Changing World
Digital Trends in 2017: Making Business Impact in a Changing WorldEdelman
 
Digital Marketing Overview
Digital Marketing OverviewDigital Marketing Overview
Digital Marketing OverviewAnton Koekemoer
 
Digital Strategy 101
Digital Strategy 101Digital Strategy 101
Digital Strategy 101Bud Caddell
 

Viewers also liked (16)

Mobile Graphics (part2)
Mobile Graphics (part2)Mobile Graphics (part2)
Mobile Graphics (part2)
 
In The Trenches Optimizing UE4 for Intel
In The Trenches Optimizing UE4 for IntelIn The Trenches Optimizing UE4 for Intel
In The Trenches Optimizing UE4 for Intel
 
Digital strategy-101-bud-caddell-130709225509-phpapp01
Digital strategy-101-bud-caddell-130709225509-phpapp01Digital strategy-101-bud-caddell-130709225509-phpapp01
Digital strategy-101-bud-caddell-130709225509-phpapp01
 
Next generation mobile gp us and rendering techniques - niklas smedberg
Next generation mobile gp us and rendering techniques - niklas smedbergNext generation mobile gp us and rendering techniques - niklas smedberg
Next generation mobile gp us and rendering techniques - niklas smedberg
 
Luis cataldi-ue4-vr-best-practices2
Luis cataldi-ue4-vr-best-practices2Luis cataldi-ue4-vr-best-practices2
Luis cataldi-ue4-vr-best-practices2
 
Unreal Engine (For Creating Games) Presentation
Unreal Engine (For Creating Games) PresentationUnreal Engine (For Creating Games) Presentation
Unreal Engine (For Creating Games) Presentation
 
Unreal Engine 4 Introduction
Unreal Engine 4 IntroductionUnreal Engine 4 Introduction
Unreal Engine 4 Introduction
 
Rendering AAA-Quality Characters of Project A1
Rendering AAA-Quality Characters of Project A1Rendering AAA-Quality Characters of Project A1
Rendering AAA-Quality Characters of Project A1
 
Unreal Summit 2016 Seoul Lighting the Planetary World of Project A1
Unreal Summit 2016 Seoul Lighting the Planetary World of Project A1Unreal Summit 2016 Seoul Lighting the Planetary World of Project A1
Unreal Summit 2016 Seoul Lighting the Planetary World of Project A1
 
Optimization Deep Dive: Unreal Engine 4 on Intel
Optimization Deep Dive: Unreal Engine 4 on IntelOptimization Deep Dive: Unreal Engine 4 on Intel
Optimization Deep Dive: Unreal Engine 4 on Intel
 
Digital Marketing in India - Current State, Trends and Future Outlook
Digital Marketing in India - Current State, Trends and Future OutlookDigital Marketing in India - Current State, Trends and Future Outlook
Digital Marketing in India - Current State, Trends and Future Outlook
 
Introduction to Digital Marketing | #IntroToDigital +22 Free Tools inside
Introduction to Digital Marketing | #IntroToDigital +22 Free Tools insideIntroduction to Digital Marketing | #IntroToDigital +22 Free Tools inside
Introduction to Digital Marketing | #IntroToDigital +22 Free Tools inside
 
Custom fabric shader for unreal engine 4
Custom fabric shader for unreal engine 4Custom fabric shader for unreal engine 4
Custom fabric shader for unreal engine 4
 
Digital Trends in 2017: Making Business Impact in a Changing World
Digital Trends in 2017: Making Business Impact in a Changing WorldDigital Trends in 2017: Making Business Impact in a Changing World
Digital Trends in 2017: Making Business Impact in a Changing World
 
Digital Marketing Overview
Digital Marketing OverviewDigital Marketing Overview
Digital Marketing Overview
 
Digital Strategy 101
Digital Strategy 101Digital Strategy 101
Digital Strategy 101
 

Similar to infoShare 2013: Adam Frańczak - Techniki optymalizacyjne w UDK/ UE3

SPU Shaders
SPU ShadersSPU Shaders
SPU ShadersSlide_N
 
Getting Space Pirate Trainer* to Perform on Intel® Graphics
Getting Space Pirate Trainer* to Perform on Intel® GraphicsGetting Space Pirate Trainer* to Perform on Intel® Graphics
Getting Space Pirate Trainer* to Perform on Intel® GraphicsIntel® Software
 
Forts and Fights Scaling Performance on Unreal Engine*
Forts and Fights Scaling Performance on Unreal Engine*Forts and Fights Scaling Performance on Unreal Engine*
Forts and Fights Scaling Performance on Unreal Engine*Intel® Software
 
Smedberg niklas bringing_aaa_graphics
Smedberg niklas bringing_aaa_graphicsSmedberg niklas bringing_aaa_graphics
Smedberg niklas bringing_aaa_graphicschangehee lee
 
Ghajini - The Game Development
Ghajini - The Game DevelopmentGhajini - The Game Development
Ghajini - The Game DevelopmentImran K
 
Practical SPU Programming in God of War III
Practical SPU Programming in God of War IIIPractical SPU Programming in God of War III
Practical SPU Programming in God of War IIISlide_N
 
Unit 73 ig1 assignment computer game audio cut sequence production 2013_y2
Unit 73 ig1 assignment computer game audio cut sequence production 2013_y2Unit 73 ig1 assignment computer game audio cut sequence production 2013_y2
Unit 73 ig1 assignment computer game audio cut sequence production 2013_y2AmaanGDesign
 
Unit 73 ig1 assignment computer game audio cut sequence production 2013_y2
Unit 73 ig1 assignment computer game audio cut sequence production 2013_y2Unit 73 ig1 assignment computer game audio cut sequence production 2013_y2
Unit 73 ig1 assignment computer game audio cut sequence production 2013_y2JoshuaGillypoop
 
Unit 73 ig1 assignment computer game audio cut sequence production 2013_y2
Unit 73 ig1 assignment computer game audio cut sequence production 2013_y2Unit 73 ig1 assignment computer game audio cut sequence production 2013_y2
Unit 73 ig1 assignment computer game audio cut sequence production 2013_y2Kenyon101
 
Unit 73 ig1 assignment computer game audio cut sequence production 2013_y2
Unit 73 ig1 assignment computer game audio cut sequence production 2013_y2Unit 73 ig1 assignment computer game audio cut sequence production 2013_y2
Unit 73 ig1 assignment computer game audio cut sequence production 2013_y2BatmanGrunt
 
Unit 73 ig1 assignment computer game audio cut sequence production 2013_y2
Unit 73 ig1 assignment computer game audio cut sequence production 2013_y2Unit 73 ig1 assignment computer game audio cut sequence production 2013_y2
Unit 73 ig1 assignment computer game audio cut sequence production 2013_y2Fryers
 
Unit 73 ig1 assignment computer game audio cut sequence production 2013_y2
Unit 73 ig1 assignment computer game audio cut sequence production 2013_y2Unit 73 ig1 assignment computer game audio cut sequence production 2013_y2
Unit 73 ig1 assignment computer game audio cut sequence production 2013_y2BatmanGrunt
 
Unit 73 IG1 Assignment Brief
Unit 73 IG1 Assignment Brief Unit 73 IG1 Assignment Brief
Unit 73 IG1 Assignment Brief MartinDevney
 
Shallow and Deep Latent Models for Recommender System
Shallow and Deep Latent Models for Recommender SystemShallow and Deep Latent Models for Recommender System
Shallow and Deep Latent Models for Recommender SystemAnoop Deoras
 
Retrobjects - Fun with C64 and NES
Retrobjects - Fun with C64 and NESRetrobjects - Fun with C64 and NES
Retrobjects - Fun with C64 and NESESUG
 
Optimizing Games for Mobiles
Optimizing Games for MobilesOptimizing Games for Mobiles
Optimizing Games for MobilesSt1X
 

Similar to infoShare 2013: Adam Frańczak - Techniki optymalizacyjne w UDK/ UE3 (20)

SPU Shaders
SPU ShadersSPU Shaders
SPU Shaders
 
Getting Space Pirate Trainer* to Perform on Intel® Graphics
Getting Space Pirate Trainer* to Perform on Intel® GraphicsGetting Space Pirate Trainer* to Perform on Intel® Graphics
Getting Space Pirate Trainer* to Perform on Intel® Graphics
 
Forts and Fights Scaling Performance on Unreal Engine*
Forts and Fights Scaling Performance on Unreal Engine*Forts and Fights Scaling Performance on Unreal Engine*
Forts and Fights Scaling Performance on Unreal Engine*
 
Readme
ReadmeReadme
Readme
 
God Of War : post mortem
God Of War : post mortemGod Of War : post mortem
God Of War : post mortem
 
Smedberg niklas bringing_aaa_graphics
Smedberg niklas bringing_aaa_graphicsSmedberg niklas bringing_aaa_graphics
Smedberg niklas bringing_aaa_graphics
 
Tech 101 for Retail
Tech 101 for RetailTech 101 for Retail
Tech 101 for Retail
 
Ghajini - The Game Development
Ghajini - The Game DevelopmentGhajini - The Game Development
Ghajini - The Game Development
 
Practical SPU Programming in God of War III
Practical SPU Programming in God of War IIIPractical SPU Programming in God of War III
Practical SPU Programming in God of War III
 
Unit 73 ig1 assignment computer game audio cut sequence production 2013_y2
Unit 73 ig1 assignment computer game audio cut sequence production 2013_y2Unit 73 ig1 assignment computer game audio cut sequence production 2013_y2
Unit 73 ig1 assignment computer game audio cut sequence production 2013_y2
 
Unit 73 ig1 assignment computer game audio cut sequence production 2013_y2
Unit 73 ig1 assignment computer game audio cut sequence production 2013_y2Unit 73 ig1 assignment computer game audio cut sequence production 2013_y2
Unit 73 ig1 assignment computer game audio cut sequence production 2013_y2
 
Unit 73 ig1 assignment computer game audio cut sequence production 2013_y2
Unit 73 ig1 assignment computer game audio cut sequence production 2013_y2Unit 73 ig1 assignment computer game audio cut sequence production 2013_y2
Unit 73 ig1 assignment computer game audio cut sequence production 2013_y2
 
Unit 73 ig1 assignment computer game audio cut sequence production 2013_y2
Unit 73 ig1 assignment computer game audio cut sequence production 2013_y2Unit 73 ig1 assignment computer game audio cut sequence production 2013_y2
Unit 73 ig1 assignment computer game audio cut sequence production 2013_y2
 
Unit 73 ig1 assignment
Unit 73 ig1 assignmentUnit 73 ig1 assignment
Unit 73 ig1 assignment
 
Unit 73 ig1 assignment computer game audio cut sequence production 2013_y2
Unit 73 ig1 assignment computer game audio cut sequence production 2013_y2Unit 73 ig1 assignment computer game audio cut sequence production 2013_y2
Unit 73 ig1 assignment computer game audio cut sequence production 2013_y2
 
Unit 73 ig1 assignment computer game audio cut sequence production 2013_y2
Unit 73 ig1 assignment computer game audio cut sequence production 2013_y2Unit 73 ig1 assignment computer game audio cut sequence production 2013_y2
Unit 73 ig1 assignment computer game audio cut sequence production 2013_y2
 
Unit 73 IG1 Assignment Brief
Unit 73 IG1 Assignment Brief Unit 73 IG1 Assignment Brief
Unit 73 IG1 Assignment Brief
 
Shallow and Deep Latent Models for Recommender System
Shallow and Deep Latent Models for Recommender SystemShallow and Deep Latent Models for Recommender System
Shallow and Deep Latent Models for Recommender System
 
Retrobjects - Fun with C64 and NES
Retrobjects - Fun with C64 and NESRetrobjects - Fun with C64 and NES
Retrobjects - Fun with C64 and NES
 
Optimizing Games for Mobiles
Optimizing Games for MobilesOptimizing Games for Mobiles
Optimizing Games for Mobiles
 

More from Infoshare

infoShare AI Roadshow 2018 - Barbara Leśniarek (Elitmind) - ”Łapać złodzieja!...
infoShare AI Roadshow 2018 - Barbara Leśniarek (Elitmind) - ”Łapać złodzieja!...infoShare AI Roadshow 2018 - Barbara Leśniarek (Elitmind) - ”Łapać złodzieja!...
infoShare AI Roadshow 2018 - Barbara Leśniarek (Elitmind) - ”Łapać złodzieja!...Infoshare
 
infoShare AI Roadshow 2018 - Wojtek Ptak (Freshmail) - Teraz - najlepszy czas...
infoShare AI Roadshow 2018 - Wojtek Ptak (Freshmail) - Teraz - najlepszy czas...infoShare AI Roadshow 2018 - Wojtek Ptak (Freshmail) - Teraz - najlepszy czas...
infoShare AI Roadshow 2018 - Wojtek Ptak (Freshmail) - Teraz - najlepszy czas...Infoshare
 
infoShare AI Roadshow 2018 - Tomasz Brzeziński (iTaxi) - Niestandardowe metod...
infoShare AI Roadshow 2018 - Tomasz Brzeziński (iTaxi) - Niestandardowe metod...infoShare AI Roadshow 2018 - Tomasz Brzeziński (iTaxi) - Niestandardowe metod...
infoShare AI Roadshow 2018 - Tomasz Brzeziński (iTaxi) - Niestandardowe metod...Infoshare
 
infoShare AI Roadshow 2018 - Rafał Cycoń (ShelfWise.ai) - Wyzwania w tworzeni...
infoShare AI Roadshow 2018 - Rafał Cycoń (ShelfWise.ai) - Wyzwania w tworzeni...infoShare AI Roadshow 2018 - Rafał Cycoń (ShelfWise.ai) - Wyzwania w tworzeni...
infoShare AI Roadshow 2018 - Rafał Cycoń (ShelfWise.ai) - Wyzwania w tworzeni...Infoshare
 
infoShare AI Roadshow 2018 - Paweł Wyborski (QuarticON) - Jak AI pomaga sprze...
infoShare AI Roadshow 2018 - Paweł Wyborski (QuarticON) - Jak AI pomaga sprze...infoShare AI Roadshow 2018 - Paweł Wyborski (QuarticON) - Jak AI pomaga sprze...
infoShare AI Roadshow 2018 - Paweł Wyborski (QuarticON) - Jak AI pomaga sprze...Infoshare
 
infoShare AI Roadshow 2018 - Mateusz Biliński (Niebezpiecznik) - Hackowanie (...
infoShare AI Roadshow 2018 - Mateusz Biliński (Niebezpiecznik) - Hackowanie (...infoShare AI Roadshow 2018 - Mateusz Biliński (Niebezpiecznik) - Hackowanie (...
infoShare AI Roadshow 2018 - Mateusz Biliński (Niebezpiecznik) - Hackowanie (...Infoshare
 
infoShare AI Roadshow 2018 - Krzysztof Kudryński & Błażej Kubiak (TomTom) - D...
infoShare AI Roadshow 2018 - Krzysztof Kudryński & Błażej Kubiak (TomTom) - D...infoShare AI Roadshow 2018 - Krzysztof Kudryński & Błażej Kubiak (TomTom) - D...
infoShare AI Roadshow 2018 - Krzysztof Kudryński & Błażej Kubiak (TomTom) - D...Infoshare
 
infoShare AI Roadshow 2018 - Magdalena Wójcik (Data Love) - Data Science na d...
infoShare AI Roadshow 2018 - Magdalena Wójcik (Data Love) - Data Science na d...infoShare AI Roadshow 2018 - Magdalena Wójcik (Data Love) - Data Science na d...
infoShare AI Roadshow 2018 - Magdalena Wójcik (Data Love) - Data Science na d...Infoshare
 
infoShare AI Roadshow 2018 - Adrian Boguszewski (Linux Polska) - Czy sieć neu...
infoShare AI Roadshow 2018 - Adrian Boguszewski (Linux Polska) - Czy sieć neu...infoShare AI Roadshow 2018 - Adrian Boguszewski (Linux Polska) - Czy sieć neu...
infoShare AI Roadshow 2018 - Adrian Boguszewski (Linux Polska) - Czy sieć neu...Infoshare
 
infoShare AI Roadshow 2018 - Dorian Nikoniuk (Microsoft) - Usługi poznawcze, ...
infoShare AI Roadshow 2018 - Dorian Nikoniuk (Microsoft) - Usługi poznawcze, ...infoShare AI Roadshow 2018 - Dorian Nikoniuk (Microsoft) - Usługi poznawcze, ...
infoShare AI Roadshow 2018 - Dorian Nikoniuk (Microsoft) - Usługi poznawcze, ...Infoshare
 
infoShare AI Roadshow 2018 - Tomasz Kopacz (Microsoft) - jakie możliwości daj...
infoShare AI Roadshow 2018 - Tomasz Kopacz (Microsoft) - jakie możliwości daj...infoShare AI Roadshow 2018 - Tomasz Kopacz (Microsoft) - jakie możliwości daj...
infoShare AI Roadshow 2018 - Tomasz Kopacz (Microsoft) - jakie możliwości daj...Infoshare
 
infoShare AI Roadshow 2018 - Adam Karwan (Groupon) - Jak wykorzystać uczenie ...
infoShare AI Roadshow 2018 - Adam Karwan (Groupon) - Jak wykorzystać uczenie ...infoShare AI Roadshow 2018 - Adam Karwan (Groupon) - Jak wykorzystać uczenie ...
infoShare AI Roadshow 2018 - Adam Karwan (Groupon) - Jak wykorzystać uczenie ...Infoshare
 
infoShare AI Roadshow 2018 - Michał Ćwiok (Clouds on Mars) - Usługi AI w chmurze
infoShare AI Roadshow 2018 - Michał Ćwiok (Clouds on Mars) - Usługi AI w chmurzeinfoShare AI Roadshow 2018 - Michał Ćwiok (Clouds on Mars) - Usługi AI w chmurze
infoShare AI Roadshow 2018 - Michał Ćwiok (Clouds on Mars) - Usługi AI w chmurzeInfoshare
 
infoShare 2014: Peter Taylor,The Art of Productive Laziness
infoShare 2014: Peter Taylor,The Art of Productive LazinessinfoShare 2014: Peter Taylor,The Art of Productive Laziness
infoShare 2014: Peter Taylor,The Art of Productive LazinessInfoshare
 
infoShare 2014: Paweł Brodziński, Efektywny czy zajęty? Jesteś pewien, że dob...
infoShare 2014: Paweł Brodziński, Efektywny czy zajęty? Jesteś pewien, że dob...infoShare 2014: Paweł Brodziński, Efektywny czy zajęty? Jesteś pewien, że dob...
infoShare 2014: Paweł Brodziński, Efektywny czy zajęty? Jesteś pewien, że dob...Infoshare
 
infoShare 2014: Michał Sierzputowski, Testy automatyczne aplikacji webowych o...
infoShare 2014: Michał Sierzputowski, Testy automatyczne aplikacji webowych o...infoShare 2014: Michał Sierzputowski, Testy automatyczne aplikacji webowych o...
infoShare 2014: Michał Sierzputowski, Testy automatyczne aplikacji webowych o...Infoshare
 
infoShare 2014: Michał Polak, Smart Cities na wyciągnięcie smartfona.
infoShare 2014: Michał Polak, Smart Cities na wyciągnięcie smartfona.infoShare 2014: Michał Polak, Smart Cities na wyciągnięcie smartfona.
infoShare 2014: Michał Polak, Smart Cities na wyciągnięcie smartfona.Infoshare
 
infoShare 2014: Mariusz Róg, Big Data w praktyce -- jak efektywnie przetwarza...
infoShare 2014: Mariusz Róg, Big Data w praktyce -- jak efektywnie przetwarza...infoShare 2014: Mariusz Róg, Big Data w praktyce -- jak efektywnie przetwarza...
infoShare 2014: Mariusz Róg, Big Data w praktyce -- jak efektywnie przetwarza...Infoshare
 
infoShare 2014: Marek Landowski, Architektura SWIFT obiektowego przechowywani...
infoShare 2014: Marek Landowski, Architektura SWIFT obiektowego przechowywani...infoShare 2014: Marek Landowski, Architektura SWIFT obiektowego przechowywani...
infoShare 2014: Marek Landowski, Architektura SWIFT obiektowego przechowywani...Infoshare
 
infoShare 2014: Maciej Saganowski, Designing Mobile Services.
infoShare 2014: Maciej Saganowski, Designing Mobile Services.infoShare 2014: Maciej Saganowski, Designing Mobile Services.
infoShare 2014: Maciej Saganowski, Designing Mobile Services.Infoshare
 

More from Infoshare (20)

infoShare AI Roadshow 2018 - Barbara Leśniarek (Elitmind) - ”Łapać złodzieja!...
infoShare AI Roadshow 2018 - Barbara Leśniarek (Elitmind) - ”Łapać złodzieja!...infoShare AI Roadshow 2018 - Barbara Leśniarek (Elitmind) - ”Łapać złodzieja!...
infoShare AI Roadshow 2018 - Barbara Leśniarek (Elitmind) - ”Łapać złodzieja!...
 
infoShare AI Roadshow 2018 - Wojtek Ptak (Freshmail) - Teraz - najlepszy czas...
infoShare AI Roadshow 2018 - Wojtek Ptak (Freshmail) - Teraz - najlepszy czas...infoShare AI Roadshow 2018 - Wojtek Ptak (Freshmail) - Teraz - najlepszy czas...
infoShare AI Roadshow 2018 - Wojtek Ptak (Freshmail) - Teraz - najlepszy czas...
 
infoShare AI Roadshow 2018 - Tomasz Brzeziński (iTaxi) - Niestandardowe metod...
infoShare AI Roadshow 2018 - Tomasz Brzeziński (iTaxi) - Niestandardowe metod...infoShare AI Roadshow 2018 - Tomasz Brzeziński (iTaxi) - Niestandardowe metod...
infoShare AI Roadshow 2018 - Tomasz Brzeziński (iTaxi) - Niestandardowe metod...
 
infoShare AI Roadshow 2018 - Rafał Cycoń (ShelfWise.ai) - Wyzwania w tworzeni...
infoShare AI Roadshow 2018 - Rafał Cycoń (ShelfWise.ai) - Wyzwania w tworzeni...infoShare AI Roadshow 2018 - Rafał Cycoń (ShelfWise.ai) - Wyzwania w tworzeni...
infoShare AI Roadshow 2018 - Rafał Cycoń (ShelfWise.ai) - Wyzwania w tworzeni...
 
infoShare AI Roadshow 2018 - Paweł Wyborski (QuarticON) - Jak AI pomaga sprze...
infoShare AI Roadshow 2018 - Paweł Wyborski (QuarticON) - Jak AI pomaga sprze...infoShare AI Roadshow 2018 - Paweł Wyborski (QuarticON) - Jak AI pomaga sprze...
infoShare AI Roadshow 2018 - Paweł Wyborski (QuarticON) - Jak AI pomaga sprze...
 
infoShare AI Roadshow 2018 - Mateusz Biliński (Niebezpiecznik) - Hackowanie (...
infoShare AI Roadshow 2018 - Mateusz Biliński (Niebezpiecznik) - Hackowanie (...infoShare AI Roadshow 2018 - Mateusz Biliński (Niebezpiecznik) - Hackowanie (...
infoShare AI Roadshow 2018 - Mateusz Biliński (Niebezpiecznik) - Hackowanie (...
 
infoShare AI Roadshow 2018 - Krzysztof Kudryński & Błażej Kubiak (TomTom) - D...
infoShare AI Roadshow 2018 - Krzysztof Kudryński & Błażej Kubiak (TomTom) - D...infoShare AI Roadshow 2018 - Krzysztof Kudryński & Błażej Kubiak (TomTom) - D...
infoShare AI Roadshow 2018 - Krzysztof Kudryński & Błażej Kubiak (TomTom) - D...
 
infoShare AI Roadshow 2018 - Magdalena Wójcik (Data Love) - Data Science na d...
infoShare AI Roadshow 2018 - Magdalena Wójcik (Data Love) - Data Science na d...infoShare AI Roadshow 2018 - Magdalena Wójcik (Data Love) - Data Science na d...
infoShare AI Roadshow 2018 - Magdalena Wójcik (Data Love) - Data Science na d...
 
infoShare AI Roadshow 2018 - Adrian Boguszewski (Linux Polska) - Czy sieć neu...
infoShare AI Roadshow 2018 - Adrian Boguszewski (Linux Polska) - Czy sieć neu...infoShare AI Roadshow 2018 - Adrian Boguszewski (Linux Polska) - Czy sieć neu...
infoShare AI Roadshow 2018 - Adrian Boguszewski (Linux Polska) - Czy sieć neu...
 
infoShare AI Roadshow 2018 - Dorian Nikoniuk (Microsoft) - Usługi poznawcze, ...
infoShare AI Roadshow 2018 - Dorian Nikoniuk (Microsoft) - Usługi poznawcze, ...infoShare AI Roadshow 2018 - Dorian Nikoniuk (Microsoft) - Usługi poznawcze, ...
infoShare AI Roadshow 2018 - Dorian Nikoniuk (Microsoft) - Usługi poznawcze, ...
 
infoShare AI Roadshow 2018 - Tomasz Kopacz (Microsoft) - jakie możliwości daj...
infoShare AI Roadshow 2018 - Tomasz Kopacz (Microsoft) - jakie możliwości daj...infoShare AI Roadshow 2018 - Tomasz Kopacz (Microsoft) - jakie możliwości daj...
infoShare AI Roadshow 2018 - Tomasz Kopacz (Microsoft) - jakie możliwości daj...
 
infoShare AI Roadshow 2018 - Adam Karwan (Groupon) - Jak wykorzystać uczenie ...
infoShare AI Roadshow 2018 - Adam Karwan (Groupon) - Jak wykorzystać uczenie ...infoShare AI Roadshow 2018 - Adam Karwan (Groupon) - Jak wykorzystać uczenie ...
infoShare AI Roadshow 2018 - Adam Karwan (Groupon) - Jak wykorzystać uczenie ...
 
infoShare AI Roadshow 2018 - Michał Ćwiok (Clouds on Mars) - Usługi AI w chmurze
infoShare AI Roadshow 2018 - Michał Ćwiok (Clouds on Mars) - Usługi AI w chmurzeinfoShare AI Roadshow 2018 - Michał Ćwiok (Clouds on Mars) - Usługi AI w chmurze
infoShare AI Roadshow 2018 - Michał Ćwiok (Clouds on Mars) - Usługi AI w chmurze
 
infoShare 2014: Peter Taylor,The Art of Productive Laziness
infoShare 2014: Peter Taylor,The Art of Productive LazinessinfoShare 2014: Peter Taylor,The Art of Productive Laziness
infoShare 2014: Peter Taylor,The Art of Productive Laziness
 
infoShare 2014: Paweł Brodziński, Efektywny czy zajęty? Jesteś pewien, że dob...
infoShare 2014: Paweł Brodziński, Efektywny czy zajęty? Jesteś pewien, że dob...infoShare 2014: Paweł Brodziński, Efektywny czy zajęty? Jesteś pewien, że dob...
infoShare 2014: Paweł Brodziński, Efektywny czy zajęty? Jesteś pewien, że dob...
 
infoShare 2014: Michał Sierzputowski, Testy automatyczne aplikacji webowych o...
infoShare 2014: Michał Sierzputowski, Testy automatyczne aplikacji webowych o...infoShare 2014: Michał Sierzputowski, Testy automatyczne aplikacji webowych o...
infoShare 2014: Michał Sierzputowski, Testy automatyczne aplikacji webowych o...
 
infoShare 2014: Michał Polak, Smart Cities na wyciągnięcie smartfona.
infoShare 2014: Michał Polak, Smart Cities na wyciągnięcie smartfona.infoShare 2014: Michał Polak, Smart Cities na wyciągnięcie smartfona.
infoShare 2014: Michał Polak, Smart Cities na wyciągnięcie smartfona.
 
infoShare 2014: Mariusz Róg, Big Data w praktyce -- jak efektywnie przetwarza...
infoShare 2014: Mariusz Róg, Big Data w praktyce -- jak efektywnie przetwarza...infoShare 2014: Mariusz Róg, Big Data w praktyce -- jak efektywnie przetwarza...
infoShare 2014: Mariusz Róg, Big Data w praktyce -- jak efektywnie przetwarza...
 
infoShare 2014: Marek Landowski, Architektura SWIFT obiektowego przechowywani...
infoShare 2014: Marek Landowski, Architektura SWIFT obiektowego przechowywani...infoShare 2014: Marek Landowski, Architektura SWIFT obiektowego przechowywani...
infoShare 2014: Marek Landowski, Architektura SWIFT obiektowego przechowywani...
 
infoShare 2014: Maciej Saganowski, Designing Mobile Services.
infoShare 2014: Maciej Saganowski, Designing Mobile Services.infoShare 2014: Maciej Saganowski, Designing Mobile Services.
infoShare 2014: Maciej Saganowski, Designing Mobile Services.
 

Recently uploaded

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 

Recently uploaded (20)

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 

infoShare 2013: Adam Frańczak - Techniki optymalizacyjne w UDK/ UE3

  • 1. UNREAL ENGINE - OPTIMIZATIONUNREAL ENGINE - OPTIMIZATION Adam FrańczakAdam Frańczak PlaysoftPlaysoft Adam.franczak@playsoft.frAdam.franczak@playsoft.fr
  • 2. OVERVIEWOVERVIEW ● About UEAbout UE ● Application examplesApplication examples ● OptimizationOptimization ● Tools for optimization in UE3Tools for optimization in UE3 ● OptimizationOptimization in UE3in UE3 ● OptimizationOptimization:: examplesexamples
  • 3. ABOUT UNREAL ENGINEABOUT UNREAL ENGINE ● Developer – Epic GamesDeveloper – Epic Games ● First version – 1998First version – 1998 ● Operating system – cross-platformOperating system – cross-platform ● Stable release – February/2013 Unreal Engine3Stable release – February/2013 Unreal Engine3 ● Unreal Engine 4 ? -Unreal Engine 4 ? - stillstill inin progressprogress
  • 4. ABOUT UNREAL ENGINEABOUT UNREAL ENGINE Editor:
  • 5. ABOUT UNREAL ENGINEABOUT UNREAL ENGINE Unreal Script example:Unreal Script example: var FastBallFinish m_FastBallFinish;var FastBallFinish m_FastBallFinish; event PreBeginPlay(){event PreBeginPlay(){ super.PreBeginPlay();super.PreBeginPlay(); ConsoleCommand("stat fps");ConsoleCommand("stat fps"); SetPlayerTimer();SetPlayerTimer(); }} auto state PrepRound{auto state PrepRound{ function BeginState(Namefunction BeginState(Name PreviousStateName) {PreviousStateName) { }} Begin:Begin: CheckStartRound();CheckStartRound(); }} Kismet exampleKismet example:
  • 6. ABOUT UNREAL ENGINEABOUT UNREAL ENGINE UE3 has support for manyUE3 has support for many platformsplatforms likelike:
  • 7. ABOUT UNREAL ENGINEABOUT UNREAL ENGINE mobile and PC examplesmobile and PC examples
  • 8. ABOUT UNREAL ENGINEABOUT UNREAL ENGINE games and applicationsgames and applications
  • 10. OPTIMIZATIONOPTIMIZATION Optimization - is the process of modifying a software system to makeOptimization - is the process of modifying a software system to make some aspect of it work more efficiently or to use less resources.some aspect of it work more efficiently or to use less resources. Levels of optimization:Levels of optimization: ● DesignDesign ● Source CodeSource Code ● CompileCompile ● AssemblyAssembly ● Run timeRun time
  • 11. OPTIMIZATION IN UEOPTIMIZATION IN UE „„UE3 has a large number of tools and techniques to help you win theUE3 has a large number of tools and techniques to help you win the battle with an optimization!”battle with an optimization!” ● STATS COMMANDSTATS COMMAND ● GAME PROFILERGAME PROFILER ● MEMLEAK-CHECKMEMLEAK-CHECK ● SHADER ANALIZERSHADER ANALIZER andand moremore
  • 12. STAT COMMANDSSTAT COMMANDS STATSTAT COMMANDS in Unreal Engine 3 provides the ability to view a lotCOMMANDS in Unreal Engine 3 provides the ability to view a lot of statistics about various aspects of the game and engine.of statistics about various aspects of the game and engine. MostMost importantimportant STAT COMMANDS:STAT COMMANDS: ● STAT FPS – just FPSSTAT FPS – just FPS ● STAT UNIT – show information about time spent for the currentSTAT UNIT – show information about time spent for the current frame on the CPU, the time spent in the game thread and time spentframe on the CPU, the time spent in the game thread and time spent in the render threadin the render thread ●STAT MEMORY – display information about memorySTAT MEMORY – display information about memory ●STAT ENGINESTAT ENGINE ●STAT GAME -STAT GAME - ●STAT OBJECT – show information about object creation andSTAT OBJECT – show information about object creation and destructiondestruction
  • 13. STAT COMMANDS (screens)STAT COMMANDS (screens)
  • 14. MEMLEAKCHECKMEMLEAKCHECK Help to understand where and when memory is being used in ourHelp to understand where and when memory is being used in our game.game. Output Sections:Output Sections: ● headerheader ● class listclass list ● specific object listspecific object list ● platform memoryplatform memory ● game specific memorygame specific memory ● rendering memoryrendering memory ● package memorypackage memory ● assets listassets list ● actor listactor list ● level listlevel list
  • 15. MEMLEAKCHECKMEMLEAKCHECK Provides to use and understand where and when memory is being useProvides to use and understand where and when memory is being use in our game.in our game. Output Sections:Output Sections: ● headerheader ● class listclass list ● specific object listspecific object list ● platform memoryplatform memory ● game specific memorygame specific memory ● rendering memoryrendering memory ● package memorypackage memory ● assets listassets list ● actor listactor list ● level listlevel list
  • 17. GAMEPLAYPROFILERGAMEPLAYPROFILER The gameplay profiler is a tool that makes use of data captured duringThe gameplay profiler is a tool that makes use of data captured during profiling sessions and it allows you to dig deeper into gameplay codeprofiling sessions and it allows you to dig deeper into gameplay code to analyze time spent on performing functionsto analyze time spent on performing functions.
  • 19. OTHER TOOLSOTHER TOOLS LightMap densityLightMap density
  • 20. OTHER TOOLSOTHER TOOLS Shader complexityShader complexity
  • 21. OTHER TOOLSOTHER TOOLS Texture densityTexture density
  • 22. GENERAL RULESGENERAL RULES ● Identify your budget (for assets , textures, sound etc.)Identify your budget (for assets , textures, sound etc.) ● Instill the mindset of making certain that people are using theInstill the mindset of making certain that people are using the minimal amount of data / cpu cycles to create what they wantminimal amount of data / cpu cycles to create what they want ● Remember that the game has to run within the constraints of theRemember that the game has to run within the constraints of the target platforms – this process requires constant monitoringtarget platforms – this process requires constant monitoring.
  • 23. RULESRULES ● Identify slow but low visual impact casesIdentify slow but low visual impact cases ● Ideally find enough potential optimizations that if they were allIdeally find enough potential optimizations that if they were all implemented, the scene would be < 33msimplemented, the scene would be < 33ms ● Use detailed draw event information to quickly identify what eachUse detailed draw event information to quickly identify what each draw call is in the editordraw call is in the editor ● Record Actor name, Resource name (static mesh, particle emitter,Record Actor name, Resource name (static mesh, particle emitter, etc), Material nameetc), Material name
  • 24. RULESRULES ● Provide LD's with suggestions on what to change, with clearProvide LD's with suggestions on what to change, with clear directions and screenshotsdirections and screenshots ● LD's and artists decide which optimizations are worth while, makeLD's and artists decide which optimizations are worth while, make content changescontent changes ● This ensures that art is responsible for quality decisionsThis ensures that art is responsible for quality decisions ● Repeat steps 1-3 if needed.Repeat steps 1-3 if needed.
  • 25. DRAW CALLSDRAW CALLS Number of draw call is very important. Each material is a separateNumber of draw call is very important. Each material is a separate draw call, so if you have 1 mesh with 4 materials, it is 4 draw calls.draw call, so if you have 1 mesh with 4 materials, it is 4 draw calls. Remember:Remember: keep draw calls downkeep draw calls down ● Combine meshes that use the same texture and shaderCombine meshes that use the same texture and shader ● Aggressive cullingAggressive culling
  • 27. TEXTURESTEXTURES The first thing to look at is the "Over Budget" value in STATThe first thing to look at is the "Over Budget" value in STAT STREAMING. If it's „0” you're ok. If it's non-zero, you're using moreSTREAMING. If it's „0” you're ok. If it's non-zero, you're using more textures than can fit in the texture pool and you should reducetextures than can fit in the texture pool and you should reduce memory usage and/or increase the texture pool size.memory usage and/or increase the texture pool size. Use only square and require power of two for mobile devices.Use only square and require power of two for mobile devices. If it is possible just turn off alpha channelIf it is possible just turn off alpha channel
  • 28. TEXTURESTEXTURES Textures Groups: groups of textures which are handled specially.Textures Groups: groups of textures which are handled specially. ● TEXTUREGROUP_SkyboxTEXTUREGROUP_Skybox (textures are always fully streamed in,(textures are always fully streamed in, they're automatically marked Forced).they're automatically marked Forced). ● TEXTUREGROUP_UI (TEXTUREGROUP_UI (textures have all their mip-levels removedtextures have all their mip-levels removed during cooking)during cooking) ● TEXTUREGROUP_Lightmapse (TEXTUREGROUP_Lightmapse (extra boost factors from .iniextra boost factors from .ini settings)settings) ● TEXTUREGROUP_ShadowmapTEXTUREGROUP_Shadowmap ● TEXTUREGROUP_CharacterTEXTUREGROUP_Character (groups has a slight preference in(groups has a slight preference in that they can be the first ones to stream in when loading a mapthat they can be the first ones to stream in when loading a map and will be the last textures to stream out in a panic stream out)and will be the last textures to stream out in a panic stream out)
  • 29. MEMORYMEMORY Memory usage is always a concern for video games, especially thoseMemory usage is always a concern for video games, especially those destined for consoles or mobile devices where memory is limited. Thisdestined for consoles or mobile devices where memory is limited. This extends from the amount of space taken up by content assets on diskextends from the amount of space taken up by content assets on disk to memory usage of different systems during runtime. These are allto memory usage of different systems during runtime. These are all extremely important pieces of information that make it possible toextremely important pieces of information that make it possible to constrain memory usage within acceptable limitsconstrain memory usage within acceptable limits.
  • 30. MEMORYMEMORY Important rules:Important rules: ● Budget: Decide what to use memory on.Budget: Decide what to use memory on. ● Make sure all assets are optimal and don't have unnecessaryMake sure all assets are optimal and don't have unnecessary references.references. ● Make sure you have enough buffer (for fragmentation) to keepMake sure you have enough buffer (for fragmentation) to keep your game runningyour game running
  • 31. MEMORYMEMORY Possibilities include:Possibilities include: ● The level that has too many Static MeshesThe level that has too many Static Meshes ● AI that create too many projectiles and particlesAI that create too many projectiles and particles ● Code that allocates too much memoryCode that allocates too much memory
  • 32. SPAWN VS POOLING OBJECTSSPAWN VS POOLING OBJECTS Using object pooling for ephemeral objects is faster than creating andUsing object pooling for ephemeral objects is faster than creating and destroying them.destroying them. However:However: if you keep allocating memory on top of the pools you justif you keep allocating memory on top of the pools you just created, you might trigger garbage collection even more oftencreated, you might trigger garbage collection even more often Remember: performance will suffer if you allocate pools that are tooRemember: performance will suffer if you allocate pools that are too large or keep them active when the objects they contain will not belarge or keep them active when the objects they contain will not be needed for some timeneeded for some time
  • 33. CODE – GOOD PRACTICECODE – GOOD PRACTICE Use the kismet and sequences if it is possible:Use the kismet and sequences if it is possible: ● Fast and easy toggle on or toggle off all objectsFast and easy toggle on or toggle off all objects ● Precisely run scriptsPrecisely run scripts ● Precisely run movies/cinematicsPrecisely run movies/cinematics ● Acces to matineAcces to matine ● Level streamingLevel streaming
  • 34. CODE – GOOD PRACTICECODE – GOOD PRACTICE ExampleExample::
  • 35. CODE – GOOD PRACTICECODE – GOOD PRACTICE
  • 36. CODE – GOOD PRACTICECODE – GOOD PRACTICE ● Native functionality instead of UnrealScript codeNative functionality instead of UnrealScript code ● Execute code only as often as neededExecute code only as often as needed ● Find bottlenecks by measuring execution timeFind bottlenecks by measuring execution time function MyFunction() {function MyFunction() { local float ExecutionTime;local float ExecutionTime; Clock(ExecutionTime);Clock(ExecutionTime); UnClock(ExecutionTime);UnClock(ExecutionTime); Log("Time spent executing something:" @ ExecutionTime @ "ms");Log("Time spent executing something:" @ ExecutionTime @ "ms"); }}
  • 37. CODE – GOOD PRACTICECODE – GOOD PRACTICE Speed comparison of loops: (different loops have differentSpeed comparison of loops: (different loops have different overhead times)overhead times) while( i!=n ){while( i!=n ){ stuff[i++] = vect(1,0,0)*FRand() + vect(0,1,0)*FRand() + vect(0,0,1)*FRand();stuff[i++] = vect(1,0,0)*FRand() + vect(0,1,0)*FRand() + vect(0,0,1)*FRand(); } //} // While loop takes 0.93 time unitWhile loop takes 0.93 time unit if( n!=0 ){if( n!=0 ){ do{do{ stuff[i++] = vect(1,0,0)*FRand() + vect(0,1,0)*FRand() + vect(0,0,1)*FRand();stuff[i++] = vect(1,0,0)*FRand() + vect(0,1,0)*FRand() + vect(0,0,1)*FRand(); }until( i==n )}until( i==n ) } //} //Until loop takes 0.90 time unitUntil loop takes 0.90 time unit
  • 38. CODE – GOOD PRACTICECODE – GOOD PRACTICE Disable engine events when you don't need themDisable engine events when you don't need them event PostBeginPlay{event PostBeginPlay{ // all events are enabled by default, so disable Tick event to start with// all events are enabled by default, so disable Tick event to start with Disable('Tick');Disable('Tick'); }} event Trigger(Actor Sender, Pawn Instigator){event Trigger(Actor Sender, Pawn Instigator){ // tell engine to call Tick event from now on// tell engine to call Tick event from now on Enable('Tick');Enable('Tick'); }} event Tick(float DeltaTime) {event Tick(float DeltaTime) { // do something -- executed only after the actor has been triggered// do something -- executed only after the actor has been triggered }}
  • 39. GOOD IDEASGOOD IDEAS Remember:Remember: ● particle systems are not cheapparticle systems are not cheap - automated flipbook texture creation from expensive animated- automated flipbook texture creation from expensive animated materialsmaterials ● Considerations for different devicesConsiderations for different devices - screen resolution vs memory- screen resolution vs memory - per-pixel rendering performance- per-pixel rendering performance
  • 40. CODE – GOOD PRACTICECODE – GOOD PRACTICE and remember at the endand remember at the end REFINE YOUR ALGORITHMS.REFINE YOUR ALGORITHMS.