SlideShare a Scribd company logo
1 of 14
Download to read offline
OPTYMALIZACJE I WYDAJNOŚĆ
W GRACH KOMPUTEROWYCH
Artur Staszczyk
VP Engineering
WWW.GANYMEDE.EU
WYDAJNOŚĆ
Coraz więcej pamięci i mocy
obliczeniowej, ale…:
• 60 FPS to ciągle wyznacznik
wydajności,
• 16 ms to ciągle czas
przeznaczony na jedną klatkę,
• coraz większe rozmiary
ekranóws
WYDAJNOŚĆ
• Draw Call jest ciągle operacją
kosztowną
• Komunikacja z kodem
natywnym ma swój narzut
TECHNIKI OPTYMALIZACJI
Pomogą nam przy:
• Wymóg określonego
rozwiązania,
• Testowanie nowej technologii,
• Optymalizacja to często
końcowy etap tworzenia gry
Optymalizacja może występować
na kilku poziomach.
TECHNIKI OPTYMALIZACJI
Optymalizujemy nie tylko czas
wykonania:
• assety (dźwięki, tekstury)
• design (UX, gameplay)
• zajętość pamięci
• rozmiar aplikacji
• …
PRZYKŁADY OPTYMALIZACJI
PROFILER
PROFILER
Bardzo dobre narzędzia
Dużo pomocnych funkcjonalności
Często są dostosowane do
konkretnej platformy
Można stworzyć własne, proste
rozwiązanie
SIMPLE PROFILER
“High Resolution Timer” - dostępny
na każdej platformie
• Performance Counter
Nieduży (stały) narzut na
wydajność
Można rozszerzyć do pracy z
wieloma wątkami
PRZYKŁADY OPTYMALIZACJI
PROCES OPTYMALIZACJI
• Algorytmy i struktury danych,
• Rozwiązania specyficzne dla
platformy i języka,
• “Low-level stuff”
TEMATY NIE PORUSZONE
Wycieki pamięci,
Zarządzanie pamięcią
Garbage collecting,
Object pooling,
Optymalizacje sceny
Atlasy tekstur
…
REFERENCES
Android high-resolution timer
iOS high-resolution timer
What every programmer should know
about memory
Artur Staszczyk: Optymalizacje i wydajność w grach komputerowych

More Related Content

Similar to Artur Staszczyk: Optymalizacje i wydajność w grach komputerowych

Budowa komputera
Budowa komputera Budowa komputera
Budowa komputera dariusz1235
 
Budowa komputera (1)
Budowa komputera (1)Budowa komputera (1)
Budowa komputera (1)dariusz1235
 
Budowa komputera (1)
Budowa komputera (1)Budowa komputera (1)
Budowa komputera (1)darek98765
 
Perełki programowania gier. Vademecum profesjonalisty. Tom 2
Perełki programowania gier. Vademecum profesjonalisty. Tom 2Perełki programowania gier. Vademecum profesjonalisty. Tom 2
Perełki programowania gier. Vademecum profesjonalisty. Tom 2Wydawnictwo Helion
 
Game Dev School 2016 - Gry i rynek mobilny
Game Dev School 2016 - Gry i rynek mobilnyGame Dev School 2016 - Gry i rynek mobilny
Game Dev School 2016 - Gry i rynek mobilnyMateusz Janczewski
 
Wykorzystanie maszyn losujących w organizacji promocji sprzedaży.
Wykorzystanie maszyn losujących w organizacji promocji sprzedaży.Wykorzystanie maszyn losujących w organizacji promocji sprzedaży.
Wykorzystanie maszyn losujących w organizacji promocji sprzedaży.HIPERCOM
 
Wykorzystanie maszyn losujących w organizacji promocji sprzedaży.
Wykorzystanie maszyn losujących w organizacji promocji sprzedaży.Wykorzystanie maszyn losujących w organizacji promocji sprzedaży.
Wykorzystanie maszyn losujących w organizacji promocji sprzedaży.Joanna Krawczyk
 
ABC sam optymalizuję komputer
ABC sam optymalizuję komputerABC sam optymalizuję komputer
ABC sam optymalizuję komputerWydawnictwo Helion
 
Tworzenie wieloplatformowych gier mobilnych
Tworzenie wieloplatformowych gier mobilnychTworzenie wieloplatformowych gier mobilnych
Tworzenie wieloplatformowych gier mobilnychGameDesire Company
 
Procesory- rozwój, stan obecny, przykładowe parametry, zakup.
Procesory- rozwój, stan obecny, przykładowe parametry, zakup.Procesory- rozwój, stan obecny, przykładowe parametry, zakup.
Procesory- rozwój, stan obecny, przykładowe parametry, zakup.MarioPL
 
Tomasz kopacz quo_vadisit
Tomasz kopacz quo_vadisitTomasz kopacz quo_vadisit
Tomasz kopacz quo_vadisitUseLab
 
Zawód: Game Designer. Jak zacząć pracę w branży?
Zawód: Game Designer. Jak zacząć pracę w branży?Zawód: Game Designer. Jak zacząć pracę w branży?
Zawód: Game Designer. Jak zacząć pracę w branży?GameDesire Company
 
Budowa Jednostki Centralnej Komputera
Budowa Jednostki Centralnej KomputeraBudowa Jednostki Centralnej Komputera
Budowa Jednostki Centralnej Komputerawandzia
 

Similar to Artur Staszczyk: Optymalizacje i wydajność w grach komputerowych (20)

Budowa komputera
Budowa komputera Budowa komputera
Budowa komputera
 
Budowa komputera (1)
Budowa komputera (1)Budowa komputera (1)
Budowa komputera (1)
 
Budowa komputera (1)
Budowa komputera (1)Budowa komputera (1)
Budowa komputera (1)
 
Perełki programowania gier. Vademecum profesjonalisty. Tom 2
Perełki programowania gier. Vademecum profesjonalisty. Tom 2Perełki programowania gier. Vademecum profesjonalisty. Tom 2
Perełki programowania gier. Vademecum profesjonalisty. Tom 2
 
Game Dev School 2016 - Gry i rynek mobilny
Game Dev School 2016 - Gry i rynek mobilnyGame Dev School 2016 - Gry i rynek mobilny
Game Dev School 2016 - Gry i rynek mobilny
 
Wykorzystanie maszyn losujących w organizacji promocji sprzedaży.
Wykorzystanie maszyn losujących w organizacji promocji sprzedaży.Wykorzystanie maszyn losujących w organizacji promocji sprzedaży.
Wykorzystanie maszyn losujących w organizacji promocji sprzedaży.
 
Wykorzystanie maszyn losujących w organizacji promocji sprzedaży.
Wykorzystanie maszyn losujących w organizacji promocji sprzedaży.Wykorzystanie maszyn losujących w organizacji promocji sprzedaży.
Wykorzystanie maszyn losujących w organizacji promocji sprzedaży.
 
Sposoby na Hardware
Sposoby na HardwareSposoby na Hardware
Sposoby na Hardware
 
Zasady konfiguracji zestawów komputerowych
Zasady konfiguracji zestawów komputerowychZasady konfiguracji zestawów komputerowych
Zasady konfiguracji zestawów komputerowych
 
Rozbudowa komputerów PC
Rozbudowa komputerów PCRozbudowa komputerów PC
Rozbudowa komputerów PC
 
ABC sam optymalizuję komputer
ABC sam optymalizuję komputerABC sam optymalizuję komputer
ABC sam optymalizuję komputer
 
Developers Club 2003
Developers Club 2003Developers Club 2003
Developers Club 2003
 
Tworzenie wieloplatformowych gier mobilnych
Tworzenie wieloplatformowych gier mobilnychTworzenie wieloplatformowych gier mobilnych
Tworzenie wieloplatformowych gier mobilnych
 
Budowa komputera
Budowa komputeraBudowa komputera
Budowa komputera
 
Budowa komputera
Budowa komputeraBudowa komputera
Budowa komputera
 
Budowa Komputera
Budowa KomputeraBudowa Komputera
Budowa Komputera
 
Procesory- rozwój, stan obecny, przykładowe parametry, zakup.
Procesory- rozwój, stan obecny, przykładowe parametry, zakup.Procesory- rozwój, stan obecny, przykładowe parametry, zakup.
Procesory- rozwój, stan obecny, przykładowe parametry, zakup.
 
Tomasz kopacz quo_vadisit
Tomasz kopacz quo_vadisitTomasz kopacz quo_vadisit
Tomasz kopacz quo_vadisit
 
Zawód: Game Designer. Jak zacząć pracę w branży?
Zawód: Game Designer. Jak zacząć pracę w branży?Zawód: Game Designer. Jak zacząć pracę w branży?
Zawód: Game Designer. Jak zacząć pracę w branży?
 
Budowa Jednostki Centralnej Komputera
Budowa Jednostki Centralnej KomputeraBudowa Jednostki Centralnej Komputera
Budowa Jednostki Centralnej Komputera
 

More from GameDesire Academy

Maciej Węglarczyk: Wielowymiarowy świat layoutów
Maciej Węglarczyk: Wielowymiarowy świat layoutówMaciej Węglarczyk: Wielowymiarowy świat layoutów
Maciej Węglarczyk: Wielowymiarowy świat layoutówGameDesire Academy
 
Zbyszek Rzepka: GameDev od zaplecza
Zbyszek Rzepka: GameDev od zapleczaZbyszek Rzepka: GameDev od zaplecza
Zbyszek Rzepka: GameDev od zapleczaGameDesire Academy
 
Michał Witkowski: Analiza zachowania graczy, jak zbudować grę w oparciu o dane?
Michał Witkowski: Analiza zachowania graczy, jak zbudować grę w oparciu o dane?Michał Witkowski: Analiza zachowania graczy, jak zbudować grę w oparciu o dane?
Michał Witkowski: Analiza zachowania graczy, jak zbudować grę w oparciu o dane?GameDesire Academy
 
Konrad Gadzina: Visual scripting w Unity
Konrad Gadzina: Visual scripting w UnityKonrad Gadzina: Visual scripting w Unity
Konrad Gadzina: Visual scripting w UnityGameDesire Academy
 
Stan Just: Po co nam producent
Stan Just: Po co nam producentStan Just: Po co nam producent
Stan Just: Po co nam producentGameDesire Academy
 
Michał Azarewicz: O cinematikach słów kilka, czyli z czym to się je.
Michał Azarewicz: O cinematikach słów kilka, czyli z czym to się je.Michał Azarewicz: O cinematikach słów kilka, czyli z czym to się je.
Michał Azarewicz: O cinematikach słów kilka, czyli z czym to się je.GameDesire Academy
 
Jan "Sou Shibo" Adryański - Złapać streamera za nogi, czyli jak zmotywować st...
Jan "Sou Shibo" Adryański - Złapać streamera za nogi, czyli jak zmotywować st...Jan "Sou Shibo" Adryański - Złapać streamera za nogi, czyli jak zmotywować st...
Jan "Sou Shibo" Adryański - Złapać streamera za nogi, czyli jak zmotywować st...GameDesire Academy
 
Wojtek Mroczek: Jak nie sprzedać swojej gry - 10 prostych kroków, czyli błędy...
Wojtek Mroczek: Jak nie sprzedać swojej gry - 10 prostych kroków, czyli błędy...Wojtek Mroczek: Jak nie sprzedać swojej gry - 10 prostych kroków, czyli błędy...
Wojtek Mroczek: Jak nie sprzedać swojej gry - 10 prostych kroków, czyli błędy...GameDesire Academy
 
Kacper Pitala: Filmik mówi więcej niż tysiąc screenów - jak przygotować video...
Kacper Pitala: Filmik mówi więcej niż tysiąc screenów - jak przygotować video...Kacper Pitala: Filmik mówi więcej niż tysiąc screenów - jak przygotować video...
Kacper Pitala: Filmik mówi więcej niż tysiąc screenów - jak przygotować video...GameDesire Academy
 
Natalia Dołżycka: Jak promować grę indie bez rozbijania banku?
Natalia Dołżycka: Jak promować grę indie bez rozbijania banku?Natalia Dołżycka: Jak promować grę indie bez rozbijania banku?
Natalia Dołżycka: Jak promować grę indie bez rozbijania banku?GameDesire Academy
 
Michał Marcinkowski: King Arthur's Gold Postmortem
Michał Marcinkowski: King Arthur's Gold PostmortemMichał Marcinkowski: King Arthur's Gold Postmortem
Michał Marcinkowski: King Arthur's Gold PostmortemGameDesire Academy
 
Łukasz Malik: Trudne życie indyka
Łukasz Malik: Trudne życie indykaŁukasz Malik: Trudne życie indyka
Łukasz Malik: Trudne życie indykaGameDesire Academy
 
Jakub Wójcik: Development w ręce ludu
Jakub Wójcik: Development w ręce luduJakub Wójcik: Development w ręce ludu
Jakub Wójcik: Development w ręce luduGameDesire Academy
 
Tomasz Kaczmarek: Zupa z indyka dla pracownika korpo(racji)
Tomasz Kaczmarek: Zupa z indyka dla pracownika korpo(racji)Tomasz Kaczmarek: Zupa z indyka dla pracownika korpo(racji)
Tomasz Kaczmarek: Zupa z indyka dla pracownika korpo(racji)GameDesire Academy
 
Jakub Lisiński: Czynnik ludzki w procesie tworzenia gry
Jakub Lisiński: Czynnik ludzki w procesie tworzenia gryJakub Lisiński: Czynnik ludzki w procesie tworzenia gry
Jakub Lisiński: Czynnik ludzki w procesie tworzenia gryGameDesire Academy
 
Krzysztof Bińczak: Wprowadzenie do interaktywnego audio
Krzysztof Bińczak: Wprowadzenie do interaktywnego audio Krzysztof Bińczak: Wprowadzenie do interaktywnego audio
Krzysztof Bińczak: Wprowadzenie do interaktywnego audio GameDesire Academy
 
Konrad Gadzina: Inspiruj i daj się zainspirować!
Konrad Gadzina: Inspiruj i daj się zainspirować! Konrad Gadzina: Inspiruj i daj się zainspirować!
Konrad Gadzina: Inspiruj i daj się zainspirować! GameDesire Academy
 
Ulyana Krystaszek: Mam pomysł na grę… i co dalej?
Ulyana Krystaszek: Mam pomysł na grę… i co dalej?Ulyana Krystaszek: Mam pomysł na grę… i co dalej?
Ulyana Krystaszek: Mam pomysł na grę… i co dalej?GameDesire Academy
 
Krzysztof Indyk: Jak przetwarzać duże ilości danych? Wprowadzenie do Hadoopa.
Krzysztof Indyk: Jak przetwarzać duże ilości danych? Wprowadzenie do Hadoopa.Krzysztof Indyk: Jak przetwarzać duże ilości danych? Wprowadzenie do Hadoopa.
Krzysztof Indyk: Jak przetwarzać duże ilości danych? Wprowadzenie do Hadoopa.GameDesire Academy
 
Tomasz Świerszcz: Moja pierwsza gra. Organizacja pracy, potrzebna wiedza, nar...
Tomasz Świerszcz: Moja pierwsza gra. Organizacja pracy, potrzebna wiedza, nar...Tomasz Świerszcz: Moja pierwsza gra. Organizacja pracy, potrzebna wiedza, nar...
Tomasz Świerszcz: Moja pierwsza gra. Organizacja pracy, potrzebna wiedza, nar...GameDesire Academy
 

More from GameDesire Academy (20)

Maciej Węglarczyk: Wielowymiarowy świat layoutów
Maciej Węglarczyk: Wielowymiarowy świat layoutówMaciej Węglarczyk: Wielowymiarowy świat layoutów
Maciej Węglarczyk: Wielowymiarowy świat layoutów
 
Zbyszek Rzepka: GameDev od zaplecza
Zbyszek Rzepka: GameDev od zapleczaZbyszek Rzepka: GameDev od zaplecza
Zbyszek Rzepka: GameDev od zaplecza
 
Michał Witkowski: Analiza zachowania graczy, jak zbudować grę w oparciu o dane?
Michał Witkowski: Analiza zachowania graczy, jak zbudować grę w oparciu o dane?Michał Witkowski: Analiza zachowania graczy, jak zbudować grę w oparciu o dane?
Michał Witkowski: Analiza zachowania graczy, jak zbudować grę w oparciu o dane?
 
Konrad Gadzina: Visual scripting w Unity
Konrad Gadzina: Visual scripting w UnityKonrad Gadzina: Visual scripting w Unity
Konrad Gadzina: Visual scripting w Unity
 
Stan Just: Po co nam producent
Stan Just: Po co nam producentStan Just: Po co nam producent
Stan Just: Po co nam producent
 
Michał Azarewicz: O cinematikach słów kilka, czyli z czym to się je.
Michał Azarewicz: O cinematikach słów kilka, czyli z czym to się je.Michał Azarewicz: O cinematikach słów kilka, czyli z czym to się je.
Michał Azarewicz: O cinematikach słów kilka, czyli z czym to się je.
 
Jan "Sou Shibo" Adryański - Złapać streamera za nogi, czyli jak zmotywować st...
Jan "Sou Shibo" Adryański - Złapać streamera za nogi, czyli jak zmotywować st...Jan "Sou Shibo" Adryański - Złapać streamera za nogi, czyli jak zmotywować st...
Jan "Sou Shibo" Adryański - Złapać streamera za nogi, czyli jak zmotywować st...
 
Wojtek Mroczek: Jak nie sprzedać swojej gry - 10 prostych kroków, czyli błędy...
Wojtek Mroczek: Jak nie sprzedać swojej gry - 10 prostych kroków, czyli błędy...Wojtek Mroczek: Jak nie sprzedać swojej gry - 10 prostych kroków, czyli błędy...
Wojtek Mroczek: Jak nie sprzedać swojej gry - 10 prostych kroków, czyli błędy...
 
Kacper Pitala: Filmik mówi więcej niż tysiąc screenów - jak przygotować video...
Kacper Pitala: Filmik mówi więcej niż tysiąc screenów - jak przygotować video...Kacper Pitala: Filmik mówi więcej niż tysiąc screenów - jak przygotować video...
Kacper Pitala: Filmik mówi więcej niż tysiąc screenów - jak przygotować video...
 
Natalia Dołżycka: Jak promować grę indie bez rozbijania banku?
Natalia Dołżycka: Jak promować grę indie bez rozbijania banku?Natalia Dołżycka: Jak promować grę indie bez rozbijania banku?
Natalia Dołżycka: Jak promować grę indie bez rozbijania banku?
 
Michał Marcinkowski: King Arthur's Gold Postmortem
Michał Marcinkowski: King Arthur's Gold PostmortemMichał Marcinkowski: King Arthur's Gold Postmortem
Michał Marcinkowski: King Arthur's Gold Postmortem
 
Łukasz Malik: Trudne życie indyka
Łukasz Malik: Trudne życie indykaŁukasz Malik: Trudne życie indyka
Łukasz Malik: Trudne życie indyka
 
Jakub Wójcik: Development w ręce ludu
Jakub Wójcik: Development w ręce luduJakub Wójcik: Development w ręce ludu
Jakub Wójcik: Development w ręce ludu
 
Tomasz Kaczmarek: Zupa z indyka dla pracownika korpo(racji)
Tomasz Kaczmarek: Zupa z indyka dla pracownika korpo(racji)Tomasz Kaczmarek: Zupa z indyka dla pracownika korpo(racji)
Tomasz Kaczmarek: Zupa z indyka dla pracownika korpo(racji)
 
Jakub Lisiński: Czynnik ludzki w procesie tworzenia gry
Jakub Lisiński: Czynnik ludzki w procesie tworzenia gryJakub Lisiński: Czynnik ludzki w procesie tworzenia gry
Jakub Lisiński: Czynnik ludzki w procesie tworzenia gry
 
Krzysztof Bińczak: Wprowadzenie do interaktywnego audio
Krzysztof Bińczak: Wprowadzenie do interaktywnego audio Krzysztof Bińczak: Wprowadzenie do interaktywnego audio
Krzysztof Bińczak: Wprowadzenie do interaktywnego audio
 
Konrad Gadzina: Inspiruj i daj się zainspirować!
Konrad Gadzina: Inspiruj i daj się zainspirować! Konrad Gadzina: Inspiruj i daj się zainspirować!
Konrad Gadzina: Inspiruj i daj się zainspirować!
 
Ulyana Krystaszek: Mam pomysł na grę… i co dalej?
Ulyana Krystaszek: Mam pomysł na grę… i co dalej?Ulyana Krystaszek: Mam pomysł na grę… i co dalej?
Ulyana Krystaszek: Mam pomysł na grę… i co dalej?
 
Krzysztof Indyk: Jak przetwarzać duże ilości danych? Wprowadzenie do Hadoopa.
Krzysztof Indyk: Jak przetwarzać duże ilości danych? Wprowadzenie do Hadoopa.Krzysztof Indyk: Jak przetwarzać duże ilości danych? Wprowadzenie do Hadoopa.
Krzysztof Indyk: Jak przetwarzać duże ilości danych? Wprowadzenie do Hadoopa.
 
Tomasz Świerszcz: Moja pierwsza gra. Organizacja pracy, potrzebna wiedza, nar...
Tomasz Świerszcz: Moja pierwsza gra. Organizacja pracy, potrzebna wiedza, nar...Tomasz Świerszcz: Moja pierwsza gra. Organizacja pracy, potrzebna wiedza, nar...
Tomasz Świerszcz: Moja pierwsza gra. Organizacja pracy, potrzebna wiedza, nar...
 

Artur Staszczyk: Optymalizacje i wydajność w grach komputerowych