Lógica de programação de
jogos
• Programas de console
• Programas de janela
• Composição de um jogo
• Main loop - Update / Draw
• Dissecando o Tetris
Programas de console
• Em geral, precisam de uma entrada para
iniciar o processo e retornar uma saída.
Programas de janela
• Em geral, são baseados em eventos.
Precisando que um evento seja acionado,
para iniciar o processamento e retornar
informação.
Composição de um jogo
• Um jogo tem tanto a necessidade de
entrada de comandos, como os
programas de console;
• Ex. Movimentação de personagens
• Quanto a de realização de eventos, como
os de janela;
• Ex. “Quando a bala atingir o jogador, faça
algo”
Main loop
• Os jogos são baseados em janelas, que
precisam ser atualizadas e redesenhadas em
ciclos rápidos, como em um desenho animado;
• Esse ciclo contínuo de atualizar e redesenhar a
tela é chamado de Main loop ou Game loop;
• Basicamente, podemos dividí-lo em duas partes:
• Atualização de todo e qualquer objeto no
jogo(posição, velocidade, situação, etc...);
• Entrada de comandos(teclado / gamepad);
• Controle de eventos;
• Animações e música;
• Condições de vitória, etc...
• Faz o controle do que deve ou não ser
desenhado na tela;
• Atualiza o buffer de vídeo com o que deve ser
desenhado na tela;
• Libera o buffer de vídeo para a tela;
Frame
É o nome dado a cada ciclo completo do
Main loop, ou seja, inicia-se no Update, e
termina logo antes do próximo Update;
•
• O frame por segundo(fps) é a velocidade
de atualização dos gráficos de um jogo;
• A maioria dos jogos procura manter um
padrão de 60 fps;
Carrega conteúdo(imagens, modelos, sons...)
Inicio do frame
Final do frame
Dissecando o Tetris
Inicialização
• Carregar as imagens dos blocos;
• Carregar as imagens de fundo de
tela;
• Inicializar variáveis(score, tempo,
level, etc...);
Update
• Atualizar posição das peças,
variáveis(tempo, score, etc...);
• Verificar e tratar colisão das peças;
• Verificar e tratar condição de vitória;
• Demais atualizações ou verificações;
Dissecando o Tetris
Draw
• Decidir o que deve ou não ser
desenhado;
• Preparar o buffer de vídeo com o
que deve ser desenhado;
• Liberar o buffer de vídeo para a tela
do monitor;
Lógica de programação de jogos
Grupo de pesquisa e desenvolvimento de jogos
Autor: Andre Petris Esteve
Edição: Zhenlei Ji
Download

Lógica de programação de jogos