tecnologias de jogos de vídeo - di.ubi.ptagomes/tjv/praticas/01-introducao-lab.pdf · sistemas...

21
Tecnologias de Jogos de Vídeo Abel J. P. Gomes & Gonçalo Amador LAB. 1 Departamento de Informática Universidade da Beira Interior Portugal 2013 Copyright 2009-2013 All rights reserved.

Upload: truongminh

Post on 30-Nov-2018

224 views

Category:

Documents


0 download

TRANSCRIPT

Tecnologias de Jogosde Vídeo

Abel J. P. Gomes & Gonçalo Amador

LAB. 1

Departamento de InformáticaUniversidade da Beira Interior

Portugal2013

Copyright 2009-2013 All rights reserved.

LAB. 1

JogAmp e JMOGEINSTALAÇÃO E CONFIGURAÇÃO

1. Objetivos2. Conceitos3. JogAmp Instalação e Configuração4. JMOGE Instalação, Configuração e Introdução

Lab. 1

JogAmp e JMOGE INSTALAÇÃO E CONFIGURAÇÃO

Nesta lição prático-laboratorial aprender-se-á instalar e configurar o JogAmp eo motor de jogo JMOGE, em Windows 7 no ambiente de desenvolvimentoNetbeans 7.2.1. Serão indicados e brevemente explicados os módulos, ou sub--motores, que constituem o JMOGE. Serão ainda indicados os passos gerais elinks para possibilitar fazer a instalação e configuração do JMOGE em outrossistemas operativos, bem como em outros ambientes de desenvolvimento.

1. Objetivos específicos de aprendizagem

Terminada esta ficha de trabalho, o aluno deve saber e ser capaz de:

1. Saber instalar e configurar o JogAmp para Netbeans em Windows 7.

2. Saber onde consultar a informação necessária para instalar econfigurar o JogAmp em outros ambientes de desenvolvimento quenão o Netbeans 7.2.1, e.g., Eclipse, e para outros sistemasoperativos (S.O.) que não o Windows 7, e.g., Android, MacOS.

3. Ter uma noção geral da arquitetura do motor de jogo JMOGE, autilizar para a realização dos distintos projetos.

4. Ser capaz de identificar e explicar minimamente os módulos a alterarpara a realização dos distintos projetos.

2. JogAmp Instalação e Configuração

O JogAmp é constituído por 4 módulos, de referir, o Joal, o Jocl, o Jogl e oGluegen. Toda a informação referente a cada um dos módulos, bem comoinstalar e configurar o JogAmp, encontra-se na Wiki do JogAmp, disponível nolink:

http://jogamp.org/wiki/index.php/Main_Page

Através destes 4 módulos é possível utilizar nativamente em Java 3 APIs deC/C++, de referir, o OpenGL, o OpenCL, e o OpenAL.

Nota: O leitor deve ler cada um dos 4 “overviews”, disponíveis na Wiki doJogAmp, de forma a saber quais as funcionalidades de cada um dos 4 módulos.

O processo de instalação e configuração do JogAmp em qualquer sistemaoperativo, e noutros ambientes de desenvolvimento que não o Netbeans 7.2.1encontra-se disponível na Wiki do JogAmp (indicada previamente).Independentemente do sistema operativo em uso, os passos para a instalaçãoe configuração do JogAmp podem ser resumidos em:

1. Fazer o download do arquivo comprimido com o JogAmp, (“jogamp-all-platforms.7z”).

2. Adicionar às variáveis de sistema o caminho para as bibliotecas, quese encontram no local para onde arquivo for descomprimido, i.e., osistema precisa de saber somente a localização das bibliotecas aidentificação do sistema operativo (e.g., Windows, Linux, etc) e daversão deste (32 ou 64 bits) é realizada pelo sistema operativo.

3. Configurar o ambiente de desenvolvimento de forma a ter umabiblioteca genérica JogAmp. Esta biblioteca genérica seráposteriormente adicionada a cada projeto que queira recorrer aoJogl, ao Joal, ao Jocl, ou ao Gluegen.

Apenas (como já foi referido) será abordada a instalação e configuração doJogAmp em Windows 7 (32 ou 64 bits é igual), para o ambiente dedesenvolvimento Netbeans 7.2.1. Para informações sobre outros sistemasoperativos ou outros ambientes de desenvolvimento consultar a Wiki doJogAmp (anteriormente indicada).

Nota: É importante referir que é possível utilizar somente cada um dosmódulos do JogAmp num projeto. Mais especificamente, pode-seinclusivamente somente instalar e configurar módulos específicos do JogAmppara uma arquitetura especifica. No caso particular do JMOGE apenas o Jogl e oGluegen são efetivamente utilizados. No entanto, por facilitismo a instalação econfiguração do JogAmp como um todo será a explicada de seguida, passo-a--passo.

A página principal do JogAmp, encontra-se disponível no link:

http://jogamp.org/

No link indicado, fazer o download do arquivo “jogamp-all-platforms.7z”,genérico para múltiplas arquiteturas (e.g., Windows 32 bits, Windows 64 bits,Linux 32 bits, etc.), como se ilustra na Fig.1:

Figure 1: Página principal do JogAmp.

De seguida, descomprimir para a Drive C: o arquivo “jogamp-all-platforms.7z”, como se ilustra na Fig.2:

Figure 2: Diretoria na raiz da drive C: para onde o arquivo do JogAmp deve ser descomprimido.

Resta agora adicionar o JogAmp às variáveis de sistema, como ilustrado passo--a-passo nas Fig. 3 e 4:

Figure 3: Aceder às definições de sistema no Windows 7.

Figure 4: Adicionar variáveis de sistema no Windows 7.

Agora é necessário adicionar as diversas variáveis de sistema requeridas:

1. Adicionar a variável JAVA HOME com o valor

”C:\Program Files (x86)\Java\jdk1.7.0 04”(64 bits) ou

”C:\Program Files\Java\jdk1.7.0 04”(32 bits).

2. Adicionar a variável JogAmp com o valor

”C:\jogamp-all-platforms”.

3. Adicionar no fim da variável ”Path”(se não existir) um ”;” seguido de,”%JogAmp%\lib”;

Nota: A versão do JDK pode ser outra que não a indicada sendo necessáriocolocar o número correto no fim do texto, e.g., jdk6.23. É ainda importantereferir que o JMOGE é compatível com o Java a partir da versão 1.6, i.e., nãoutiliza algumas das melhorias introduzidas com o Java 1.7. A razão prende-secom a versão 1.6 ser a predominante em equipamentos da UBI.

Resta agora configurar o Netbeans 7.2.1 para reconhecer o JogAmp. Esteprocesso consiste em adicionar o JogAmp às bibliotecas do Ant, como ilustradonas Figs. 5 a 8:

Figure 5: Aceder à configuração das bibliotecas Ant no Netbeans 7.2.1.

Figure 6: Adicionar a nova biblioteca JogAmp, no Netbeans 7.2.1.

Figure 7: Selecionar o caminho para os .jar a adicionar à classpath da nova biblioteca JogAmp, no Netbeans 7.2.1.

Figure 8: Selecionar os .jar a adicionar à classpath da nova biblioteca JogAmp, no Netbeans 7.2.1.

3. JMOGE Instalação, Configuração, e Introdução

Primeiramente vamos proceder à instalação e configuração do motor dejogo JMOGE. O primeiro passo consiste em realizar o download do arquivo doJMOGE, disponível na página da cadeira de tecnologias de jogos de vídeo:

http://www.di.ubi.pt/~agomes/tjv/

Após descarregado e descomprimido (para uma localização à sua escolha),procedemos à configuração do projeto do JMOGE. A configuração do projetodo JMOGE consiste em primeiramente carregar o projeto do JMOGE dentro doNetbeans, como ilustrado na Fig. 9:

Figure 9: Carregar um novo projeto no Netbeans 7.2.1.

De seguida é expetável que a “linkagem” a .jars e dependências do projeto,por ele se encontrar numa diretoria de sistema distinta. Os .jars encontram-sena diretoria “lib” dentro da pasta do projeto do JMOGE. De seguida, supondoque havia erro de “linkagem” no JogAmp vamos exemplificar como se fariapara corrigir o problema. Considerando que o projeto JMOGE já se encontracarregado, clicar com o botão direito na raiz do projeto (“JMOGE”), e efectuaros passos ilustrado nas Figs. 10 a 12:

Figure 10: Aceder às propriedades de um projeto no Netbeans 7.2.1.

Figure 11: Remover uma biblioteca das dependências de um projetono Netbeans 7.2.1.

Figure 12: Adicionar uma biblioteca às dependências de um projetono Netbeans 7.2.1.

Efetuar o mesmo processo para todos .jars que se encontram na diretoria “lib”do projeto JMOGE, somente se estes apresentarem uma sinal de aviso amarelo.Este sinal significa que também não estão na diretoria indicada aquando acriação ou ultima alteração do projeto. De referir que é importante nas opçõesde escolha, somente para os .jar utilizar o “relative path” e não o “absolutepath”.

As configurações, e.g., argumentos da linha de comando, que o motor permitesão várias. Para as alterar, após selecionar o projeto como principal, via cliquedireito no projeto (“JMOGE”) e clique esquerdo na opção “Main project”, éapenas necessário modificar os parâmetros de execução do projeto, indicadona Fig. 13:

Figure 13: Alterar o primeiro argumento para “pires”, aquando uma chamada a um projeto especifico no Netbeans 7.2.1.

O motor JMOGE sem argumentos tem um comportamento distinto de se tiversomente um ou mais argumento. Se tiver somente um argumento, este será onome ou id do jogador que irá ser controlado na máquina em que forexecutado o JMOGE. Outros casos apenas serão indicados nas (futuras) fichasprático-laboratorias de Inteligência artificial e de redes.

Nota: Somente após concluir a ficha número 2 esta funcionalidade estaráfuncional.

Finalmente falta fazer um breve introdução ao motor e aos módulos que oconstituem. Antes de indicar cada um dos módulos, e as respetivas classes decada, é importante referir que as futuras fichas prático-laboratorias para cadamódulo serão projetos separados, de forma a facilitar a compreensão ealteração do módulo referente a cada ficha. Desta forma as alterações asubsequentes projetos deverão ser adicionadas ao projeto JMOGE. Tambémpara cada futura ficha prático-laboratorial será abordado em mais detalhe omódulo abordado e para que serve.

Os primeiros módulos a indicar, dos quais algumas classes servirão deauxiliares em futuras fichas prático-laboratorias, são os módulos responsáveispelo tratamento do input de dados via rato e teclado (Fig. 14), o interpretadorde dados no formato Collada para geometria (Fig. 15), e o interface deutilizador (Fig. 16).

Figure 14: Módulo de “input” de periféricos, e.g., rato e teclado.

Figure 15: Módulo de “input” de formatos de dados geométricos.

Figure 16: Módulo de interface de utilizador.

O interface de utilizador realiza o render do jogo, sendo apenas necessáriodefinir a lógica de jogo. Outras classes do interface de utilizador incluem umacâmara genérica que pode ter várias perspetivas (e.g., primeira pessoa) e umcontador de frames por segundo (FPS).

Todas as texturas (imagens) e modelos (Collada) encontram-se na diretoria“input\data”, ilustrado na Fig. 17:

Figure 17: Diretorias das texturas e modelos.

Todos os módulos indicados de seguida serão abordados mais em detalhe etema de futuras ficha prático-laboratoriais.

O módulo referente à geometria (Fig. 18) diz respeito tanto à gestão de cenacomo ao desenho (“render”) da cena e todos os objetos visíveis presentesneste, i.e., jogadores, obstáculos e limites do cenário. Também, é referente àcriação e polimento de terrenos e à criação de labirintos.

Figure 18: Módulo de geometria.

O módulo de física (Fig. 19), diz respeito a efeitos especais, e.g., a simulaçãode fluidos (i.e., líquidos e gases), e à cinemática do movimento, i.e., translaçãoe rotação, e à deteção de colisões.

Figure 19: Módulo de física.

O módulo de inteligência artificial, ou I.A., (Fig. 20), será utilizado paraimplementar jogadores controlados automaticamente. Este móduloimplementará algoritmos de procura de caminho, percorrimento de caminho.

Figure 20: Módulo de I.A..

Finalmente, o módulo de comunicação ou rede (Fig. 21), diz respeito àimplementação de uma topologia de rede especifica, e.g., cliente servidor.

Figure 21: Módulo de comunicação.

Os módulos brevemente indicados estão por ordem de fichas prático-laboratorias a realizar. Tanto para o projeto JMOGE, como para os projetosreferentes a ficha prático-laboratorial, a documentação encontra-se nadiretoria do projeto, na pasta “javadoc”. Para a visualizar abrir o ficheiro“index.html” num browser.