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
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