O Game Loop

July 30th, 2007

Antes de começar, o leitor deve ser capaz de fazer um pequeno jogo do tipo “adivinhe o número” em modo console utilizando C, C++ ou qualquer outra linguagem de sua preferência.

Preencheu os requisitos? OK, então vamos começar por um conceito fundamental na programação: um programa geralmente constitui-se do seguinte ciclo:

Onde:

  • ENTRADA: nesta parte temos a entrada de dados no sistema que pode ser feita via teclado, joystick, sensores, etc.
  • PROCESSAMENTO: com base nos dados (existentes no sistema ou vindos da entrada), será feito o processamento, em um jogo isto significa detectar se houve ou não colisão, atualização de informações, posições, física, etc.
  • SAÍDA: depois que temos os dados prontos, podemos exibir as informações na tela, aqui temos toda a parte de conversões, apis gráficas, etc.

Um jogo nada mais é do que um aplicativo que possui este ciclo mas de uma maneira “infinita”, isto é, o processamento é efetuado mesmo que não haja uma entrada. Quer um exemplo? Quando você está jogando Mário e uma tartaruga vem em sua direção, se você ficar parado a tartaruga continuará vindo do mesmo jeito, o processamento não parou porque você não deu mais uma entrada.

A maneira como você organiza esse processamento “central” constiui o “game loop”. Depois que você dominar o game loop poderá fazer pequenas animações, etc, assim que dominar a “entrada” e “saída” e um pouco de “detecção de colisão” será capaz de fazer jogos simples.

O game loop pode ser tão simples ou tão complexo quanto quisermos. Hoje em dia é muito comum utilizar programação “multithreaded” onde cada “thread” executa uma parte deste processamento. Não entendeu? Consulte http://en.wikipedia.org/wiki/Thread_(computer_science) para maiores informações (apenas para os mais avançados, matéria punk :).

No próximo post entraremos na parte prática onde postarei com detalhes o exemplo de um game loop em C e Allegro e esmiuçaremos cada um dos processos assim começaremos a fazer jogos simples.

Lição de casa:

  • de uma pincelada no manual do allegro para verificar as funções disponíveis (sem decoreba, saiba apenas o que existe)
  • analise a implementação de game loops em outros ambientes & linguagens (não precisa compilar nada, é só tentar identificar onde se realizam as entradas, processamentos, saídas)
  • faça o download de jogos com código fonte no site www.allegro.cc e estude como eles organizam o game loop
  • faça sua própria implementação do game loop (está preparado?)

Referências e recomendações:

Até a próxima.

Dúvidas? Sugestões? Pode mandar.

Share/Save/Bookmark

Posts Relacionados

Entrada preenchida em: Tutoriais sobre programação de jogos

1 Comentário Adicione um comentário

  • 1. VSoftGames » Trigon&hellip  |  November 13th, 2007 em 2:35 pm

    [...] a parte prática, recomendo a leitura dos artigos “O game loop parte 1″, “O game loop parte 2″ e “Dicas para aprender a programar jogos [...]

Deixe um Comentário

Obrigatório

Obrigatório, hidden

HTML permitido:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Rastreie este post  |  Se inscreva para receber os comentários via RSS


Novidades e Atualizações

Categorias

Posts Recentes

Tags

Veja Também

Comentários Recentes

Parceiros

Links