SlideShare ist ein Scribd-Unternehmen logo
1 von 20
Thursday, March 24, 2011
DISCLAIMER
     • Esta apresentação é baseada nos meus estudos
       sobre programação de jogos. Qualquer
       disparidade com autor X ou Y ou design Z ou W
       ou engine A ou B é por sua conta e risco. Mas o
       vocabulário aqui é o mesmo dos outros caras.




Thursday, March 24, 2011
MISSÃO 0
     • Eu sei programar horrores




     E jogo? #comofas?




Thursday, March 24, 2011
A PREPARAÇÃO
     • Gráficos




     • Física




Thursday, March 24, 2011
A PREPARAÇÃO
     • Recursos


                                 iled Map Editor


     • Som




Thursday, March 24, 2011
GAME ENGINE
     • Game engine mínima




                                              g
                                         Lo




Thursday, March 24, 2011
SECRET OF MANA
     • Segredos secretos nunca dantes contados:

     •   Game loop
     •   Algoritmo do pintor
     •   Cenas
     •   Colisões




Thursday, March 24, 2011
GAME LOOP
     • Jogos são ilusões
                                                             Pinta na tela o resultado final
                       while (g_renderManager->update())     do frame atual
                         {
                                                             Verifica se há eventos de
                           	
    g_sceneManager->update();   cena: telas de game over,
                                                             HUD, outros

                                                              Faz update da animação e
                       	
        entityManager->update();     posição das entidades com os
                                                              resultados do frame anterior.

                       	
        psx->update();               Resolve a física dos objetos,
                                                              detecta colisão e atualiza
                                                              valores das posições.
                       	
        inputManager->update();
                            }                                 Verifica input feito pelo jogador
                                                              e deixa de prontidão outros
                                                              blocos para o próximo frame.




Thursday, March 24, 2011
GAME LOOP
     • Frame




Thursday, March 24, 2011
RENDERIZAÇÃO
     • Algoritmo do pintor e z-order




Thursday, March 24, 2011
FÍSICA
     • Colisão ↔ Física




Thursday, March 24, 2011
MISSÃO 0
     • Fiz N10 CRUDs, quero fazer o novo …




Thursday, March 24, 2011
TÓPICOS DE PROGRAMAÇÃO DE
                           JOGOS
     •   Se você não foi besta, i.e. usou uma game engine, e está por dentro do
         vocabulário básico, agora já pode usar seus conhecimentos de programação
         para fazer a lógica do jogo

                           while (g_renderManager->update())
                             {
                               	
     g_sceneManager->update();


                           	
         entityManager->update();


                           	
         psx->update();


                           	
         inputManager->update();
                                }




Thursday, March 24, 2011
TÓPICOS DE PROGRAMAÇÃO DE
                           JOGOS
     • Polling & Event Listeners

     • Design Patterns
         Factory

     • Física




Thursday, March 24, 2011
TÓPICOS DE PROGRAMAÇÃO DE
                          JOGOS II
     • Eventos
     • Filas
           – frame by frame
           – Listas
                 • std::vector<T>
                 • std::list<T>




Thursday, March 24, 2011
TÓPICOS DE PROGRAMAÇÃO DE
                         JOGOS III

                               • Eventos
                               • Filas
                                 – frame by frame
                                 – Listas
                                    • std::vector<T>
                                    • std::list<T>




Thursday, March 24, 2011
TÓPICOS DE PROGRAMAÇÃO DE
                         JOGOS IV
     • A Design Pattern Factory




Thursday, March 24, 2011
Resumo
     • De sistemas web, etc → Games

           – Game Engine
                 • Escolher número de dimensões
                 • Escolher plataforma
                 • Stick to one




Thursday, March 24, 2011
Resumo
     • De sistemas web, etc → Games

           – Listas, filas, vetores
           – Polling & event listeners
           – Design Patterns: Singleton, Factory e outras.




Thursday, March 24, 2011
Jabá




Thursday, March 24, 2011

Weitere ähnliche Inhalte

Andere mochten auch

Composing Collaboration
Composing CollaborationComposing Collaboration
Composing CollaborationCollabforge
 
See new york city in one day
See new york city in one daySee new york city in one day
See new york city in one dayCustom Hypnosis
 
moon and mercury
moon and mercurymoon and mercury
moon and mercuryBob Smullen
 
Giant Knife Guinness Pressemitteilung
Giant Knife Guinness PressemitteilungGiant Knife Guinness Pressemitteilung
Giant Knife Guinness Pressemitteilungdraco2111
 
Kreisverkehr
KreisverkehrKreisverkehr
Kreisverkehrdraco2111
 
Finde Die 7 Fehler
Finde Die 7 FehlerFinde Die 7 Fehler
Finde Die 7 Fehlerdraco2111
 
RON HOWARD’S UNIVERSAL PICTURES MOVIE "RUSH" CHRONICLING THE RIVALRY BETWEEN ...
RON HOWARD’S UNIVERSAL PICTURES MOVIE "RUSH" CHRONICLING THE RIVALRY BETWEEN ...RON HOWARD’S UNIVERSAL PICTURES MOVIE "RUSH" CHRONICLING THE RIVALRY BETWEEN ...
RON HOWARD’S UNIVERSAL PICTURES MOVIE "RUSH" CHRONICLING THE RIVALRY BETWEEN ...GLOBAL HEAVYLIFT HOLDINGS
 
Composing Communities
Composing CommunitiesComposing Communities
Composing CommunitiesCollabforge
 
Building your employer brand online
Building your employer brand onlineBuilding your employer brand online
Building your employer brand onlineJared Woods
 

Andere mochten auch (14)

Composing Collaboration
Composing CollaborationComposing Collaboration
Composing Collaboration
 
See new york city in one day
See new york city in one daySee new york city in one day
See new york city in one day
 
moon and mercury
moon and mercurymoon and mercury
moon and mercury
 
Giant Knife Guinness Pressemitteilung
Giant Knife Guinness PressemitteilungGiant Knife Guinness Pressemitteilung
Giant Knife Guinness Pressemitteilung
 
Kreisverkehr
KreisverkehrKreisverkehr
Kreisverkehr
 
produccion y desarrollo sustentable
produccion y desarrollo sustentableproduccion y desarrollo sustentable
produccion y desarrollo sustentable
 
Blondine
BlondineBlondine
Blondine
 
A Onda Rosa-Choque
A Onda Rosa-ChoqueA Onda Rosa-Choque
A Onda Rosa-Choque
 
Finde Die 7 Fehler
Finde Die 7 FehlerFinde Die 7 Fehler
Finde Die 7 Fehler
 
RON HOWARD’S UNIVERSAL PICTURES MOVIE "RUSH" CHRONICLING THE RIVALRY BETWEEN ...
RON HOWARD’S UNIVERSAL PICTURES MOVIE "RUSH" CHRONICLING THE RIVALRY BETWEEN ...RON HOWARD’S UNIVERSAL PICTURES MOVIE "RUSH" CHRONICLING THE RIVALRY BETWEEN ...
RON HOWARD’S UNIVERSAL PICTURES MOVIE "RUSH" CHRONICLING THE RIVALRY BETWEEN ...
 
Nice
NiceNice
Nice
 
Composing Communities
Composing CommunitiesComposing Communities
Composing Communities
 
Building your employer brand online
Building your employer brand onlineBuilding your employer brand online
Building your employer brand online
 
Ohne Worte
Ohne WorteOhne Worte
Ohne Worte
 

Mehr von Rodrigo Campos

Velocity Conference NYC 2014 - Real World DevOps
Velocity Conference NYC 2014 - Real World DevOpsVelocity Conference NYC 2014 - Real World DevOps
Velocity Conference NYC 2014 - Real World DevOpsRodrigo Campos
 
DevOps no mundo real - QCON 2014
DevOps no mundo real - QCON 2014DevOps no mundo real - QCON 2014
DevOps no mundo real - QCON 2014Rodrigo Campos
 
7Masters Webops in the Cloud
7Masters Webops in the Cloud7Masters Webops in the Cloud
7Masters Webops in the CloudRodrigo Campos
 
Otimização holistica de ambiente computacional
Otimização holistica de ambiente computacionalOtimização holistica de ambiente computacional
Otimização holistica de ambiente computacionalRodrigo Campos
 
Desempenho e Escalabilidade de Banco de Dados em ambiente x86
Desempenho e Escalabilidade de Banco de Dados em ambiente x86Desempenho e Escalabilidade de Banco de Dados em ambiente x86
Desempenho e Escalabilidade de Banco de Dados em ambiente x86Rodrigo Campos
 
Mistério ou tecnologia? Paralelismo!
Mistério ou tecnologia? Paralelismo!Mistério ou tecnologia? Paralelismo!
Mistério ou tecnologia? Paralelismo!Rodrigo Campos
 
z/VM Performance Analysis
z/VM Performance Analysisz/VM Performance Analysis
z/VM Performance AnalysisRodrigo Campos
 
Sistemas de proteção de perímetro
Sistemas de proteção de perímetroSistemas de proteção de perímetro
Sistemas de proteção de perímetroRodrigo Campos
 
Devops at Walmart GeC Brazil
Devops at Walmart GeC BrazilDevops at Walmart GeC Brazil
Devops at Walmart GeC BrazilRodrigo Campos
 
Disk IO Benchmarking in shared multi-tenant environments
Disk IO Benchmarking in shared multi-tenant environmentsDisk IO Benchmarking in shared multi-tenant environments
Disk IO Benchmarking in shared multi-tenant environmentsRodrigo Campos
 
Cloud Computing Oportunidades e Desafios
Cloud Computing Oportunidades e DesafiosCloud Computing Oportunidades e Desafios
Cloud Computing Oportunidades e DesafiosRodrigo Campos
 
The good, the bad and the big... data
The good, the bad and the big... dataThe good, the bad and the big... data
The good, the bad and the big... dataRodrigo Campos
 
CMG 2012 - Tuning where it matters - Gerry Tuddenham
CMG 2012 - Tuning where it matters - Gerry TuddenhamCMG 2012 - Tuning where it matters - Gerry Tuddenham
CMG 2012 - Tuning where it matters - Gerry TuddenhamRodrigo Campos
 
A Consumerização da TI e o Efeito BYOT
A Consumerização da TI e o Efeito BYOTA Consumerização da TI e o Efeito BYOT
A Consumerização da TI e o Efeito BYOTRodrigo Campos
 
CMG Brasil 2012 - Uso de Lines nos z196
CMG Brasil 2012 - Uso de Lines nos z196CMG Brasil 2012 - Uso de Lines nos z196
CMG Brasil 2012 - Uso de Lines nos z196Rodrigo Campos
 
Racionalização e Otimização de Energia em Computação na Nuvem
Racionalização e Otimização de Energia em Computação na NuvemRacionalização e Otimização de Energia em Computação na Nuvem
Racionalização e Otimização de Energia em Computação na NuvemRodrigo Campos
 
SDN - Openflow + OpenVSwitch + Quantum
SDN - Openflow + OpenVSwitch + QuantumSDN - Openflow + OpenVSwitch + Quantum
SDN - Openflow + OpenVSwitch + QuantumRodrigo Campos
 

Mehr von Rodrigo Campos (20)

Velocity Conference NYC 2014 - Real World DevOps
Velocity Conference NYC 2014 - Real World DevOpsVelocity Conference NYC 2014 - Real World DevOps
Velocity Conference NYC 2014 - Real World DevOps
 
DevOps no mundo real - QCON 2014
DevOps no mundo real - QCON 2014DevOps no mundo real - QCON 2014
DevOps no mundo real - QCON 2014
 
7Masters Webops in the Cloud
7Masters Webops in the Cloud7Masters Webops in the Cloud
7Masters Webops in the Cloud
 
14 guendert pres
14 guendert pres14 guendert pres
14 guendert pres
 
Large and Giant Pages
Large and Giant PagesLarge and Giant Pages
Large and Giant Pages
 
Otimização holistica de ambiente computacional
Otimização holistica de ambiente computacionalOtimização holistica de ambiente computacional
Otimização holistica de ambiente computacional
 
Desempenho e Escalabilidade de Banco de Dados em ambiente x86
Desempenho e Escalabilidade de Banco de Dados em ambiente x86Desempenho e Escalabilidade de Banco de Dados em ambiente x86
Desempenho e Escalabilidade de Banco de Dados em ambiente x86
 
13 coelho final-pres
13 coelho final-pres13 coelho final-pres
13 coelho final-pres
 
Mistério ou tecnologia? Paralelismo!
Mistério ou tecnologia? Paralelismo!Mistério ou tecnologia? Paralelismo!
Mistério ou tecnologia? Paralelismo!
 
z/VM Performance Analysis
z/VM Performance Analysisz/VM Performance Analysis
z/VM Performance Analysis
 
Sistemas de proteção de perímetro
Sistemas de proteção de perímetroSistemas de proteção de perímetro
Sistemas de proteção de perímetro
 
Devops at Walmart GeC Brazil
Devops at Walmart GeC BrazilDevops at Walmart GeC Brazil
Devops at Walmart GeC Brazil
 
Disk IO Benchmarking in shared multi-tenant environments
Disk IO Benchmarking in shared multi-tenant environmentsDisk IO Benchmarking in shared multi-tenant environments
Disk IO Benchmarking in shared multi-tenant environments
 
Cloud Computing Oportunidades e Desafios
Cloud Computing Oportunidades e DesafiosCloud Computing Oportunidades e Desafios
Cloud Computing Oportunidades e Desafios
 
The good, the bad and the big... data
The good, the bad and the big... dataThe good, the bad and the big... data
The good, the bad and the big... data
 
CMG 2012 - Tuning where it matters - Gerry Tuddenham
CMG 2012 - Tuning where it matters - Gerry TuddenhamCMG 2012 - Tuning where it matters - Gerry Tuddenham
CMG 2012 - Tuning where it matters - Gerry Tuddenham
 
A Consumerização da TI e o Efeito BYOT
A Consumerização da TI e o Efeito BYOTA Consumerização da TI e o Efeito BYOT
A Consumerização da TI e o Efeito BYOT
 
CMG Brasil 2012 - Uso de Lines nos z196
CMG Brasil 2012 - Uso de Lines nos z196CMG Brasil 2012 - Uso de Lines nos z196
CMG Brasil 2012 - Uso de Lines nos z196
 
Racionalização e Otimização de Energia em Computação na Nuvem
Racionalização e Otimização de Energia em Computação na NuvemRacionalização e Otimização de Energia em Computação na Nuvem
Racionalização e Otimização de Energia em Computação na Nuvem
 
SDN - Openflow + OpenVSwitch + Quantum
SDN - Openflow + OpenVSwitch + QuantumSDN - Openflow + OpenVSwitch + Quantum
SDN - Openflow + OpenVSwitch + Quantum
 

Game Engine Fundamentals

  • 2. DISCLAIMER • Esta apresentação é baseada nos meus estudos sobre programação de jogos. Qualquer disparidade com autor X ou Y ou design Z ou W ou engine A ou B é por sua conta e risco. Mas o vocabulário aqui é o mesmo dos outros caras. Thursday, March 24, 2011
  • 3. MISSÃO 0 • Eu sei programar horrores E jogo? #comofas? Thursday, March 24, 2011
  • 4. A PREPARAÇÃO • Gráficos • Física Thursday, March 24, 2011
  • 5. A PREPARAÇÃO • Recursos iled Map Editor • Som Thursday, March 24, 2011
  • 6. GAME ENGINE • Game engine mínima g Lo Thursday, March 24, 2011
  • 7. SECRET OF MANA • Segredos secretos nunca dantes contados: • Game loop • Algoritmo do pintor • Cenas • Colisões Thursday, March 24, 2011
  • 8. GAME LOOP • Jogos são ilusões Pinta na tela o resultado final while (g_renderManager->update()) do frame atual { Verifica se há eventos de g_sceneManager->update(); cena: telas de game over, HUD, outros Faz update da animação e entityManager->update(); posição das entidades com os resultados do frame anterior. psx->update(); Resolve a física dos objetos, detecta colisão e atualiza valores das posições. inputManager->update(); } Verifica input feito pelo jogador e deixa de prontidão outros blocos para o próximo frame. Thursday, March 24, 2011
  • 9. GAME LOOP • Frame Thursday, March 24, 2011
  • 10. RENDERIZAÇÃO • Algoritmo do pintor e z-order Thursday, March 24, 2011
  • 11. FÍSICA • Colisão ↔ Física Thursday, March 24, 2011
  • 12. MISSÃO 0 • Fiz N10 CRUDs, quero fazer o novo … Thursday, March 24, 2011
  • 13. TÓPICOS DE PROGRAMAÇÃO DE JOGOS • Se você não foi besta, i.e. usou uma game engine, e está por dentro do vocabulário básico, agora já pode usar seus conhecimentos de programação para fazer a lógica do jogo while (g_renderManager->update()) { g_sceneManager->update(); entityManager->update(); psx->update(); inputManager->update(); } Thursday, March 24, 2011
  • 14. TÓPICOS DE PROGRAMAÇÃO DE JOGOS • Polling & Event Listeners • Design Patterns Factory • Física Thursday, March 24, 2011
  • 15. TÓPICOS DE PROGRAMAÇÃO DE JOGOS II • Eventos • Filas – frame by frame – Listas • std::vector<T> • std::list<T> Thursday, March 24, 2011
  • 16. TÓPICOS DE PROGRAMAÇÃO DE JOGOS III • Eventos • Filas – frame by frame – Listas • std::vector<T> • std::list<T> Thursday, March 24, 2011
  • 17. TÓPICOS DE PROGRAMAÇÃO DE JOGOS IV • A Design Pattern Factory Thursday, March 24, 2011
  • 18. Resumo • De sistemas web, etc → Games – Game Engine • Escolher número de dimensões • Escolher plataforma • Stick to one Thursday, March 24, 2011
  • 19. Resumo • De sistemas web, etc → Games – Listas, filas, vetores – Polling & event listeners – Design Patterns: Singleton, Factory e outras. Thursday, March 24, 2011