Universidade Presbiteriana Mackenzie
REALIDADE MISTURADA APLICADA À JOGOS DIGITAIS: DESENVOLVIMENTO
DE UM JOGO COM REALIDADE MISTURADA EM COMEMORAÇÃO AOS 140
ANOS DE MACKENZIE
Dennis José da Silva (IC) e Ismar Frango Silveira (Orientador)
Apoio: PIVIC Mackenzie
Resumo
Com a criação de dispositivos imersivos para jogos digitais como Microsoft Kinect, Sony Playstation
Move e Nintendo Wii e o sucessos dos mesmos em ambiente comercial é proposto o
desenvolvimento de um jogo com características de realidade misturada para proporcionar uma
sensação de maior imersão ao jogador. O jogo terá como tema a historia da Universidade Mackenzie
e será ambientado na mesma, o jogador deverá realizar ações em dois ambientes o de realidade
virtual e o de realidade aumentada, para o seu desenvolvimento é proposto uma integração entre
uma game engine e uma API de realidade aumentada de uso geral que possa ser reutilizada para
desenvolvimento de outros jogos com as mesmas características, utilizado uma abordagem top-down
iniciando com a criação de documentos de game design e level design, captura de requisitos e
diagramas de UML foi proposta um mecânica de funcionamento para essa integração assim como a
implementação de um dos módulos integrando a game engine Microsoft XNA e a API de realidade
aumentada ARToolkit para isso foi necessário ultrapassar alguns obstáculos como a comunicação
entre as linguagens de programação C# utilizada no XNA e C/C++ utilizada na ARToolkit, mas com a
utilização da linguagem CLI C++ da Microsoft e do padrão de projeto adapter foi possível realizar
essa comunicação.
Palavras-chaves: Realidade misturada, game engine, Integração de tecnologias
Abstract
With the creation of immersive devices to digital games as Microsoft Kinect, Sony Playstation Move
and Nintendo Wii and the success of theirs at commercial environment is proposed the development
of a game with mixed reality characteristics to provide a greater sense of immersion to the player. The
game will have Mackenzie University story as its theme and scenario too, the player will take action in
two environments, the virtual reality environment and augmented reality environment, to its
development is proposed a integration system between a game engine and a augmented reality API
for a general use that can to be reused in another game with the same characteristics development.
Using a top-down approach started with a game design and level design documents, requirements
capture and UML diagrams was proposed operating mechanism to this integrate system and
implementation of one of the modules integrating the Microsoft XNA game engine and ARToolkit
augmented reality API, for this was necessary pass obstacles as the communicate between the
programming languages C# used in Microsoft XNA and C/C++ used in ARToolkit API but with
Microsoft CLI-C++ programming language use and the adapter design pattern use was possible made
this communication.
Key-words: Mixed reality, game engine and technologies integration
1
VII Jornada de Iniciação Científica - 2011
INTRODUÇÃO
A área de jogos digitais está se dedicando cada vez mais ao desenvolvimento de
dispositivos com interação não convencional isso pode ser notado por meio dos
investimentos de empresas e nos produtos gerados por esses investimentos como PSMove
(SONY, 2011), Nintendo Wii (NINTENDO WII, 2011) e Microsoft Kinect (MICROSOFT, 2011)
apresentados na figura 1. Todos esses dispositivos tem como característica a imersão não
prendendo o jogador ao pressionar de botões, mas também permitindo que o jogador
interagir com o seu próprio corpo realizando movimentos de acordo com o jogo. O Microsoft
Kinect permite ainda que o jogador jogue sem controle realizando apenas movimentos com
o seu corpo.
Figura 1: Da esquerda para direita: Controle Nintendo Wii, Controle Sony Playstation Move, Microsoft Kinect
Os campos de realidade virtual e aumentada são áreas que estudam interfaces
tridimensionais em tempo real, a realidade misturada é a área que estuda aplicações com
características de realidade virtual e aumentada simultaneamente (KIRNER, 2008). Com
esses conceitos é proposto o desenvolvimento de um jogo com essas características em
busca de uma maior imersão e proporcionar ao jogador uma nova maneira de interagir. Para
suprir essas características o jogo terá dois modos intercambiáveis durante o gameplay, o
modo realidade virtual onde o jogador terá que interagir com dispositivos tradicionais como
teclado, mouse e controle e terá que explorar o cenário para encontrar itens secretos e
desafios e o modo realidade aumentada onde o jogador terá que interagir com marcadores
de realidade aumentada para resolver puzzles e progredir no jogo.
Para o desenvolvimento do jogo é proposto o desenvolvimento de uma camada de software
entre uma game engine e uma API de realidade aumentada para que seja possível integrar
recursos de uma game engine como efeitos de física, manipulação de modelos 3D, HUD,
efeitos sonoros, entre outros a aplicativos de realidade aumentada, essa integração tem
como objetivo facilitar o desenvolvimento de aplicativos e jogos com essas características.
2
Universidade Presbiteriana Mackenzie
REFERENCIAL TEORICO
Desde a invenção do ENIAC a necessidade de interfaces intuitivas e fáceis de aprender é
uma preocupação dos teóricos de interface-humano computador. A realidade virtual estuda
e desenvolve interfaces interativas e tridimensionais criadas em computador que funcionam
em tempo real (KIRNER, 2008), diferentemente da realidade aumentada que mistura
ambientes reais e virtuais, geralmente usasse marcadores que são sobrepostos por
modelos 3D (figura 2). A realidade misturada estuda aplicações com características de
realidade virtual e aumentada (REIMANN, 2005).
Figura 2: Jogo Eye of Judgment para Sony Playstation 3 que tem características de realidade
aumentada com marcadores nas cartas. Imagem retirada do site eyeofjugment (2011) .
Aplicações com realidade misturada vêm sendo estudadas e aplicadas em diversas áreas
como fotometria (TAKEMURA, 2006), psicologia (NILSSON e JOHANSSON, 2005),
arqueologia (ISHAK e FEINER, 2004), educação (STAPLETON e HUGHES, 2005),
arquitetura (KAKUTA, 2005), entre outras.
As aplicações mais comuns em realidade virtual são aquelas em que o usuário interage com
mundos virtuais manipulando objetos virtuais e navegando no ambiente por meio de
dispositivos de entrada como mouse, teclado, joystick, trackers entre outros. Jogos digitais e
mundos virtuais na web são exemplos de aplicações. Ferramentas como VRML (W3C,
1995) e X3D (WEB3D, 2011) são muito utilizadas para o desenvolvimento dessas
aplicações em ambiente web já que podem ser lidas e interpretadas pelo navegador apenas
com a instalação de plug-ins, em jogos digitais normalmente são utilizadas game engines
que facilitam a inserção de interação com modelos tridimensionais normalmente modelados
3
VII Jornada de Iniciação Científica - 2011
em ferramentas como Blender (BLENDER, 2011), 3D Studio Max e Maya (AUTODESK,
2011).
As ferramentas mais comuns em realidade aumentada são ARToolkit e Flartoolkit (KIRNER,
2008), ambas são APIs que possuem algoritmos para manipulação de marcadores e
orientação de modelos sobre esses marcadores. ARToolkit é uma API desenvolvida em
linguagem C e possuem licença livre para uso acadêmico, o Flartoolkit é desenvolvido em
Flash e é mais utilizado em aplicações para internet.
Pela a abordagem adotada foi importante o desenvolvimento de dois documentos referentes
à área de jogos digitais, o GDD (Game Design Document) e o LDD (Level Design
Document) os mesmos são usadas para descrever e delimitar o jogo com intuito de auxiliar
e guiar a equipe de desenvolvimento (ROUSE, 2005).
Em um GDD são descritos a historia, mecânica, itens, personagens, entre outros elementos
do jogo, por meio de um GDD a equipe de desenvolvimento pode criar e modelar os
personagens de acordo com sua personalidade e aparência descritas no documento com a
historia documentada é possível desenvolver o ambiente de acordo com o clima que o
designer projetou, a equipe de programação é capaz de projetar e desenvolver a estrutura
interna que usará no jogo a partir da descrição dos itens e mecânica. Apesar de o GDD ser
um documento na há uma padronização em seu desenvolvimento, ao contrario do que
ocorre na indústria cinematográfica com o roteiro, apesar disso, os grandes estúdios de
desenvolvimento seguem padrões internos (ROUSE, 2005).
O LDD é o documento responsável por descrever o cenário, ou seja, o local onde ocorrera o
jogo, normalmente o documento de level design possui uma ilustração do cenário que será
usado pela equipe de designs e artistas como guia em suas criações e pela equipe de
programadores para o desenvolvimento da interação do cenário já que a mesma deve ser
descrita no documento (figura 3).
4
Universidade Presbiteriana Mackenzie
Figura 3: Exemplo de um esboço de um LDD, normalmente feito nas fases iniciais da documentação.
Figura retirada de Byrne (2005).
A tarefa de um designer de level se concentra em desenvolver um cenário atrativo ao
jogador impondo barreiras e desafios como puzzles, inimigos e labirintos, entre outros. O
posicionamento de objetos e a interação do jogador com eles é uma das tarefas deste
profissional assim como o desenvolvimento de um cenário que represente o clima do jogo
(ROUSE, 2005).
Em conjunto esses dois documentos são importantes para que a equipe desenvolvimento
trabalhe com linhas guias e focadas em um objetivo, todos trabalhando para criação de um
jogo que tenha características únicas em todos os aspectos assim como a engenharia de
software atua no desenvolvimento de software (ROUSE, 2005).
Com o desenvolvimento da documentação do jogo é necessário escolher as ferramentas e
tecnologia para enfim iniciar a criação do game. Desde a criação Spacewars em 1961
(JEFFREY, 2007) a indústria de jogos eletrônicos vem crescendo rapidamente até mesmo
ultrapassou a indústria cinematográfica em algumas medições (ENTERTAINEMENT
SOFTWARE RATING BOARD, 2009), com esse crescimento nota-se um aumento na
complexidade no gameplay e no desenvolvimento de jogos, para agilizar e facilitar o
desenvolvimento de jogos é importante que uma empresa adote a utilização de uma game
engine (ANDERSON, 2008).
5
VII Jornada de Iniciação Científica - 2011
Uma game engine é um conjunto de módulos que modela as funcionalidades básicas
comuns aos games independente do tipo e estilo (LEWIS, 2002). Esses módulos são
responsáveis pelas funcionalidades de input (entrada de dados), geralmente realizados por
meio de teclado, mouse e joystick e output (exibição de gráficos no display, som, vibração
no controle), existem game engines que suportam efeitos de física também como Unreal
Game Engine (EPIC GAMES, 2011) e Unity (UNITY, 2011). As funcionalidades de uma
game engine estão entre manipulação de grafo de cena, renderização, posicionamento de
objetos no cenário, controle de mecânica, manipulação de animação, controle de
iluminação, GUI (Graphical User Interface, são imagens em 2D geralmente exibindo
informações sobre o jogo como vidas restantes, fase atual, item selecionado, entre outros),
essas tarefas são realizadas por meio da comunicação da game engine com uma API de
baixo nível (LEWIS, 2002).
Uma das games engines que tem se destacado entre os desenvolvedores indies
(desenvolvedores que não trabalham para grandes corporações) é a Microsoft XNA. Dentre
suas vantagens estão o desenvolvimento para multiplataforma (Windows phone 7, Xbox,
computadores) com reuso de código, é gratuita, tem suporte da Microsoft, possibilita
trabalhar coma Microsoft Live e comercializar os jogos por meio da mesma. Com a versão
4.0 do C# ainda é possível trabalhar em seu ambiente multithreading possibilitando o
aumento de desempenho com o processamento paralelo (MICROSOFT, 2011).
XNA é uma game engine desenvolvida sobre o Microsoft Directx (biblioteca com
diversas funções de desenho 2D e 3D além de utilitários para som, input e output, entre
outras), criando assim uma interface mais amigável entre o desenvolvedor e a game engine
disponibilizando um conjunto de classes, padrões e estruturas que facilitam o
desenvolvimento do game utilizando ferramentas de orientação a objetos disponibilizados
pela linguagem C# e a IDE Microsoft Visual Studio que possuí diversas ferramentas para o
desenvolvimento como debbugers e Intelisense. O XNA pode ser dividido em diversos
módulos e quatro camadas que se comunicação entre si e disponibilizam um conjunto de
classes no formato de um framework para o desenvolvedor em sua camada mais alta (figura
4):
•
Game: Foco no desenvolvimento do conteúdo do jogo é nesta camada que o
desenvolvedor trabalha;
•
Extended Framework: Nesta camada ocorre uma abstração do núcleo do XNA
onde são definidas as classes que serão utilizadas pela camada game;
•
Core Framework: Abstrai as funcionalidades das bibliotecas de baixo nível da
camada de plataforma;
•
Plataforma: Bibliotecas de baixo nível.
6
Universidade Presbiteriana Mackenzie
Figura 4: Estrutura da game engine Microsoft XNA, imagem feita por Lobão (2008)
Em jogos modernos uma game engine não é suficiente para manter a qualidade exigida pelo
mercado para isso é necessário engines adicionais para controle de física, inteligência
artificial e outras especialidades, essas engines não são inclusas em diversas engines como
Ogre e XNA, sendo necessário a integração de engines externas para realização destas
tarefa (figura 5).
Figura 5: Estrutura de game engine que não possui engine de física e inteligência artificial embutidas ao seu
núcleo. Adaptado de Jeffrey (2007)
Havok (HAVOK, 2011) e Physx (NVIDIA, 2011) são duas engines de físicas comerciais e
concorrentes e possuem diversos títulos de sucesso no mercado produzidos com suas
tecnologias, Newton Game Dynamics (NEWTON GAME DYNAMICS, 2011) é uma engine
7
VII Jornada de Iniciação Científica - 2011
de física open source e pode ser baixado da internet gratuitamente, todas essas engines
podem ser integradas com game engines para a produção de jogos mais elaborados, ainda
não existe uma engine para inteligência artificial de uso geral como as de física,
normalmente esse modulo do game é implementado pelo próprio desenvolvedor dentro de
uma game engine, exceto a game engine Unreal (EPIC GAMES, 2011) que possui o
sistema Kismet para o controle deste modulo.
METODO
Para o projeto optou-se pelo uso de uma metodologia top-down, ou seja, inicialmente não foi
decidido qual tecnologia utilizar, mas como o jogo deveria estar no final e para isso foi criado
os documentos de game design e level design, resumidamente o jogo proposto se baseia na
historia de José um garoto do Colégio Mackenzie com uma grande imaginação, certo dia
sua professora de historia resolve fazer um passeio no Edifício Mackenzie o primeiro edifício
da faculdade em Higienópolis quando José começa a imaginar como seria viver naquela
época, a partir dai o jogador assume o papel de José que deverá encontra uma relíquia para
cada faculdade para que possa sair do mundo de sua imaginação. O jogo se baseia em uma
mecânica simples de jogos em terceira-pessoa onde a câmera irá acompanhar o
personagem sobrevoando-o, o jogador poderá explorar o cenário e encontrar itens secretos
e os desafios que serão recompensados por uma relíquia de faculdade, o jogo terá dois
modos, o modo em que o jogador explora o cenário em busca de desafios e itens, será
chamado de modo explorador e representara a interação por meio de realidade virtual, o
modo em que o jogador deverá resolver um puzzle ou desafio será chamado de modo
desafio e jogador irá interagir por meio de marcadores de realidade aumentada.
No documento de level design foi proposto dois desafios para o modo de realidade
aumentada, o primeiro é composto por um labirinto virtual que será projetado em cima de
um marcador de realidade aumentada e o objetivo do jogador será levar uma pequena
esfera do ponto inicial até o ponto final passando-a por várias paredes, o jogador deverá
movimentar o marcado para que a esfera se movimente respeitando leis de física (figura 6).
Figura 6: Imagem utilizada no LDD para o primeiro desafio
8
Universidade Presbiteriana Mackenzie
No segundo nível o jogador terá um tabuleiro com marcadores de realidade aumentada
projetando pedaços de encanamento não conectados e vários marcadores moveis que
representaram pedaços deste encanamento e o objetivo do jogador será posicionar com a
orientação certa essas peças moveis para que todo o encanamento seja conectado antes do
cronometro terminar sua contagem (figura 7).
Figura 7: Esboço do segundo desafio.
Com o desenvolvimento da ideia geral do jogo e de sua documentação foi estudado as
tecnologias que poderiam ajudar a implementá-lo. Inicialmente foi escolhido a game engine
Unity para o desenvolvimento do jogo, por que ela é uma engine que possibilita a
prototipação e implementação do jogo com facilidade e agilidade também pelo
conhecimento técnico adquiridos, mas após uma analise em sua documentação na web
constatou-se que ela não tem suporte a desenvolvimento de plug-ins com a linguagem
C/C++ em sua versão indie (UNITY, 2011), requisito necessário para a integração da engine
com a ARToolkit (API de realidade aumentada escolhida para a integração), então foi
optado em integrar a linguagem C# (suportada pela Unity) com as linguagens C/C++ por
meio de uma dll (dynamics link library), foi verificado que essa integração era possível por
meio de uma extensão da linguagem C++ da Microsoft chama de CLI (Commom Language
Infrastruture) C++, essa extensão quando compilada gera bytecodes para linguagem C#.
Porém não foi possível realizar essa integração na Unity por que seu compilador e
interpretador da linguagem C# não é o mesmo utilizado pela Microsoft, a Unity usa o
9
VII Jornada de Iniciação Científica - 2011
compilador Mono que possibilita o desenvolvimento de aplicativos em C# para
multiplataformas.
Tendo em vista essas adversidades foi alterada a game engine utilizada no projeto para a
Microsoft XNA, por que possui vários recursos, é gratuita e suportar desenvolvimento para
multiplaformas da Microsoft como Xbox, Windows Phone e computadores com sistema
operacional Windows, a utilização da linguagem C# com o compilador .Net framework
também foi um diferencial. Definido a tecnologia e os recursos disponíveis existiam duas
importantes tarefas a serem realizadas, o desenvolvimento dos assets do jogo, ou seja, os
modelos 3D, som, cenário, entre outros, ou desenvolver essa camada de software para a
integração das duas tecnologias. Na primeira situação seria necessário primeiramente
desenvolver habilidades técnicas em alguma ferramenta de modelagem 3D como Blender,
3D Studio Max ou Maya, planejar os elementos do jogo e cria-los, na segunda situação seria
necessário o planejamento e a documentação necessárias para o desenvolvimento de um
software reutilizável e modular e depois implementa-lo.
Como seria necessário o desenvolvimento da camada de integração para definir o que seria
possível ou não implementar e conhecer os limites desta aplicação optou-se por
implementá-la primeiro. O trabalhou iniciou-se por uma definição de alto nível separando as
partes que seriam integradas para o desenvolvimento do software, essa definição foi
formalizada por um diagrama de componentes (figura 8).
Figura 8: Diagrama de componentes proposta para a camada de integração entre a game engine XNA e a API
ARToolkit
Cada modulo será responsável pela integração de um conjunto de funcionalidades
especificas e os mesmos serão independentes entre si, e o modulo principal que integrará
todos eles (Integration Layer) será dependente de todos e o mesmo disponibilizara uma
interface ao XNA e utilizara a interface da ARToolkit, as responsabilidades dos módulos
foram dividas da seguinte maneira:
10
Universidade Presbiteriana Mackenzie
•
AR Resource Manager: Será responsável por manipular recurso relacionados a
realidade aumentada como marcadores e configuração de câmera;
•
Transformation Adapter: Será responsável por realizar adaptações entre os tipo
de transformações (rotação, translação, escala, definição de câmera, entre outras)
das duas tecnologias.
•
3D Models Adapter: Será responsável por realizar adaptações do modelos
carregados no XNA e sua representação na ARToolkit
•
Integration Layer: Será responsável pela comunicação entre o XNA e a
ARToolkit por meio dos componentes definidos acima.
Concluído o diagrama de componentes foi definido que o componente Transformation
Adapter seria o primeiro a ser implementado, esse processo iniciou-se pela documentação
das classes por meio de um diagrama de classes (figura 9).
Figura 9: Diagrama de classes do componente Transformation Adapter.
Essa estrutura de classes tem como objetivo fazer uma adaptação da classe Matrix do XNA
para a representação de matriz utilizada em OpenGL (biblioteca gráfica utilizada na
ARToolkit), para isso foi utilizado o design pattern Adapter (GAMMA, HELM, et al., 2003)
com uma adaptação, como a classe MatrixAdapter não conseguia manipular um tipo de
dado complexo do C# por ser uma classe em C++ foi necessário a inserção da classe
MAREMatrix em C# para conversão da classe Matrix em um tipo manipulável em C++.
Com o desenvolvimento da estrutura e a definição das classes foi possível a implementação
deste componente, utilizando Microsoft Visual Studio foi desenvolvida duas dlls uma C# para
classe MAREMatrix que foi utilizada pela dll TransformationMatrix para realizar a adaptação.
Para fim de testes foi desenvolvido um aplicativo em XNA que envia uma Matrix para a
11
VII Jornada de Iniciação Científica - 2011
adaptação e um aplicativo em C++ recebia essa matriz adaptada e a imprimia em um
arquivo.
RESULTADOS E DISCUSSÃO
Após o desenvolvimento da documentação do jogo (game design document e level design
document) é proposto um modelo para o desenvolvimento da camada de integração que
pode ser reutilizado em outros projetos ou na integração de outras game engines ou outras
ferramentas de realidade aumentada. O modelo propõe o desenvolvimento de uma camada
que realize a comunicação de uma game engine com uma API de realidade aumenta
dividindo as responsabilidades, a API de realidade aumenta seria responsável por fornecer
as informações de onde está o marcador e de sua orientação em relação à câmera, também
teria que desenhar o modelo no marcador e das configurações na câmera, a game engine
seria responsável por manipular os dados recebidos da interação do jogador e responder
essas ações no objeto por meio de transformações, também seria de responsabilidade da
game engine a integração com outras ferramentas como uma engine de física e a
manipulação de recursos externos como carregamento de áudio e de modelos 3D.
O desafio do labirinto proposto no game design atuará da seguinte maneira no modelo:
•
A API de realidade aumentada informaria o posicionamento e orientação dos
marcadores para a camada de integração;
•
A camada de integração adaptaria os dados enviados pela API de realidade
aumentada para um formato conhecido pela game engine;
•
A game engine carregaria o modelo 3D do labirinto e da esfera em memoria, e com
as informações dos marcadores processaria as novas posições e orientações dos
modelos e as enviaria para camada de integração.
•
A camada de integração adaptaria o modelo 3D e suas informações de posição e
orientação para um formato conhecido na API de realidade aumentada;
•
A API de realidade aumentada desenharia a imagem no marcador;
•
O processo se repete até o fim do jogo definido pela game engine;
Também foi proposta uma arquitetura para o desenvolvimento deste modelo utilizando a
game engine XNA e a API de realidade aumentada ARToolkit essa arquitetura baseada em
componentes (descrita na seção métodos), cada componente é responsável por ações de
comunicação entre as tecnologias. Por meio deste componente foi possível o
desenvolvimento de classes que possibilitam a criação da comunicação entre o XNA e a
ARToolkit, para isso foi necessário integrar duas linguagens de programação diferentes C e
C# realizada por meio da linguagem CLI C++, por meio destas tecnologias foi possível
desenvolver uma pequena aplicação de teste que permitia trocar de uma ambiente para o
12
Universidade Presbiteriana Mackenzie
outro, ou seja, dentro de um jogo feito em XNA foi possível ativar uma aplicação de
realidade aumenta, essa aplicação abria uma janela em azul (aplicação padrão do XNA) que
executa as funções gráficas e processamentos necessários em background e aguardava
que o usuário apertasse a tecla Enter e então disparava um evento na aplicação que
executa uma função dentro de uma dll CLI-C++ que executava uma aplicação utilizando
funções da ARToolkit.
CONCLUSÃO
É possível facilitar o desenvolvimento de jogos que utilizam realidade misturada e
aumentada por meio de uma integração de uma game engine com uma API de realidade
aumentada, por meio desta integração é possível desenvolver jogos com realidade
aumentada mais interativa e com mais recursos, por que as game engines possuem
diversos recursos para manipulação de objetos 3D, inserção de física e criação de
interação.
Como projetos futuros é pretendido o desenvolvimento dos demais componentes da
arquitetura proposta para a integração do XNA e da ARToolkit, e o desenvolvimento do jogo
proposto inicialmente, e a avaliação do desenvolvimento de um jogo por meio do modelo
proposto.
REFERENCIAS
ANDERSON, E. F. The Case for Research in Game Engine Architecture. ACM, 2008. 228231.
AUTODESK. Autodesk - 3D Design and Engineering Software for Architecture,
Manufacturing and Entertainment, 2011. Disponivel em: <http://usa.autodesk.com/>.
Acesso em: mar. 2011.
BLENDER. Blender org, 2011. Disponivel em: <http://www.blender.org/>. Acesso em: abr.
2011.
BYRNE. Game level design. [S.l.]: Charles River Media, 2005.
ENTERTAINEMENT SOFTWARE RATING BOARD. Video Game Industry Statistics. ESRB,
2009. Disponivel em: <http://www.esrb.org/about/video-game-industry-statistics.jsp>. Acesso
em: abr. 2011.
EPIC
GAMES.
Site
oficial
da
game
engine
Unreal,
2011.
Disponivel
em:
<http://www.unrealengine.com/>. Acesso em: abr. 2011.
EYEOFJUDGMENT. Site oficial do jogo Eye of judgment, 2011. Disponivel em:
<http://www.eyeofjudgment.com/>. Acesso em: abr. 2011.
13
VII Jornada de Iniciação Científica - 2011
GAMMA, E. et al. Desing Patterns Elements of Object-Oriented Software. [S.l.]: AddisonWesley, 2003.
HAVOK. Site oficial da Havok, 2011. Disponivel em: <http://www.havok.com/>. Acesso em:
ago. 2011.
ISHAK, E.; FEINER, S. Collaborative Mixed Reality Visualization of an. ACM, 2004.
JEFFREY, F. Down the Hyper-Spatial Tube: Spacewar and the Birth of Digital Game Culture.
Gamasutra, 2007. Disponivel em: <http://www.gamasutra.com>. Acesso em: mar. 2011.
KAKUTA, T. Shading and Shadowing of Architecture in Mixed Reality. ACM, 2005. 0-1.
KIRNER, C. Fundamentos de realidade virtual e aumentada. In: SISCOUTTO Realidade
virtual e aumentada: Uma abordagem Tecnológica. [S.l.]: SBC, 2008. p. 1-20.
LEWIS, J. J. M. Game engine in scientific research. ACM, 2002.
LOBÃO,
A.
Links
para
Jogos
-
Alexandre
Lobão,
2008.
Disponivel
em:
<http://www.alexandrelobao.com>. Acesso em: mar. 2011.
MICROSOFT. Site oficial do console XBox com Kinect, 2011. Disponivel em:
<http://www.xbox.com/en-US/Press/archive/2011/0308-Ten-Million-Kinects.>.
Acesso
em:
Julho 2011.
MICROSOFT. Site oficial da Microsoft para desenvolvedores Windows e Xbox, 2011.
Disponivel em: <http://create.msdn.com/en-US/>. Acesso em: abr. 2011.
NEWTON GAME DYNAMICS. Site oficial da engine de física Newton, 2011. Disponivel
em: <http://newtondynamics.com/forum/newton.php>. Acesso em: ago. 2011.
NILSSON, S.; JOHANSSON, B. A Cognitive Systems Engineering Perspective on the. ACM,
2005. 154-161.
NINTENDO WII. Site oficial do console Nintendo Wii, 2011. Disponivel em:
<http://www.nintendo.com/wii>. Acesso em: Julho 2011.
NVIDIA.
Site
oficial
do
produto
PhysX
da
Nvidia,
2011.
Disponivel
em:
Disponivel
em:
<http://www.nvidia.com/object/physx_new.html>. Acesso em: ago. 2011.
REIMANN, C. Adaptive mixed reality game. ACM, 2005. 302-305.
ROUSE, R. Game design: theory and practice. [S.l.]: Wordware, 2005.
SONY.
Site
oficial
do
console
Sony
Plastation,
2011.
<http://us.playstation.com/ps3/playstation-move/>. Acesso em: Julho 2011.
14
Universidade Presbiteriana Mackenzie
STAPLETON, C.; HUGHES, C. E. C.; HUGHES, C. E. The Art of Nurturing Citizen Scientists
through. ACM, 2005.
TAKEMURA, M. Photometric Inconsistency on a Mixed-Reality Face. ACM, 2006. 129-138.
UNITY. Site oficial da game engine Unity, 2011. Disponivel em: <http://unity3d.com/>.
Acesso em: mar. 2011.
W3C.
VRML
Virtual
Reality
Modeling
Language,
1995.
Disponivel
em:
<http://www.w3.org/MarkUp/VRML/>. Acesso em: abr. 2011.
WEB3D.
X3D
and
Related
Speci,
2011.
Disponivel
em:
<http://www.web3d.org/x3d/specifications/>. Acesso em: abr. 2011.
Contato: [email protected] e [email protected]
15
Download

Dennis José da Silva