Performance and Memory Management improvement applying Design Patterns at Unity.
-
Upload
lucy-gomez -
Category
Technology
-
view
419 -
download
0
Transcript of Performance and Memory Management improvement applying Design Patterns at Unity.
![Page 1: Performance and Memory Management improvement applying Design Patterns at Unity.](https://reader031.fdocuments.us/reader031/viewer/2022022413/58a366ef1a28aba4138b56c9/html5/thumbnails/1.jpg)
GAME PROGRAMMING PATTERNS For Unity !
Lucy Gómez |MEXICO
![Page 2: Performance and Memory Management improvement applying Design Patterns at Unity.](https://reader031.fdocuments.us/reader031/viewer/2022022413/58a366ef1a28aba4138b56c9/html5/thumbnails/2.jpg)
LUCY GOMEZ GAME DEVELOPER ANDROID DEVELOPER
FLEX DEVELOPER 3D MODELER 3D TEXTURING
![Page 3: Performance and Memory Management improvement applying Design Patterns at Unity.](https://reader031.fdocuments.us/reader031/viewer/2022022413/58a366ef1a28aba4138b56c9/html5/thumbnails/3.jpg)
Why Programming Patterns Are Important for Game Development?
![Page 4: Performance and Memory Management improvement applying Design Patterns at Unity.](https://reader031.fdocuments.us/reader031/viewer/2022022413/58a366ef1a28aba4138b56c9/html5/thumbnails/4.jpg)
GOOD GAME BAD
PERFORMANCE
Memory is a scarce
resource specially at
mobile.
Games use much more RESOURCES
than any other kind of apps.
![Page 5: Performance and Memory Management improvement applying Design Patterns at Unity.](https://reader031.fdocuments.us/reader031/viewer/2022022413/58a366ef1a28aba4138b56c9/html5/thumbnails/5.jpg)
AGENDA
FLYWEIGHT OBSERVER STATE PATTERN
OBJECT POOL
![Page 6: Performance and Memory Management improvement applying Design Patterns at Unity.](https://reader031.fdocuments.us/reader031/viewer/2022022413/58a366ef1a28aba4138b56c9/html5/thumbnails/6.jpg)
FLYWEIGHT
![Page 7: Performance and Memory Management improvement applying Design Patterns at Unity.](https://reader031.fdocuments.us/reader031/viewer/2022022413/58a366ef1a28aba4138b56c9/html5/thumbnails/7.jpg)
REUSE OF SHARED OBJECTS TO SAVE MEMORY
RESOURCE MANAGEMENT
![Page 8: Performance and Memory Management improvement applying Design Patterns at Unity.](https://reader031.fdocuments.us/reader031/viewer/2022022413/58a366ef1a28aba4138b56c9/html5/thumbnails/8.jpg)
FUEL OXIGEN POWER GRAVITY
FUEL OXIGEN POWER GRAVITY
FUEL OXIGEN POWER GRAVITY
![Page 9: Performance and Memory Management improvement applying Design Patterns at Unity.](https://reader031.fdocuments.us/reader031/viewer/2022022413/58a366ef1a28aba4138b56c9/html5/thumbnails/9.jpg)
Flyweight Diagram
Enemy Model -Mesh -Texture 1
-Mesh Texture 2
FUEL OXIGEN POWER GRAVITY
![Page 10: Performance and Memory Management improvement applying Design Patterns at Unity.](https://reader031.fdocuments.us/reader031/viewer/2022022413/58a366ef1a28aba4138b56c9/html5/thumbnails/10.jpg)
OBSERVER
OBSERVER
![Page 11: Performance and Memory Management improvement applying Design Patterns at Unity.](https://reader031.fdocuments.us/reader031/viewer/2022022413/58a366ef1a28aba4138b56c9/html5/thumbnails/11.jpg)
Observer Description
As part of the MODEL-VIEW-CONTROLLER
Java = Observer
C# = Event
CHALLENGE = Achivements triggered by a Bunch of Aspects at the Game Play.
Anounce to any suscribed instance that something has occurred.
PART OF MVC HANDLES EVENTS EFFECTIVELY ANNOUCE TO ANY SUSCRIBER THAT SOMETHING HAS OCCURRED
![Page 12: Performance and Memory Management improvement applying Design Patterns at Unity.](https://reader031.fdocuments.us/reader031/viewer/2022022413/58a366ef1a28aba4138b56c9/html5/thumbnails/12.jpg)
Observer Diagram
Publishers Message Managers
Suscriber 1
Suscriber 2
Suscriber 3
PUBLISHER
MESSAGE MANAGER
SUSCRIBER
![Page 13: Performance and Memory Management improvement applying Design Patterns at Unity.](https://reader031.fdocuments.us/reader031/viewer/2022022413/58a366ef1a28aba4138b56c9/html5/thumbnails/13.jpg)
STATE PATTERN
PATTERN STATE
![Page 14: Performance and Memory Management improvement applying Design Patterns at Unity.](https://reader031.fdocuments.us/reader031/viewer/2022022413/58a366ef1a28aba4138b56c9/html5/thumbnails/14.jpg)
MANAGEMENT OF CHARACTER STATE FOR FIXED STATES ALL CHARACTER BEHAVIOR IN ONE CLASS
![Page 15: Performance and Memory Management improvement applying Design Patterns at Unity.](https://reader031.fdocuments.us/reader031/viewer/2022022413/58a366ef1a28aba4138b56c9/html5/thumbnails/15.jpg)
OBJECT POOL
POOL OBJECT
![Page 16: Performance and Memory Management improvement applying Design Patterns at Unity.](https://reader031.fdocuments.us/reader031/viewer/2022022413/58a366ef1a28aba4138b56c9/html5/thumbnails/16.jpg)
Object Pool Description
Improve performance and memory usage by using a fixed pool of objects.
A best alternatite to the create-destroy strategy at game development
Reduce Memory Fragmentation
Useful for multiple enemies.
Garbage Collector will become slower as memory usage increases.
IMPROVE MEMORY PERFORMANCE BEST TO CREAT-DESTROY REDUCE MEMORY FRAGMENTATION
![Page 17: Performance and Memory Management improvement applying Design Patterns at Unity.](https://reader031.fdocuments.us/reader031/viewer/2022022413/58a366ef1a28aba4138b56c9/html5/thumbnails/17.jpg)
LET’S CODE
![Page 18: Performance and Memory Management improvement applying Design Patterns at Unity.](https://reader031.fdocuments.us/reader031/viewer/2022022413/58a366ef1a28aba4138b56c9/html5/thumbnails/18.jpg)
Thanks