Arquivado em July, 2007

O Game Loop

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

1 comentário July 30th, 2007

Dica aos iniciantes

Olá, você é um iniciante? Bem vindo a bordo.

Assim como você, muitos estão nesta jornada louca, mas não se desespere. Se você é novo tem tempo de sobra para aprender tudo o que é necessário para começar, se você é velho, nunca se é tarde para aprender então vamos começar.

Programação de jogos é muito difícil hoje em dia (não que tenha sido fácil no passado) tendo em vista que a expectativa dos jogadores em relação aos jogos está cada vez maior em todas as áreas (não é mesmo?). Logo, para alguém que está começando, o importante não é se apegar demais à tecnologia, APIS, etc e sim nos CONCEITOS. Os conceitos são aplicáveis em qualquer linguagem de programação, ambiente, etc e depois que você DOMINÁ-LOS poderá desenvolver jogos para qualquer ambiente.

Nos próximos posts estou preparando uma série de tutoriais que ensinará na prática diversos conceitos importantes para o iniciante poder efetivamente fazer um jogo tais como:

  • o gameloop
  • controle de frames
  • utilização de timers (com opção para retardar uma ação)
  • manipulação avançada de sprites
  • tile engines
  • matemática básica

Se tiver alguma sugestão interessante, agora é a hora de eu saber :)

Segure-se…

Share/Save/Bookmark

2 comentários July 27th, 2007



Página 1 de 3123»


Novidades e Atualizações

Categorias

Posts Recentes

Tags

Veja Também

Comentários Recentes

Parceiros

Links


Logotipo by FOCADESIGN