Desenvolvimento de uma Biblioteca de Funções para Simulação no Torque Game Engine



Documentos relacionados
Seleção de Livros sobre Desenvolvimento de Jogos. Por Marcos Romero Dezembro / 2008

Professor: Ronilson Morais Lobo. Salvador / 2015

Desenvolvimento de um aplicativo básico usando o Google Android

Sumário. 1 Explorando o Windows Gerenciando contas de usuário Parte 1 Conhecendo o Windows 7

LEAS ONLINE: PROTÓTIPO DE UM JOGO DE MMORPG

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

ESTUDO DE CASO WINDOWS VISTA

ADMINISTRAÇÃO DE SISTEMAS OPERACIONAIS SERVIÇOS IMPRESSÃO. Professor Carlos Muniz

Semântica para Sharepoint. Busca semântica utilizando ontologias

Introdução à Tecnologia Web. Tipos de Sites. Profª MSc. Elizabete Munzlinger

Um Ambiente Gráfico para Desenvolvimento de Software de Controle para Robôs Móveis Utilizando Simulação 3D

Ambiente Visual para o Desenvolvimento de Jogos Eletrônicos

Faculdade de Tecnologia SENAC Goiás. Disciplina: Gerenciamento de Rede de Computadores. Goiânia, 16 de novembro de 2014.

Introdução O que irá mudar? Por onde começar? Para que serve cada camada (layer)? Inserindo a ClickTag...

Artur Petean Bove Júnior Tecnologia SJC

O servidor de banco de dados ORACLE corporativo da empresa deve possuir a seguinte especificação mínima:

Satélite. Manual de instalação e configuração. CENPECT Informática cenpect@cenpect.com.br

FBV - Linguagem de Programação II. Um pouco sobre Java

Informática Básica. Microsoft Word XP, 2003 e 2007

2 Trabalhos relacionados

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi

Um Driver NDIS Para Interceptação de Datagramas IP

AULA 4 VISÃO BÁSICA DE CLASSES EM PHP

VisTrails. Fernando Seabra Chirigati Aluno de Engenharia de Computação e Informação COPPE/UFRJ fernando_seabra@cos.ufrj.br

Software Livre. Acesso ao código fonte Alterar o código fonte Redistribuir Utilizar como desejar

Planejando o aplicativo

Introdução. à Linguagem JAVA. Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação. Laboratório de Visão Computacional

Como se tornar um desenvolvedor de plug-ins para AutoCAD e Revit

CONSTRUÇÃO DE VEÍCULO MECATRÔNICO COMANDADO REMOTAMENTE

Inicialização Rápida do Novell Vibe Mobile

Desenvolvimento de cenários 3D com estereoscopia utilizando a engine de jogos UDK Unreal Development Kit. Hipólito Douglas França Moreira

Organização e Arquitetura de Computadores I. de Computadores

Manual Comunica S_Line

TRBOnet MDC Console. Manual de Operação

Hipólito Douglas França Moreira

PROJETO INFORMÁTICA NA ESCOLA

Programação Web Prof. Wladimir

Software Básico (INF1018)

Tecnologias de Jogos de Vídeo

Mapas e Localização. Programação de Dispositivos Móveis. Mauro Lopes Carvalho Silva

Digifort Mobile Manual Version 1.0 Rev. A

Programação para Dispositivos Móveis

Aplicação Prática de Lua para Web

Gerência de Redes: Modelos de Gerência de Redes: Modelo FCAPS: Ferramentas de Gerência de Redes:

INSTALANDO E CONFIGURANDO O MY SQL

DESENVOLVIMENTO DE UM APLICATIVO DO TIPO SECRETÁRIO VIRTUAL PARA A PLATAFORMA ANDROID

DWEB. Design para Web. CSS3 - Fundamentos. Curso Superior de Tecnologia em Design Gráfico

Utilização. de Shaders de efeitos realistas para jogos. Bruno Pereira Evangelista. Pontifícia Universidade Católica de Minas Gerais

Manual do Sistema "Vida Controle de Contatos" Editorial Brazil Informatica

MINISTÉRIO DO DESENVOLVIMENTO AGRÁRIO SUBSECRETARIA DE PLANEJAMENTO, ORÇAMENTO E ADMINISTRAÇÃO COORDENAÇÃO-GERAL DE MODERNIZAÇÃO E INFORMÁTICA

08/04/2013. Agenda. O Sistema CACHÉ. O Sistema CACHÉ. O Sistema CACHÉ. O Sistema CACHÉ

Aspectos técnicos do desenvolvimento baseado em componentes

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL

Na tela dele, clique no sinal de + ao lado do nome do seu computador, para expandi-lo. A seguir, expanda também o item "Sites da web".

Group Policy (política de grupo)

1 Introdução. 2 Funcionamento da Aplicação. Projeto de Programação - Entrega Final MEEC / Semestre Farm:TamagoISTi

MQSeries Everyplace. Leia-me primeiro G

Introdução ao Processamento de Dados (IPD)

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Prof. MSc. João Ricardo Bittencourt

ÍNDICE O QUE É... 2 COMO FUNCIONA Acervo Meus Livros Livros em destaque Fórum Notícias Ajuda Suporte...

Guia de instalação do Sugar CRM versão open source no Microsoft Windows XP

DESENVOLVENDO APLICAÇÕES WEB UTILIZANDO A FERRAMENTA WEBSCHARTS

Roteiro 3: Sistemas Linux arquivos e diretórios

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3

Capítulo 9. Gerenciamento de rede

Capture Pro Software. Guia de referência. A-61640_pt-br

UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIAS DA COMPUTAÇÃO (Bacharelado)

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

OpenGL. Uma Abordagem Prática e Objetiva. Marcelo Cohen Isabel Harb Manssour. Novatec Editora

2. INSTALAÇÃO E CONFIGURAÇÃO

Ferramentas de Administração. PostgreSQL

LAG. Laboratório de Aplicações Gráficas e Desenvolvimento de Jogos. Professor responsável M. Sc. Will Ricardo dos Santos Machado

CONTEÚDOS PROGRAMÁTICOS DA ACADEMIA

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza

Sistema de Controle de Solicitação de Desenvolvimento

Definition of a Measurement Guide for Data Warehouse Projects

Guia. PDA e SmartPhones. Windows Mobile, Pocket PC e CE.

Programação para Dispositivos Móveis

Manipulação de Dados em PHP (Visualizar, Inserir, Atualizar e Excluir) Parte 2

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração

Profibus View - Software de Parametrização de Equipamentos Profibus PA

PROJETO E IMPLANTAÇÃO DE INTRANETS

Desenvolvimento de um Simulador de Gerenciamento de Memória

Desenvolvendo Websites com PHP

Guia de administração para a integração do Portrait Dialogue 6.0. Versão 7.0A

Escolhendo recursos de Ajuda

3 Ferramenta de Simulação

Gerenciamento de energia. Dario Freddi Tradução: Marcus Gama

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos

Criando um script simples

MUDANÇAS NA ISO 9001: A VERSÃO 2015

Barra de ferramentas padrão. Barra de formatação. Barra de desenho Painel de Tarefas

MANUAL C R M ÍNDICE. Sobre o módulo de CRM Definindo a Campanha... 3

Transcrição:

Desenvolvimento de uma Biblioteca de Funções para Simulação no Torque Game Engine Bruno Baère Pederassi Lomba de Araujo Orientador: Bruno Feijó Dept. de Informática, PUC-Rio PIBIC Programa Institucional de Bolsas de Iniciação Científica PUC-Rio CNPq 2007

Desenvolvimento de uma biblioteca de funções para simulação no Torque Game Engine Aluno: Bruno Baère Pederassi Lomba de Araujo Orientador: Bruno Feijó Introdução Foi realizado um estudo da implementação do motor de jogos (engine) Torque Game Engine, produzido pela GarageGames, para projetos de simulação física e de inteligência artificial. Este motor destaca-se dos outros pelo seu baixo preço em relação à qualidade (a versão básica para desenvolvedores independentes custando na época do estudo US$150,00) e pela grande comunidade de desenvolvedores reunida nos fóruns do site da GarageGames. O Torque conta ainda com uma literatura em crescimento (Finney, 2004) (Maurina III, 2006), porém ainda focada no desenvolvimento pela sua linguagem de script própria, a Torque Script, e indisponível em versão traduzida para Português. Há o projeto de uma documentação online acessível apenas para os desenvolvedores licenciados, a Torque Developer Network, que mesmo em seu estágio inicial já oferece uma quantidade substancial de informações, aliada aos fóruns abertos supracitados. Como um motor de jogos completo, o Torque fornece o motor gráfico (render em OpenGL ou DirectX na versão básica, apenas DirectX na versão Advanced), motor de física, interfaces para dispositivos de áudio (OpenAL) e de entrada, e suporte a inteligência artificial por máquina de estados, sendo possível a modificação desses componentes em C++ com a aquisição da licença. Uma variante do TGE é o TGE Advanced, versão com suporte para os shaders mais recentes, que usa uma API baseada em DirectX 9 e proverá suporte a OpenGL no futuro. É possível ainda exportar as aplicações produzidas com a TGEA para o XBox 360 da Microsoft com a aquisição da licença Torque 360. Objetivos O objetivo do presente trabalho é desenvolver uma biblioteca de funções para o Torque Game Engine, focada especialmente em aplicações de simulação do tipo Serious 3D Games. Esta biblioteca deve possuir componentes de Física, Inteligência Artificial e Interface apropriados para aplicações sérias de simulação. Esta biblioteca deve ser projetada para diversos tipos de simulação 3D e deve garantir o desempenho das aplicações em tempo real. Metodologia É reconhecido pela comunidade que o motor Torque possui uma curva de aprendizado acentuada e não se encontrou nenhum material que se dispusesse a ensinar como criar uma aplicação que a usasse. A recomendação dos usuários do fórum é a utilização da aplicação demo que acompanha o motor como ponto de partida para o desenvolvimento de outras aplicações, supondo que assim o desenvolvedor adquira familiaridade com a organização do motor. Portanto, é natural que seja necessária a compreensão de como essa aplicação funciona para que outros projetos daí derivem. A familiarização com a linguagem de script oferecida pelo motor foi realizada praticando os exemplos dos capítulos 3, 4 e 5 da referência (Finney, 2004), que consistem basicamente em fazer o scripting do carregamento do cenário, dos modelos e de como estes se relacionavam. 2

A linguagem de script Torque Script caracteriza-se por ser não-tipada e orientada a objetos. Esta linguagem possui uma sintaxe muito semelhante a linguagens padrão do mercado como C ou C++, o que permite uma rápida assimilação. A referência, no entanto, não oferece noções de como se comportam ou de como gerenciar a criação de bots, entidades de inteligência artificial. Foi realizado um estudo aprofundado de como são instanciadas as entidades representativas do usuário da aplicação e das inteligências artificiais. A conclusão é que os bots derivam da mesma classe da qual o usuário é instanciado e o motor fornece algumas funções básicas de criação da inteligência artificial que deve ser inclusa no projeto do motor a ser compilado, visto que a inteligência artificial não é padrão no Torque. Uma outra conclusão é que o Torque fornece suporte à utilização de waypoints para navegação dos bots em cena. A criação dos waypoints é possível usando o editor interno World Editor. Para a inclusão de modelos animados, o Torque Game Engine faz uso de um formato próprio, o dts. Há, no site da GarageGames, exportadores para as principais ferramentas de modelagem do mercado, como o 3DS Max e o Maya, além do suporte dos usuários para ferramentas gratuitas, como o Blender. A parte de simulação física do motor permite uma alta customização, que se faz necessária a cada caso. Para simulações navais, por exemplo, é desejável uma representação a mais fiel possível de um corpo de água e de uma embarcação. A água é simulada por meio de uma estrutura denominada waterblock, que permite modificações na intensidade e direção de ondas. Para simular uma embarcação, pode-se fazer uso do datablock HoverVehicleData, Fig.1 Ambiente simulado no motor dando assim a sensação de que o veículo está flutuando na água. A Fig. 1 ilustra o ambiente e a Fig. 2 apresenta a IA dos testes básicos realizados. Foi realizado um estudo da estrutura de diretórios e arquivos do exemplo do tutorial.base que acompanha a versão 1.3 do Torque Game Engine para servir como guia para melhor compreensão dos módulos de modificações que podem ser inclusos aos projetos que utilizem a engine. A descrição é dada a seguir: 3

tutorial.base/main.cs - Definição das funções de parsing de argumentos. Variável global $defaultgame armazena o nome do diretório padrão do usuário. Iniciar a engine com o argumento mod modname faz com que modificações sejam carregadas. Primeiro, carrega o default game para em seguida carregar os módulos passados como argumento. sonda é neutralizada Nenhuma embarcação sonda é visível Sonda é alcançável Sonda na distância de neutralização sonda é visível Distância de neutralização é atingida espera persegue neutraliza energia zera sonda não é mais visível energia zera sonda sai da distância de neutralização energia zera Perda de defesa Fig. 2 Máquina de estado considerada tutorial.base/tutorial.base/main.cs - Carrega scripts do diretório common e carrega valores default do cliente e servidor. Possui override das funções onstart e onexit. Outras funções importantes como initserver e initclient são definidas aqui. Nome da janela cliente é argumento para initcanvas (dentro de initclient). Função loadtestmission é definida aqui. Vemos também a passagem do path da missão a ser carregada. tutorial.base/tutorial.base/pref.cs - Configurações. tutorial.base/tutorial.base/client/audioprofiles.cs - Configurações de áudio. tutorial.base/tutorial.base/client/default.bind.cs - Mapeamento de teclas. Define que função está associada a cada tecla, dividida pelas funções. O objeto ActionMap pode receber uma binding de comando (executa uma instrução definida na string de parâmetro) ou uma binding simples (o argumento da função associada é dado pelo tempo ou estado da tecla apertada). Os binds também podem receber como argumentos combinações de teclas. tutorial.base/tutorial.base/client/default.cs - Configurações padrão. tutorial.base/tutorial.base/client/loadinggui.cs - Definição de funções associadas à interface com o usuário. 4

tutorial.base/tutorial.base/missiondownload.cs - Faz interface com a GUI do jogo. Quem carrega a missão de fato é o script common/client/missiondownload.cs. tutorial.base/tutorial.base/client/playgui.cs - Definição das funções de interface (ativação e desativação do objeto ActionMap (move map)) do default.bind.cs. tutorial.base/tutorial.base/serverconnection.cs - Funções para lidar com conexão ao servidor. tutorial.base/tutorial.base/data - Descrições dos arquivos de missão (cenários) onde são inseridos interiores, spawn spheres, skyboxes, waterdatablocks, etc. É onde são armazenadas as meshes dos personagens. tutorial.base/tutorial.base/server/audioprofiles.cs - Datablocks de áudio simples e 3d. tutorial.base/tutorial.base/server/camera.cs - Datablock da câmera do observador, também define a velocidade das outras câmeras disponíveis. tutorial.base/tutorial.base/server/default.cs - Configurações padrão do servidor. tutorial.base/tutorial.base/server/editor.cs - Declaração das shapes e funções usadas pelo Mission Editor. tutorial.base/tutorial.base/server/game.cs - Declaração das funções de inicialização do servidor e da missão. Métodos de extensão da GameConnection. tutorial.base/tutorial.base/server/player.cs - Carrega script do player (./data/...), definições de áudio, emissores de partículas, datablock PlayerData (PlayerShape) e métodos relacionados. 5

tutorial.base main.cs tutorial.base main.cs prefs.cs client audioprofiles.cs default.bind.cs default.cs loadinggui.cs missiondownload.cs playgui.cs serverconnection.cs ui... data... server audioprofiles.cs camera.cs default.cs editor.cs game.cs player.cs Fig 3 Estrutura de diretórios do módulo de exemplo tutorial.base 6

Conclusões O uso do Torque para simulações envolvendo física e inteligência artificial mostrou-se mais complexo do que o inicialmente imaginado. Apenas os testes básicos foram realizados. Em breve, pretende-se liberar à comunidade, sob forma de uma apostila, um guia do Torque Script com o detalhamento da organização da aplicação para finalidades de simulação. Além disto, deve ser compilado um manual de procedimentos para a inclusão de modelos e animações desenvolvidas pelo usuário e para a criação de uma inteligência artificial baseada em máquinas de estados para simulações navais. Referências Finney, K. C. 2004. 3D Game Programming All in One. 1.ed. Canada: Premier Press. Maurina III, E.F. 2006. The Game Programmer's Guide to Torque: Under the Hood of the Torque Game Engine (GarageGames), AK Peters, Ltd. 7