performance and memory management improvement applying design patterns at unity
TRANSCRIPT
GAME PROGRAMMING PATTERNS For Unity !
Lucy Gómez |MEXICO
LUCY GOMEZ GAME DEVELOPER ANDROID DEVELOPER
FLEX DEVELOPER 3D MODELER 3D TEXTURING
Why Programming Patterns Are Important for Game Development?
GOOD GAME BAD
PERFORMANCE
Memory is a scarce
resource specially at
mobile.
Games use much more RESOURCES
than any other kind of apps.
AGENDA
FLYWEIGHT OBSERVER STATE PATTERN
OBJECT POOL
FLYWEIGHT
REUSE OF SHARED OBJECTS TO SAVE MEMORY
RESOURCE MANAGEMENT
FUEL OXIGEN POWER GRAVITY
FUEL OXIGEN POWER GRAVITY
FUEL OXIGEN POWER GRAVITY
Flyweight Diagram
Enemy Model -Mesh -Texture 1
-Mesh Texture 2
FUEL OXIGEN POWER GRAVITY
OBSERVER
OBSERVER
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
Observer Diagram
Publishers Message Managers
Suscriber 1
Suscriber 2
Suscriber 3
PUBLISHER
MESSAGE MANAGER
SUSCRIBER
STATE PATTERN
PATTERN STATE
MANAGEMENT OF CHARACTER STATE FOR FIXED STATES ALL CHARACTER BEHAVIOR IN ONE CLASS
OBJECT POOL
POOL OBJECT
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
LET’S CODE
Thanks