conceitos básicos sobre a programação de jogos em Java

Nos nossos dias, na área de desenvolvimento de jogos, é comum ouvir-se o termo game engine, tanto por parte de designers como entre os desenvolvedores de jogos. Mesmo aqui no INFOmoz, uma das palavras-chave mais populares é game engine. Mas o que será exactamente game engine? Para que serve uma game engine? Quais as bases para a criação de um jogo em Java ou outra linguagem de programação qualquer? São algumas questões que tentaremos analisar neste artigo.

Game Engine tem a ver com todo o processo de desenvolvimento do jogo

Game Engine tem a ver com todo o processo de desenvolvimento do jogo

Muitas pessoas cometem o erro de pensar que um game engine(motor de jogo, em português) é algo relacionado apenas com a capacidade de renderização gráfica de um jogo em particular. Na verdade, game engine é realmente o motor de um jogo, no verdadeiro sentido da palavra, cobrindo todas as tarefas para a criação daquele produto interactivo que nós chamamos de jogo. Ver um jogo como uma máquina é uma forma interessante de interpretar este fenómeno do enterteinmento que revolucionou o mundo desde os meados do século passado e promete mudar a forma como nós interagimos com a realidade no futuro.De uma forma geral, um jogo é um conjunto de tarefas específicas que se repetem em um determinado conjunto de dados para gerar um enterteinmento interactivo. Definição difícil néh! Aconselho que visite a série Evolução do Videogame, que está a ser produzida por mim, aqui no INFOmoz. Este artigo pretende introduzir os aspectos mais básicos relacionados a programação de jogos.Se você já é um desenvolvedor de jogos com alguma experiência, considere apenas compartilhar este artigo com os seus amigos, no Twitter, Facebook ou em outras redes socias. Deixe um comentário também a falar da sua experiência com desenvolvimento de jogos, para ajudar os iniciantes na área, como eu!

Estrutura básica de um jogo

Uma das tarefas mais complicadas para programadores que decidem se aventurar na área de desenvolvimento de jogos é, sem dúvida, organizar a execução de todas as tarefas envolvidas no desenvolvimento de um jogo. Na realidade, você pode ler vários tutoriais relacionados á API que pretende usar, fazer alguns exemplos que encontrar por ai, mas estes tutoriais dificilmente te darão o segredo básico sobre onde colocar cada ferramenta para você ter aquele jogo que você deseja. Todos os jogos parecem simples de desenvolver no começo, mas o nível de dificuldade vai aumentando a medida que decidimos acrescentar as funcionalidades neste jogo. Muitos jogos são desenvolvidos usando a mesma lógica no início, tendo as mesmas formas de apresentação visual e detalhes iniciais. Num nível mais alto de organização do processo de desenvolvimento de um jogo de computador, podemos agrupar as tarefas do jogo em 3 componentes principais, que serão requisitados durante a execução do jogo. Estas fases podem ser chamadas de Fase de Inicialização, Fase do Jogo em Acção e Fase de Finalização. Basta entender as responsabilidades de cada uma das fases, para entendermos todo o processo por detrás dos jogos.

Fase de Inicialização do Jogo

Durante a Fase de Inicialização do Jogo, vários elementos necessários para o jogo são carregados para a memória. Estes elementos incluem imagens, sons, arquivos de dados e todos os outros elementos que serão necessários para o jogo ser executado. Todas as classes que serão usadas no jogo devem ser instanciadas e preparadas para uso nesta fase. Este processo chama-se caching e é muito comum em jogos criados para plataformas mais limitadas para jogos, como o PC. Carregar dados do disco durante a execução do jogo pode causar problemas de performance, por isso é sempre aconselhável fazer o cache dos elementos necessários na memória, para futuras necessidades. Plataformas mais específicas para jogos oferecem funcionalidades muito melhores que o caching para esta tarefa.

Fase de Finalização do Jogo

A fase de finalização do jogo faz exactamente o contrário da fase de inicialização do jogo, que é remover todos os elementos da memória, para garantir que a execução do jogo seja terminado com sucesso. Em Java, o programador não precisa se preoupar com a gestão da memória, mas quando se programam jogos em particular, existem outros aspectos a ter em consideração na hora da finalização, como escrever logs, gravar preferências dos usuários, recordes alcançados e todos os elementos que serão usados na próxima execução do jogo.

Fase de Execução do Jogo

Deixamos esta fase para o fim, por ser uma fase um pouco mais complicada que as anteriores. A fase de execução do jogo consiste basicamente em controlar o conceito fundamental da programação de um jogo, chamado ciclo do jogo, ou game loop, na língua dos GRINGOS. O ciclo do jogo é basicamente um ciclo normal, que executa as tarefas do jogo repetidamente até que o utilizador decida terminar o jogo ou o jogo termine por outro motivo qualquer.Basicamente, um ciclo do jogo é composto por 4 fases, assim como as Applets em Java, que vimos a algum tempo atrás aqui no INFOmoz, ou então o ciclo geral da animação. Estas fases são: Ler a opção do utilizador, processar esta informação, actualizar o jogo de acordo com esta informação e exibir o resultado na tela.Em termos de algoritmos, poderiamos representar este ciclo da seguinte maneira:

enquanto o jogo não termina:1. Ler o dado do usuário2. Processar3. Actualizar o Jogo4. Exibir alterações

É claro que cada uma destas funções possui muitas outras tarefas para a sua realização. Por exemplo, ler ao ler o dado do usuário, temos de ter em consideração o hardware de entrada destes dados, se é teclado, mouse, ou o sensor do Project Nata! Mas assim já é suficiente para você entender o básico sobre o funcionamento de um jogo, e começar desenvolvendo os seus próprios jogos, em Java ou outra linguagem como Python, C++ e até PHP!

Receba nossas actualizações por email

Ver Campanhas anteriores.

(Visited 65 times, 1 visits today)
Share