Sei sulla pagina 1di 61

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/319331092

Desenvolvimento de Jogos Baseados em Localização

Thesis · January 2010


DOI: 10.13140/RG.2.2.13585.74085

CITATIONS READS

0 61

1 author:

Allan Cruz
Instituto Federal de Educação Ciência e Tecnologia do Maranhão (IFMA)
4 PUBLICATIONS   0 CITATIONS   

SEE PROFILE

Some of the authors of this publication are also working on these related projects:

Monografia View project

Orientações de Monografia View project

All content following this page was uploaded by Allan Cruz on 29 August 2017.

The user has requested enhancement of the downloaded file.


Universidade Federal do Maranhão
Centro de Ciências Exatas e Tecnologia
Curso de Ciência da Computação

Allan Kássio Beckman Soares da Cruz

DESENVOLVIMENTO DE JOGOS BASEADOS


EM LOCALIZAÇÃO

São Luís
2010
Allan Kássio Beckman Soares da Cruz

DESENVOLVIMENTO DE JOGOS BASEADOS


EM LOCALIZAÇÃO

Monografia apresentada ao Curso de Ciência da


Computação da Universidade Federal do Maranhão,
para a obtenção do grau de Bacharel em Ciência
da Computação.

Orientador: Prof. Dr. Anselmo Cardoso de Paiva.

São Luís
2010
Cruz, Allan Kássio Beckman Soares da
Desenvolvimento de jogos baseados em localização / Allan Kássio
Beckman Soares da Cruz. - São Luís, 2010
60f.
Impresso por computador (Fotocópia).
Orientador: Anselmo Cardoso de Paiva.
Monografia (Graduação) - Universidade Federal do Maranhão,
Curso de Ciência da Computação, 2010.

1. Sistemas baseados em localização 2. Jogo baseado em


localização 3. Android 4. Framework 5. GPS. I.Título.
CDU 004.7
Allan Kássio Beckman Soares da Cruz

DESENVOLVIMENTO DE JOGOS BASEADOS


EM LOCALIZAÇÃO

Monografia apresentada ao Curso de Ciência da


Computação da UFMA, como requisito para ob-
tenção parcial do grau de Bacharel em Ciência da
Computação.

Aprovado em 21 de dezembro de 2010

BANCA EXAMINADORA

Anselmo Cardoso de Paiva


Doutor em Informática

Carlos de Salles Soares Neto


Doutor em Informática

Geraldo Braz Júnior


Mestre em Engenharia de Eletricidade
À minha família. Aos meus mestres.
Aos meus amigos. Ao meu computador.
Resumo

Nos últimos anos os jogos baseados em localização têm mostrado um grande potencial para
a indústria do entretenimento eletrônico. Diversos jogos, frameworks e serviços têm sido
propostos para essa finalidade. Com o lançamento de aparelhos que permitem a aplicação
desses jogos fornecendo ao desenvolvedores e usuários equipamentos como Bluetooth, rede
Wi-Fi e GPS. Dentro desse contexto a Google lançou o sistema operacional Android que
nos proporciona um ambiente de desenvolvimento favorável para a criação de aplicações
móveis. Com o uso desse sistema e do conceito de jogos baseados em localização foi
desenvolvido um jogo chamado “O Roubo do Azulejo” para apresentar a facilidade de
criação e implementação de um jogo baseado em localização dentro dessa plataforma.

Palavras-chave: Sistemas baseados em localização. Jogo baseado em localização. Android.


Framework. GPS.
Abstract

In recent years, location-based games have shown a great potential for the electronic
entertainment industry. Several games, frameworks and services has been proposed for
this purpose. With the introduction of devices that allow the application of these games
to developers and users by providing equipment such as Bluetooth, Wi-Fi and GPS.
Within this context, Google released the Android operating system that provides us with
a favorable development environment for building mobile applications. Using this system
and the concept of location-based games designed a game called “O Roubo do Azulejo”
to show the ease of creating and implementing a game based on location within that
platform.

Keywords: Location-based systems. Location-based game. Android. Framework. GPS.


Agradecimentos

Aos meus pais Marco Antônio e Maria Lúcia, minha avó Maria do Carmo,
meus irmãos Ricardo Bruno e Jean Renan, minha irmã Deborah Duane, minha noiva
Pamela e a toda minha família que, com muito carinho e apoio, não mediram esforços
para que eu chegasse até esta etapa de minha vida.

Ao professor e orientador Anselmo Paiva pela paciência na orientação e incen-


tivo que tornaram possível a conclusão desta monografia. E por ter me acolhido tão cedo
no LabMINT, o que me permitiu um enorme aprendizado também fora da sala de aula.

A todos os professores do Departamento de Informática da UFMA e de outros


departamentos que me fizeram ver o quanto o estudo da computação é diversificado,
amplo e especial, em especial, Alexandre de Oliveira, Alexandre Vidal, Aristófanes Corrêa,
Braga Júnior, Carlos Salles, Geraldo Braz, Ivo Serra, Jorge Caracas, Luciano Coutinho,
Márcio Cléos, Maria Auxiliadora, Mário Teixeira e Simara Rocha, além de tantos outros
professores que contribuíram para minha formação.

Aos amigos e colegas, em especial, aos alunos que passaram pelo LabMINT,
que sempre serão uma extensão da minha família.

A todas as outras pessoas que direta ou indiretamente me ajudaram a chegar


até aqui.
“Não há emoção, há paz.
Não há ignorância, há conhecimento.
Não há paixão, há serenidade.
Não há caos, há harmonia.
Não há morte, há a Força.”
Código Jedi
Lista de Figuras

2.1 Videogame Game&Watch criado pela Nintendo . . . . . . . . . . . . . . . . 16

2.2 Jogador do Geocaching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.3 Jogadores do Pac-Manhattan . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.4 Técnicas de implementação de localização . . . . . . . . . . . . . . . . . . 18

2.5 Parte do tabuleiro do jogo Banco Imobiliário . . . . . . . . . . . . . . . . . 21

2.6 Telas da versão baseada em localização do jogo Pirates! . . . . . . . . . . . 23

2.7 Jogador de Epidemic Menace . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.8 Tela do jogo ARQuake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.9 Jogador observando tela do jogo Can You See Me Now . . . . . . . . . . . 24

2.10 Percurso de uma equipe dentro da área estipulada para o jogo . . . . . . . 24

2.11 Aplicação do Geocaching rodando em um celular com iOS . . . . . . . . . 25

2.12 Tela de um jogo do MinuteWar . . . . . . . . . . . . . . . . . . . . . . . . 25

2.13 Website do jogo ShuttersSpot com lista de desafios . . . . . . . . . . . . . 26

2.14 Lista de jogos do GeoGolf . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3.1 Modelo do arquivo AndroidManifest.xml para inclusão da biblioteca de


mapas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

3.2 Exemplo de classe para inserção de mapa . . . . . . . . . . . . . . . . . . . 32

3.3 Exemplo de XML para exibição de mapa . . . . . . . . . . . . . . . . . . . 32

3.4 Aplicação com mapa rodando no emulador Android . . . . . . . . . . . . . 33

3.5 Aplicação com Open Street Maps rodando no emulador Android . . . . . . 33

3.6 Exemplo de classe para criação de um Overlay . . . . . . . . . . . . . . . . 34

3.7 Controle do emulador do SDK Android . . . . . . . . . . . . . . . . . . . . 36


3.8 Controle via terminal telnet . . . . . . . . . . . . . . . . . . . . . . . . . . 37

3.9 Telas do Google Maps (Google, 2010) . . . . . . . . . . . . . . . . . . . . . 38

3.10 Telas do Google Sky Map (Google, 2010) . . . . . . . . . . . . . . . . . . . 38

3.11 Android Motonav em vista com perspectiva (Motorola, 2010) . . . . . . . . 39

3.12 AndNav2 com mapas Open Street Map (Gramlich, 2010) . . . . . . . . . . 39

4.1 Projeto de telas do jogo “O Roubo do Azulejo” . . . . . . . . . . . . . . . . 41

4.2 Fluxo de estados do jogo O Roubo do Azulejo . . . . . . . . . . . . . . . . 42

4.3 Modelo do banco de dados. . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

4.4 Telas inciais do jogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

4.5 Telas criação do jogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

4.6 Telas busca e exibição dos objetivos do jogo . . . . . . . . . . . . . . . . . 45

4.7 Telas complementares do jogo . . . . . . . . . . . . . . . . . . . . . . . . . 46

4.8 Testando o GPS com coordenadas do estudo do Rio de Janeiro . . . . . . . 47


Lista de Tabelas

3.1 Parâmetros de Localização. Fonte: (Lecheta, 2010) . . . . . . . . . . . . . 35

3.2 Opções de Envio de Infromação. Fonte: (Lecheta, 2010) . . . . . . . . . . . 36


9

Lista de Siglas

ADT - Android Development Tools (Ferramentas de Desenvolvimento Android)


A-GPS - Assisted Global Positioning System (Sistema de Posicionamento Global Assis-
tido)
AOA - Angle of Arrival (Ângulo de Chegada)
AOSP - Android Open Source Project (Projeto de Código Livre Android)
API - Application Programming Interface (Interface para Programação de Aplicações)
APK - Android Package (Pacote Android)
AWT - Abstract Window Toolkit (Ferramenta Abstrata de Janelas)
CEP - Código de Endereçamento Postal
CLDC - Connected Limited Device Configuration (Configuração de Dispositivo com
Conexão Limitada)
DEX - Dalvik Executable (Executável Dalvik)
E-OTD - Enhanced Observed Time Difference (Diferença de Tempo Observada Realçada)
ERB - Estações Rádio Base
FRAP - Framework for Pervasive Games (Arcabouço para Jogos Pervasivos)
GLONASS - Global Navigation Satellite System (Sistema de Satélites de Navegação
Global)
GPS - Global Positioning System (Sistema de Posicionamento Global)
GPX - GPS eXchange Format (Formato de Intercâmbio GPS)
GSM - Global System for Mobile Communications (Sistema Global para Comunicações
Móveis)
IBM - International Business Machines
IDE - Integrated Development Environment (Ambiente de Desenvolvimento Integrado)
iOS - iPhone Operational System (Sistema Operacional iPhone)
J2ME - Java 2 Micro Edition
JAR - Java Archive (Arquivo Java)
JBL - Jogos Baseados em Localização
JIT - Just-In-Time
KML - Keyhole Markup Language
KMZ - Keyhole Markup Language Zipped
MIDP - Mobile Information Device Profile (Perfil de Informações para Dispositivos
Móveis)
MIT - Massachusetts Institute of Technology (Instituto de Tecnologia de Massachusetts)
OHA - Open Handset Alliance
OSM - Open Street Maps
PM2G - Pervasive Multiplayer Multiplatform Game (Jogo Pervasivo Multiplataforma
para Múltiplos Jogadores)
POI - Point Of Interest (Pontos de Interesse)
SBL - Sistemas Baseados em Localização
SD - Secure Digital
SDK - Software Development Kit (Conjunto para desenvolvimento de software)
SGL - Skia Graphics Library (Biblioteca de Gráficos Skia)
SQL - Structured Query Language (Linguagem de Consultas Estruturadas)
SSL - Secure Sockets Layer (Camada Segura de Soquetes)
TDOA - Time Difference of Arrival (Diferença de Tempo de Chegada)
WLAN - Wireless Local Area Network (Rede Local Sem Fio)
XML - Extensible Markup Language (Linguagem de Marcação Extensiva)

10
Sumário

Lista de Figuras 6

Lista de Tabelas 8

Lista de Siglas 9

1 Introdução 13

1.1 Trabalhos Relacionados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2 Jogos Baseados em Localização 16

2.1 Técnicas de Localização . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.2 Frameworks para Desenvolvimento de JBLs . . . . . . . . . . . . . . . . . 19

2.3 Exemplos de Jogos Baseados em Localização . . . . . . . . . . . . . . . . . 22

3 Andoid, Mapas e suas Aplicações 27

3.1 O Sistema Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3.1.1 O que é Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3.1.2 Máquina virtual Dalvik . . . . . . . . . . . . . . . . . . . . . . . . . 28

3.1.3 Android SDK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.1.4 Armazenamento e leitura de dados . . . . . . . . . . . . . . . . . . 29

3.2 Aplicações com Mapas no Android . . . . . . . . . . . . . . . . . . . . . . 30

3.2.1 Aplicações Usando GPS . . . . . . . . . . . . . . . . . . . . . . . . 35

3.3 Exemplos de Aplicações com Mapas e GPS . . . . . . . . . . . . . . . . . . 37

4 Jogo Baseado em Localização: “O Roubo do Azulejo” 40

4.1 Projeto do Jogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40


4.1.1 A ideia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

4.1.2 Estados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

4.2 Desenvolvimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

4.2.1 Testando o GPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

4.2.2 Validando os Processos do Jogo . . . . . . . . . . . . . . . . . . . . 47

5 Conclusão 49
13

1 Introdução
Com o surgimento de dispositivos portáteis com mais recursos, mais leves
e com mais velocidade de processamento, além do desenvolvimento e barateamento de
tecnologias como redes sem fio e tecnologias de localização e principalmente da crescente
demanda comercial, tem sido mais fácil se comunicar e realizar as mais diversas atividades
com outras pessoas em qualquer lugar do mundo.

Ao mesclar os dispositivos móveis, redes sem fio e informações de localização


foi possível a criação e o desenvolvimento de uma nova área da computação conhecida
como Serviços Baseados em Localização (LBS1 ) (Schiller e Voisard, 2004). Essa área tem
como objetivo estudar maneiras de fornecer aos usuários serviços e ferramentas que de-
pendem da localidade onde estes se encontram. Esses serviços e ferramentas dependem de
informações que podem ser diretamente mapeadas para uma localização no mundo real.
Essas informações geralmente são codificadas em pontos de interesse (POIs) e representa-
das em mapas geo-referenciados. Tais dados geográficos podem ser mapeados e exibidos
por uma aplicação baseada na localização de acordo com a localização real do usuário
(Baldzer et al., 2004).

Serviços Baseados em Localização constituem uma área relativamente nova da


Computação que tem ganho impulso nos últimos anos devido ao rápido desenvolvimento
das tecnologias que lhe dão suporte (computação móvel, redes sem fio e tecnologias de
localização) e ao aumento de sua demanda comercial. Devido à sua natureza dinâmica
e heterogênea, esse domínio impõe uma série de desafios que estão sendo enfrentados
por diversos grupos de pesquisa ao redor do mundo (Gonçalves, 2005). Dentro dos LBS,
existem diversas ramificações quanto à funcionalidade e aplicação. Como por exemplo
serviços de informação, serviços de rastreamento, serviços de divulgação seletiva de infor-
mação, Jogos Baseados em Localização (JBL) e serviços de apoio e emergência (Schiller
e Voisard, 2004).

O objetivo deste trabalho é apresentar o conceito e a aplicação dos LBS, tendo


como foco principal os jogos baseados em localização. E estudar o uso de ferramentas
1
Do inglês Location Based Services
1.1 Trabalhos Relacionados 14
para o desenvolvimento de jogos baseados em localização.

Como exemplo de implementação apresenta-se um jogo baseado em localiza-


ção chamado “O Roubo do Azulejo”. Esse jogo deve ser desenvolvido em Java sobre
a plataforma Android, utilizando as API (Application Programming Interface) de loca-
lização e de banco de dados SQLite fornecidas pelo SDK (Software Development Kit)
Android. O jogo deve ser suportado por celulares com o sistema operacional Android, a
partir da versão 1.6.

O restante do trabalho está organizado nos seguintes capítulos:

O Capítulo 2 onde são apresentados a origem e o conceito dos jogos baseados


em localização, além de técnicas de implementação dos serviços de localização, frameworks
existentes para o desenvolvimento e por fim exemplos de jogos baseados em localização.

O Capítulo 3 explica a plataforma Android, assim como o uso de mapas nessa


plataforma e mostra exemplos de aplicações.

O Capítulo 4 mostra o projeto desenvolvido, seus testes e avaliações.

O Capítulo 5 apresenta a conclusão do trabalho, além de sugestões para tra-


balhos futuros.

1.1 Trabalhos Relacionados

Embora seja uma realidade relativamente nova, o uso e o desenvolvimento


de Jogos Baseados em Localização têm sido estudo de vários pesquisadores ao redor do
mundo. Essas pesquisas vão desde a elaboração e desenvolvimento de um jogo baseado
em localização até a construção de um framework para auxiliar nesse trabalho.

Em (Bezerra, 2007) é realizado um estudo sobre computação ciente de con-


texto, serviços baseados em localização, jogos móveis e jogos baseados em localização, e,
propõe uma extensão para o middleware de suporte a jogos PM2G2 (Trinta, 2007). Esta
extensão, sob forma de um Serviço de Localização, permite que usuários de dispositivos
móveis utilizem sua localização física, obtida via GPS (Global Positioning System), como
um elemento integrante da dinâmica dos jogos. O seu foco está na utilização da localiza-
2
Pervasive Multiplayer Multiplatform Game (Jogo Pervasivo Multiplataforma para Múltiplos Jo-
gadores)
1.1 Trabalhos Relacionados 15
ção do usuário em ambientes externos. Para validar a extensão foram definidos cenários
que exploram algumas das possibilidades oferecidas por este tipo de serviço e, a partir
destes cenários, foi desenvolvido o protótipo de uma aplicação simples que faz uso da
informação de localização física do usuário.

Já em (Björk e Ljungstrand, 2007) foi desenvolvido um jogo multijogador


chamado “Pirates! ”, implementado em computadores de mão conectados em uma rede
local sem fio (WLAN), permitindo aos jogadores percorrer a arena do jogo dentro de
um ambiente físico. Foi desenvolvido para celular, para facilitar que as propriedades do
mundo real, tais como locais, objetos e estados de co-localização entre vários jogadores,
sejam adaptadas para elementos do jogo.

E em (Valente, 2007) são analisadas algumas abordagens para se lidar com


as limitações de natureza técnica e de infraestrutura disponível, através de exemplos.
Os exemplos são jogos baseados em localização, para telefones celulares. São descritos
métodos de localização que podem ser usados em aplicações para telefones celulares. Além
de estratégias para se lidar com as limitações dos métodos de localização.

Portanto devemos estudar os LBS e os JBS levando em consideração os dispo-


sitivos, a infraestrutura disponível e os métodos de localização que melhor se adequam à
proposta do sistema.
16

2 Jogos Baseados em Localização


Os jogos baseados em localização (também conhecidos como jogos pervasivos)
tiveram origem a partir da combinação entre os jogos móveis e os serviços baseados em
localização.

Os jogos em dispositivos móveis datam dos anos oitenta, quando a fabricante


de vídeo games Nintendo lança o Game&Watch mostrado na Figura 2.1. Desde então esse
mercado de jogos portáteis só tem evoluído, englobando como plataformas desde consoles
de video game e celulares, até tocadores de música e e-readers.

Figura 2.1: Videogame Game&Watch criado pela Nintendo

Entre os primeiros jogos baseados em localização temos o Geocaching (Geo-


caching, 2010), criado em 2000 e o Pac-Manhattan (Bloomberg et al., 2004), desenvolvido
em 2004. O primeiro tem como objetivo encontrar tesouros” espalhados pelo globo ter-
restre como podemos ver na Figura 2.2 e conta com uma comunidade ativa de aproxi-
madamente quatro milhões de membros. O segundo é uma releitura do clássico Pac-Man,
para ser jogado nas ruas de Manhattan como mostra a Figura 2.3.

Figura 2.2: Jogador do Geocaching Figura 2.3: Jogadores do Pac-Manhattan

Segundo (Bezerra, 2007), jogos baseados em localização utilizam a localização


2.1 Técnicas de Localização 17
física do jogador como o principal elemento do jogo, exigindo o seu deslocamento em
lugares reais, como parques e ruas, de modo que as suas ações no mundo real – como
encontrar alguém, objetos virtuais ou se esconder – venham a alterar o estado do mundo
virtual.

Por outro lado, os jogos pervasivos são uma forma radicalmente nova de jogo
que estende experiências de dentro do jogo para o mundo físico (Mcgonigal et al., 2006).

E buscando uma explicação mais genérica, (Lundgren e Björk, 2003) propõem


que um jogo pervasivo é um jogo espacialmente, temporalmente, ou socialmente ambíguo.

Sendo assim, podemos entender que um jogo baseado em localização é um jogo


no qual a dinâmica do mundo virtual depende obrigatoriamente da dinâmica do mundo
real. Onde determinadadas ações do mundo real, interfiram no mundo virtual, permitindo
assim o surgimento de novas situações em ambos os mundos. E a localização do jogador
é uma ação levada em conta na dinâmica do jogo.

2.1 Técnicas de Localização

As técnicas de localização são os processos utilizados para determinar o posi-


cionamento de um dispositivo em um determinado ambiente. O resultado do processo
pode ser representado como coordenadas (latitude, longitude e altitude), pontos de refe-
rência (próximo de A ou em frente à A) ou nome de uma localidade (Rua Três ou CEP:
65000-000). Esses resultados pode ser mais ou menos precisos, dependendo da técnica
utilizada (Wiegmans, 2005)

Existe uma grande diversidade de técnicas de localização existentes no mer-


cado. Para facilitar seu estudo elas podem ser classificadas como mostra a Figura 2.4
em relação ao local onde as coordenadas de posicionamento são coletadas e calculadas,
ou ainda em relação a mobilidade. A classificação em relação ao local se divide em três
grupos: baseadas em dispositivos (handset-based ), baseadas em rede (network-based ) e
híbridas, que se utilizam tanto da rede quanto dos dispositivos. E a classificação em
relação a mobilidade se divide em Mobilidade Macro, onde se apresentam técnicas que
garantem a possibilidade de uma grande diferença de distância entre dois resultados do
mesmo processo, como exemplo as três categorias de classificação em relação ao local; e
Mobilidade Micro, onde são apresentadas técnicas de pequena diferença de localização, e
2.1 Técnicas de Localização 18
em geral em ambientes pequenos e fechados, como exemplo técnicas que utilizam Bluetooth
e Active Badges (Lopes et al., 2006) (Valente, 2007).

Figura 2.4: Técnicas de implementação de localização

As técnicas de localização baseadas em rede, em geral, se utilizam da infraestru-


tura já existente das operadoras de telefonia e das redes locais sem fio, para encontrar a lo-
calização dos dispositivos. Entre as principais técnicas desta categoria podemos destacar:

• Cell-ID: usada nas redes GSM (Global System for Mobile), esta técnica identifica a
célula na qual o usuário está conectado, para mapear essa informação em coorde-
nadas, estimando assim a localização do usuário.

• Time Difference of Arrival (TDOA): chamado de triangulação de antenas, esse


método faz uso da diferença de chegada dos sinais de rádio emitidos pelo dispositivo
às Estações Rádio Base (ERBs). São necessárias pelo menos três ERBs para calcular
a localização do usuário.

• Angle of Arrival (AOA): esta técnica usa um equipamento presente nas ERBs que
determina o ângulo de chegada dos sinais de rádio. A partir de cálculos geométricos
utilizando apenas duas ERBs, é possível determinar a localização do usuário.

Ao contrário das técnicas baseadas em rede, as técnicas baseadas em disposi-


tivos utilizam o próprio dispositivo para calcular o seu posicionamento, fornecendo sua
localização sem necessidade de ajuda das redes de comunicação móveis. Existem no mundo
duas grandes técnicas baseadas em dispositivos, que são extremamente parecidas:
2.2 Frameworks para Desenvolvimento de JBLs 19
• Global Positioning System (GPS): utiliza uma rede de 24 satélites geoestacionários
para triangularizar a posição de um receptor e prover as coordenadas de latitude,
longitude e altitude. Pode-se implementar esse posicionamento tanto via acessórios
GPS, ou como uma solução integrada em um dispositivo móvel. Possui uma precisão
de 15 a 100 metros, mas entretanto, não funciona adequadamente em ambientes
fechados.

• Global Navigation Satellite System (GLONASS): Uma alternativa Russa ao GPS,


ele utiliza uma rede de 24 satélites geoestacionários e além de latitude, longitude e
altitude ele provê a velocidade do dispositivo. Sua precisão fica em torno de 57 a 70
metros e também não funciona corretamente em ambientes fechados.

As técnicas híbridas de localização utilizam-se da mistura de técnicas baseadas


em rede e em dispositivo, para melhorar a qualidade do sinal, diminuir o consumo de
energia e melhorar a precisão tanto em ambientes fechados quanto abertos. Entre eles
destacam-se:

• Assisted Global Positioning System (A-GPS): essa técnica utiliza as células das redes
móveis para melhorar a precisão do GPS e assim funcionar em locais fechados.

• Enhanced Observed Time Difference (E-OTD): é usada apenas nas redes GSM. Em
contrapartida ao GPS, essa técnica utiliza um software instalado no dispositivo para
o cálculo das informações recebidas da rede GSM.

2.2 Frameworks para Desenvolvimento de JBLs

Framework é um conjunto de classes que colaboram para realizar uma respon-


sabilidade para um domínio de um subsistema da aplicação (Fayad e Schmidt, 1997). Ou
seja, o framework é algo criado para facilitar e manter um padrão ao desenvolvimento de
uma aplicação. Existem vários frameworks para o desenvolvimento de jogos em geral e
de jogos para celular como por exemplo o Exit Games Neutron 3.5 (Exit Games, 2006) e
o Snap Mobile da Nokia (Nokia, 2009). Entretanto, para jogos baseados em localização,
não existe uma variedade grande de frameworks comerciais.

Em geral, os frameworks para jogos baseados em localização possibilitam o


2.2 Frameworks para Desenvolvimento de JBLs 20
desenvolvimento de aplicações baseadas em localização provendo mapas, ferramentas de
localização e outros elementos que facilitem a implementação do jogo.

Entre poucos frameworks existentes podemos citar o Framework for Per-


vasive Games (FRAP) (Tutzschke e Zukunft, 2009), o Geogames (Schlieder et al.,
2006) e o Mobile Chase (Fetter et al., 2007).

O FRAP não dá suporte a todos os tipos de jogos baseados em localização.


Ele se restringe ao domínio dos jogos do tipo “rouba bandeira” 1 . Os requerimentos iniciais
foram capturados a partir da experiência de jogar outros jogos do mesmo escopo.

Entre esses requerimentos destacam-se: verificar a concordância dos movimen-


tos do jogador com a regra criada; modificar dados dos jogadores; prover canais de comu-
nicação entre os jogadores; ativar e reagir a eventos; registrar, administrar e autenticar
usuários para controle de pontuação e classificação dos jogadores; funcionar em ambientes
externos (usando GPS) e em ambientes internos (usando triangulação Wi-Fi ).

Para validá-lo foi criado um jogo chamado “King of Location”, usando o má-
ximo possível das ferramentas fornecidas para atender os requisitos estabelecidos. Nesse
jogo os desenvolvedores perceberam que o FRAP tem um grande potencial em relação a
outros frameworks parecidos, no entanto existe ainda a necessidade de uma melhor per-
formance além da correção de possíveis erros que não foram encontrados durante os testes
de avaliação da ferramenta.

O Geogames foi definido para auxiliar no desenvolvimento de jogos de tabuleiro


(como damas, xadrez ou jogo-da-velha) baseados em localização e com vários jogadores.

Junto ao framework foi desenvolvida uma ferramenta de análise para verificar


os dados do jogo e determinar uma possível mudança para aumentar o equilíbrio de acordo
com as habilidades motoras dos jogadores (percepção e velocidade).

Originalmente jogos de tabuleiro são jogados em um espaço figurado, em uma


representação de algo imaginado ou real como vemos no jogo Banco Imobiliário na Figura
2.5. Para criar uma versão de um desses jogos baseada em localização, o jogo deverá ser
mapeado em um ambiente real que possibilite a movimentação dos jogadores. Os autores
do framework chamam essa adaptação de espacialização.
1
O objetivo desse tipo de jogo é capturar a bandeira da equipe adversária antes de ter a sua bandeira
capturada(CDOF, 2010).
2.2 Frameworks para Desenvolvimento de JBLs 21

Figura 2.5: Parte do tabuleiro do jogo Banco Imobiliário

O framework descreve que o estado de um jogo é definido pelas localizações


de seus jogadores e pela maneira como os recursos são distribuídos entre os jogadores
e ao longo das diversas localizações. As ações são descritas como transições entre es-
tados. E combinadas descrevem a movimentação de uma localização para outra e a
coleta/devolução de um recurso.

Para garantir isso ele utiliza duas restrições básicas para as ações: a coerência
espacial e a coerência temporal.

Na coerência espacial um jogador pode coletar ou devolver um recurso, so-


mente se ele estiver na mesma localização do recurso, e nenhum recurso pode aparecer ou
desaparecer de uma localização sem a interação de um jogador.

Na coerência temporal toda ação realizada consome um tempo igual a soma da


sua duração e do tempo de sincronização com os outros dispositivos envolvidos no jogo.

Para validar o framework foi desenvolvido um jogo-da-velha geográfico, no


qual os jogadores percorriam uma área real, um de cada vez, até atingirem o objetivo do
jogo. Com isso, foi possível verificar que embora conceitual, o framework abrange com
qualidade uma grande variedade de jogos de tabuleiro que podem ser portados para o
mundo real.

O Mobile Chase define uma plataforma genérica cliente-servidor para jogos


baseados em localização. Dando aos desenvolvedores a liberdade necessária para imple-
mentar seus conceitos sem muitas limitações técnicas ou a necessidade de um aparelho
portátil específico.
2.3 Exemplos de Jogos Baseados em Localização 22
Para isso foi especificado que um aparelho celular com suporte a J2ME, MIDP
2.0 e CLDC 1.1 com acesso a rede e um mecanismo de rastreamento que permita chegar ao
nível de endereço – necessário para uma possível geocodificação reversa – seria o requisito
mínimo para suportar a aplicação. Esse framework foi totalmente desenvolvido em Java.

Nesse framework são sugeridas quatro entidades básicas geralmente encon-


tradas em jogos baseados em localização. São elas: usuário; marcador; objetivo; e men-
sagem.

A classe usuário representa o jogador, podendo ser humano ou virtual. A classe


marcador modela lugares ou objetos com um posicionamento relevante ao jogo. Tanto
usuário quanto marcador têm um elemento espacial, ou seja, sua posição.

A classe objetivo descreve uma meta que deve ser alcançada. Cada objetivo
tem um dono que deve completar a tarefa. Esse dono pode ser um usuário ou um mar-
cador.

A classe mensagem foi modelada para os usuários enviarem mensagens uns aos
outros ou deixarem mensagens representadas em marcadores ou ainda para marcadores
exibirem mensagens aos usuários.

Para a validação foi criado um jogo com o mesmo nome do framework que
consistia em grupos diferentes de jogadores competirem pela realização de uma tarefa. O
Mobile Chase se mostrou um framework versátil tanto em tipos de jogos que podem ser
criados a partir dele, quanto em tipos de aparelhos que permitem o seu funcionamento.

2.3 Exemplos de Jogos Baseados em Localização

Além dos citados anteriormente usados para validar seus respectivos frame-
works existem diversos jogos comerciais e acadêmicos na categoria baseado em localiza-
ção.

Em “Pirates! ” (Björk e Ljungstrand, 2007) , que é um homônimo de um jogo


para computador criado por Sid Meier, a tarefa consiste em “velejar” entre as diferentes
localizações que representam as ilhas para procurar tesouros e travar batalhas entre jo-
gadores próximos como é mostrado na Figura 2.6. Tudo isso com o uso de computadores
de mão, WLAN e sensores de proximidade.
2.3 Exemplos de Jogos Baseados em Localização 23

Figura 2.6: Telas da versão baseada em localização do jogo Pirates!

Usando realidade aumentada, localização e diversos aparelhos portáteis, o jo-


gadores de “Epidemic Menace” (Lindt et al., 2006) visto na Figura 2.7 deve prevenir que
um perigoso vírus escape de um campus universitário.

Figura 2.7: Jogador de Epidemic Menace

“ARQuake” (Thomas et al., 2002) apresenta o uso de realidade aumentada


combinado a localização do jogador, recriando a jogabilidade do clássico Quake, onde o
jogador passeia por prédios enfrentando monstros como na Figura 2.8 e encontrando itens
e explorando locais.

Figura 2.8: Tela do jogo ARQuake


2.3 Exemplos de Jogos Baseados em Localização 24
Outro exemplo que se utiliza de diversos aparelhos portáteis, entre antenas e
GPS está o “Can You See Me Now” (Flintham et al., 2003). Esse jogo foi criado visando
um número de vinte pessoas do público, online em diversos computadores e mais três
jogadores como o que observa a tela na Figura 2.9, que devem percorrer o mais rápido
possível a área onde estão essas pessoas, as quais deverão identificar.

Figura 2.9: Jogador observando tela do jogo Can You See Me Now

O jogo “CityPoker” (Kiefer et al., 2005) foi concebido como um jogo baseado
em localização em 2004. É jogado por dois jogadores ou duas equipes, que começam com
uma determinada quantidade de cartas na mão e devem se mover em um ambiente ao
ar livre como o ilustrado na Figura 2.10 para encontrar cartas escondidas, de modo a
melhorar o conjunto de cartas em sua mão.

Figura 2.10: Percurso de uma equipe dentro da área estipulada para o jogo
2.3 Exemplos de Jogos Baseados em Localização 25
“Geocaching” (Geocaching, 2010) é um jogo em que os jogadores devem escon-
der objetos para que outros jogadores encontrem utilizando-se do GPS. Tradicionalmente,
o objeto oculto é um recipiente impermeável com um diário de bordo e algum prêmio de
baixo custo. Os jogadores são incentivados a coletar os prêmios e espalhar novos prêmios.
Esse é um dos mais antigos jogos baseados em localização. Antes jogado de forma rudi-
mentar utilizando apenas aparelhos de GPS e informações alimentadas manualmente no
site oficial, hoje existem versões do jogo para os sistemas operacionais iOS (como mostra
a Figura 2.11) e Android.

Figura 2.11: Aplicação do Geocaching rodando em um celular com iOS

“MinuteWar” (GPSGames.org, 2010b) é um jogo baseado no estilo “capturar


a bandeira”, utilizando todo o mundo como o campo de jogo e receptores de GPS para
navegação. Cada jogador do mundo usa o seu próprio mapa local, mas todos os mapas são
combinados de modo que todos os jogadores competem contra todos, ao mesmo tempo,
não importa onde eles vivem.

Os mapas estão divididos em quadrados como vemos na Figura 2.12, cada um


minuto de longitude de largura e um minuto de latitude de altura. Cada casa contém um
sinalizador virtual. Basta visitar o local para capturar a bandeira.

Figura 2.12: Tela de um jogo do MinuteWar


2.3 Exemplos de Jogos Baseados em Localização 26
Bastante parecido com o Geocahing, o jogo “ShuttersSpot” (GPSGames.org,
2010c) consiste na idéia de que alguns jogadores devem tirar fotografias e outros jogadores
devem encontrar o local exato onde o fotógrafo estava quando a imagem foi fotografada.
Nesse jogo não são passadas as coordenadas especificas do local (latitude e longitude),
mas apenas a foto da localização como podemos ver na Figura 2.13.

Figura 2.13: Website do jogo ShuttersSpot com lista de desafios

Em cada jogo de “GeoGolf” (GPSGames.org, 2010a) são criados buracos de


golfe, todos em torno de um ponto de partida que o jogador especificar. Os locais exatos
dos furos são escolhidos aleatoriamente por computador, de forma que os furos não sejam
criados em áreas oceânicas. Sendo assim, o jogador deve tentar chegar o mais perto
possível de cada buraco para conseguir sua pontuação. Na Figura 2.14 vemos uma lista
de jogos criados previamente.

Figura 2.14: Lista de jogos do GeoGolf


27

3 Andoid, Mapas e suas Aplicações


Nesse capítulo apresentamos o sistema operacional Android, usado como base
para o desenvolvimento de um jogo baseado em localização. Além disso, veremos como
se dá a utilização de mapas no desenvolvimento de aplicações para Android, e exemplos
de aplicações comerciais neste ambiente.

3.1 O Sistema Android

3.1.1 O que é Android

Android é um sistema operacional desenvolvido inicialmente pela Android Inc.


Posteriormente foi comprado pela Google em 2005 (Elgin, 2005).

O Android é baseado em uma versão modificada do kernel do Linux. A Google


e outros membros da Open Handset Alliance (OHA) colaboram para o desenvolvimento
e lançamento de novas versões (Open Handset Alliance, 2007).

O Android Open Source Project (AOSP) é encarregado da manutenção e do


desenvolvimento do Android (Android, 2010a).

As vendas unitárias de smartphones com o sistema operacional Android estão


classificadas em primeiro lugar entre todos os smartphones vendidos nos Estados Unidos
no segundo e terceiro trimestres de 2010 (Wolverton, 2010)(Madway e Wallace, 2010),
com uma participação de mercado no terceiro trimestre de 43,6% (The Nielsen Company,
2010).

Existe uma grande comunidade de desenvolvedores que escrevem aplicativos,


também chamados de “apps”, que aumentam as funcionalidades dos aparelhos. Existem
aproximadamente cem mil aplicativos disponíveis para Android (AndroidDev, 2010)(Mur-
phy, 2010).

O Android Market é uma loja online de aplicativos mantida pela Google nos
mesmos modelos da AppStore da Apple, mas diferentemente, os aplicativos podem ser
baixados de sites de terceiros e instalados nos aparelhos. Os aplicativos são escritos em
3.1 O Sistema Android 28
Java a partir de bibliotecas desenvolvidas pela Google (Android, 2010h).

O início da distribuição do Android ocorreu em 5 de novembro de 2007 com


a fundação da OHA, um consórcio de setenta e oito empresas de hardware, software e
de telecomunicações dedicado à promoção de padrões abertos para dispositivos móveis
(Open Handset Alliance, 2010b). A Google lançou o código do Android sob a licença
Apache, como software livre e de código aberto (Open Handset Alliance, 2010a).

Como afirma (Pereira e da Silva, 2009), o sistema Android foi construído com
a intenção de permitir aos desenvolvedores criar aplicações móveis que possam tirar total
proveito do que um aparelho portátil possa oferecer. Foi construído para ser verdadeira-
mente aberto. Por exemplo, uma aplicação pode apelar a qualquer uma das funcionali-
dades de núcleo do telefone, tais como efetuar chamadas, enviar mensagens de texto ou
utilizar a câmera, que permite aos desenvolvedores adaptarem e evoluírem cada vez mais
estas funcionalidades.

As aplicações para o Android são desenvolvidas a partir de um framework Java


rodando em uma máquina virtual Dalvik com compilação JIT (Just-In-Time). Entre as
bibliotecas escritas em linguagem C estão incluídas o gerenciador de superfície, o frame-
work de mídias OpenCore (OpenCore, 2010), o sistema de banco de dados relacional
SQLite, a API de gráficos 3D OpenGL ES 2.0, o mecanismo de layout WebKit, o meca-
nismo de gráficos SGL (Skia Graphics Library), o protocolo de comunicação SSL (Secure
Sockets Layer ), e a Bionic libc.

3.1.2 Máquina virtual Dalvik

Antes da execução, os aplicativos do Android são convertidos para o formato


executável Dalvik (de extensão .DEX), que foi adequadamente projetado para sistemas
que são limitados em termos de memória e velocidade do processador (Bray, 2010).

A máquina virtual Dalvik também é software livre de código aberto. Foi


originalmente escrita por Dan Bornstein (DeLacey, 2007).

É importante observar que a Dalvik não se alinha ao Java SE ou Java ME em


suas bibliotecas (por exemplo, classes Java ME, AWT (Abstract Window Toolkit) e Swing
não são suportadas) (Delap, 2007). Em vez disso, usa sua própria biblioteca (Android,
2010g), construído sobre um subconjunto da implementação Apache Harmony Java.
3.1 O Sistema Android 29
3.1.3 Android SDK

O Android Software Development Kit (SDK) inclui um conjunto abrangente


de ferramentas de desenvolvimento (Android, 2010f). Entre elas estão incluídos um de-
bugger, bibliotecas, um emulador de terminal móvel (baseado no QEMU), documentação,
exemplos de códigos e tutoriais.

Atualmente as plataformas de desenvolvimento suportados incluem computa-


dores que executam o Linux (qualquer distribuição moderna de Linux), Mac OS X 10.4.9
ou superior e Windows XP ou posterior. O ambiente de desenvolvimento integrado (IDE)
apoiado oficialmente é o Eclipse (atualmente na versão 3.6) usando o plugin Android
Development Tools (ADT), no entanto os desenvolvedores podem usar qualquer editor
de texto para editar arquivos Java e XML, e em seguida, usar ferramentas de linha de
comando (Java Development Kit e Apache Ant são necessários) para criar e depurar os
aplicativos Android, assim como os dispositivos de controle anexados ao Android (por
exemplo, provocando uma reinicialização ou a instalação de pacotes de softwares) (West-
fall, 2010). A SDK do Android está na versão 2.3 e com previsão de lançamento da versão
3.0 para o final de 2011 (Android, 2010b).

O SDK também oferece suporte a versões antigas da plataforma para desen-


volvedores que desejam atingir usuários de dispositivos mais antigos. As ferramentas de
desenvolvimento são componentes para download, assim depois de se ter baixado a última
versão, as plataformas e ferramentas mais antigas também podem ser baixadas para testes
de compatibilidade (Android, 2010e).

Os aplicativos para Android são empacotados em formato “.apk” e armazenado


na pasta “/app/dados” dentro do sistema operacional Android (a pasta é acessível apenas
para o usuário root por razões de segurança). Os pacotes APK (Android Package) contém
os arquivos “.dex” (Android, 2010c), arquivos de recursos, e outras informações necessárias
da aplicação.

3.1.4 Armazenamento e leitura de dados

O Android possui uma integração com o SQLite. Permitindo que o desen-


volvedor utilize um banco de dados em sua aplicação. O banco de dados é visível apenas
pelo aplicativo que o criou. Para acessar dados de outros aplicativos existe uma interface
3.2 Aplicações com Mapas no Android 30
chamada Content Provider.

A biblioteca SQLite foi desenvolvida para trabalhar bem em dispositivos móveis.


Ela é poderosa em termos de recursos, é leve em termos de dados e memória e possui uma
alta disponibilidade. Essas características são essenciais em um aparelho celular.

Segundo (Rogers et al., 2009), a confiabilidade é um recurso essencial do


SQLite. Mais de metade do código do projeto é dedicada a testes da biblioteca. A
biblioteca é projetada para lidar com muitos tipos de falhas do sistema, como pouca
memória, erros do disco e falhas de energia. Em nenhum caso o banco de dados deve
enfrentar um estado irrecuperável: isso seria uma catástrofe em um telefone celular, onde
os dados essenciais muitas vezes são armazenados em um banco de dados. Se esse banco
de dados for facilmente suscetível a uma corrupção, o celular se tornaria um peso de papel
caro no caso da bateria falhar em um momento inoportuno.

Na interface Content Provider a aplicação que hospeda os dados os gerencia


por meio de operações básicas de criação, leitura, atualização e exclusão. A aplicação que
acessa os dados usa uma API semelhante, transmitindo as requisições do cliente para o
servidor (Rogers et al., 2009).

Ao utilizar a API do Android para o SQLite, após criar o banco de dados


é possível executar scripts SQL (Structured Query Language) dentro do aplicativo para
criar tabelas e preencher os dados, além de realizar as outras operações comuns em SQL
como inserir, deletar, atualizar e consultar (Android, 2010d).

Além do SQLite é possível também salvar e ler arquivos. Da mesma forma


que no banco de dados, cada arquivo pertence ao aplicativo que o criou e por padrão não
pode ser utilizado por outros aplicativos. (Pereira e da Silva, 2009)

Para manipular os arquivos são utilizadas as classes Java tradicionais para


essas tarefas, sendo assim cabe ao desenvolvedor definir se o conteúdo salvo será texto ou
binário.

3.2 Aplicações com Mapas no Android

A plataforma Android permite facilmente o desenvolvimento de aplicativos


com uso de mapas e localização. Devido a estreita relação com a Google e seus aplicativos,
3.2 Aplicações com Mapas no Android 31
existe um pacote do Google Maps que pode ser usado diretamente no aplicativo.

Além do Google Maps podem ser usados outros provedores de mapas como
o Open Street Map e Yandex Maps. Isso faz com que o usuário e o desenvolvedor não
fique preso a apenas uma opção. Na maioria das aplicações esses mapas são carregados
utilizando a internet. No entanto existem aplicações que permitem utilizar offline mapas
previamente carregados na memória do dispositivo.

Para criar um mapa utilizando o provedor do Google Maps basta utilizar a


classe com.google.android.maps.MapView que já vem instalado junto a SDK do Android
mesmo não sendo padrão da plataforma (Pereira e da Silva, 2009). Além do Google
Maps, essa classe encapsula uma série de softwares de mapeamento muito complexos
(Rogers et al., 2009).

Por não ser padrão é necessário importar o pacote de mapas no arquivo An-
droidManifest.xml. E como a classe se conecta a internet é necessário declarar permissão
para acesso a internet no mesmo arquivo XML.

Um modelo simples do AndroidManifest.xml pode ser observado na Figura 3.1:

Figura 3.1: Modelo do arquivo AndroidManifest.xml para inclusão da biblioteca de mapas

Da mesma forma que precisamos de uma chave da API do Google Maps para
desenvolver sistemas com mapas para a internet também precisaremos de uma chave para
desenvolvimento para o Android.

A partir de uma assinatura digital feita no aplicativo é possível gerar essa chave
no site do próprio Google Maps. Isso garante que aquela chave será utilizada apenas nesse
3.2 Aplicações com Mapas no Android 32
aplicativo. Além disso, são necessárias chaves diferentes para a versão de debbug (que irá
rodar no emulador) e para a versão final (que irá rodar em aparelhos com Android).

Após essas configurações ainda não é possível exibir o mapa na tela. Para isso
ainda se fazem necessárias duas configurações. Primeiro a da classe principal do sistema,
que nesse caso é uma atividade do tipo mapa. Segue abaixo na Figura 3.2 um exemplo
dessa classe.

Figura 3.2: Exemplo de classe para inserção de mapa

Em seguida devemos criar o layout de visualização do mapa. O Android nos


possibilita toda a criação de layouts a partir de arquivos XML. É nele que definimos
tamanho, identificação, textos, se é clicável, a forma que se comporta com o aparelho na
horizontal e na vertical, entre outras definições.

Segue abaixo na Figura 3.3 um exemplo do arquivo XML.

Figura 3.3: Exemplo de XML para exibição de mapa


3.2 Aplicações com Mapas no Android 33
Por fim teremos nosso aplicativo de mapas rodando sem nenhuma dificuldade
no emulador Android como mostra a Figura 3.4.

Figura 3.4: Aplicação com mapa rodando no emulador Android

A forma de utilizar mapas do Open Street Maps (também designado por OSM)
no Android é semelhante ao do Google Maps, no entanto, requer um bom conhecimento
da API do Open Street Maps.

Oficialmente não existe um pacote para o Android. No entanto alguns desen-


volvedores adaptaram os pacotes “.JAR” da API original para funcionar no Android.

Para isso basta inserir na pasta de bibliotecas do aplicativo os pacotes neces-


sários e fazer as chamadas para os mesmos igualmente é feito no Google Maps.

Abaixo temos a Figura 3.5 que mostra uma aplicação rodando o Open Street
Maps no Android.

Figura 3.5: Aplicação com Open Street Maps rodando no emulador Android
3.2 Aplicações com Mapas no Android 34
Os overlays são geralmente utilizados para exibir desenhos dentro do mapa
para criar uma interação maior da aplicação com o usuário.

O uso mais comum é o de exibir pontos ou traçar rotas no mapa. Mas podemos
exibir fotos, textos e outros tipos de informações.

Sempre que for necessário criar um overlay devemos escrever uma subclasse de
com.google.android.maps.Overlay e dentro dele implementar um método chamado draw,
passando como parâmetros a canvas utilizada, a visualização do mapa e a sombra (op-
cional). Criada essa classe, basta realizar a chamada do método getOverlays() dentro da
classe principal do programa, que ela irá retornar uma lista com todos os overlays criados
para essa visualização de mapa.

Para desenhar imagens, pontos, formas geométricas ou qualquer outro ele-


mento dentro de uma overlay, são usadas classes gráficas de canvas e de desenho, já
incorporadas ao Android.

Segue na Figura 3.6 um exemplo de código de um overlay:

Figura 3.6: Exemplo de classe para criação de um Overlay


3.2 Aplicações com Mapas no Android 35
3.2.1 Aplicações Usando GPS

A plataforma Android nos oferece uma ferramenta de localização bem prática


chamada Location. Para utilizá-la basta criar uma classe que implemente a interface
android.location.LocationListener. Essa interface é geralmente utilizada pela classe que
cria o mapa.

Sempre que o posicionamento do GPS for modificado deve ser chamado o


método onLocationChanged(location). Com isso o objeto android.location.Location passa
os parâmetros de latitude e longitude atuais para o método.

Tendo essa interface implementada basta chamar o método requestLocationUp-


dates(provedor, tempoMinimo, distanciaMinima, listener), que ele irá solicitar ao Android
a nova posição do GPS com a devida parametrização. Segue na Tabela 3.1 a explicação
de cada parâmetro.

Tabela 3.1: Parâmetros de Localização. Fonte: (Lecheta, 2010)

Parâmetro Descrição

Nome do provedor de localização (location


provider). Por padrão, é uma string “gps”
String provedor
que pode ser acessada pela constante
LocationManager.GPS_PROVIDER.
Tempo em milissegundos, que representa o
intervalo mínimo de tempo em que a aplicação
long tempoMinimo deve receber atualizações sobre as localizações.
Se o valor for 0 (zero), o método é chamado
sempre que a localização for alterada
Distância em metros, que representa a distância
mínima necessária a ser percorrida para a aplicação
receber atualizações sobre as localizações. Se o
float distanciaMinima valor for 0 (zero), o método é chamado sempre que
a localização for alterada.
Implementação da interface LocationListener,
LocationListener listener que receberá as atualizações das coordenadas
pelo método onLocationUpdate(location).
3.2 Aplicações com Mapas no Android 36
(Lecheta, 2010) explica que se a activity implementar a interface Location-
Listener, o método onLocationChanged(location) será chamado sempre que a localização
for alterada. Isso ocorre automaticamente. O objeto android.location.Location recebido
como parâmetro pode ser utilizado para recuperar as coordenadas atuais para atualizar
algum desenho no mapa

A mínima permissão que deve ser utilizada no arquivo AndroidManifest.xml é


a permissão ACCESS_FINE_LOCATION, como já foi observado na Figura 3.1.

Para enviar informações de GPS pelo emulador (Figura 3.7) do Android temos
três opções: manualmente, por arquivo GPX (GPS eXchange Format) ou por arquivo
KML (Keyhole Markup Language). Na Tabela 3.2 podemos ver a definição de cada uma
dessas opções.

Tabela 3.2: Opções de Envio de Infromação. Fonte: (Lecheta, 2010)

Opções Descrição

Permite preencher o formulário com uma única coordenada em


Manual
latitude e longitude para atualizar o mapa.
Permite selecionar um arquivo GPX com
determinado trajeto que contém as coordenadas. Geralmente,
GPX
aparelhos de GPS são capazes de exportar um arquivo GPX depois
de salvar a rota de determinado trajeto percorrido.
Permite selecionar um arquivo KML que contém as coordenadas para
KML percorrer determinado trajeto. Esse arquivo é o formato salvo
pelo Google Earth depois de localizar determinado trajeto.

Figura 3.7: Controle do emulador do SDK Android


3.3 Exemplos de Aplicações com Mapas e GPS 37
Entretanto essas opções só estão disponíveis para desenvolvedores que estejam
utilizando a IDE Eclipse. Para outras IDE se recomenda o uso de um cliente/terminal
telnet onde podem ser enviadas as coordenadas de latitude e longitude manualmente
(Figura 3.8) ou a partir de um script.

Figura 3.8: Controle via terminal telnet

Qualquer uma dessas opções é interessante de ser utilizada para testes e vali-
dações. No entanto, as opções do KML e telnet ficam mais viáveis a medida que para o
KML basta traçar a rota no Google Earth, e no telnet podemos criar scripts que simulem
intervalos de tempos diferentes entre cada localização.

3.3 Exemplos de Aplicações com Mapas e GPS

Existem milhares de aplicações que envolvem mapas e localização por GPS


disponíveis para Android. Entre elas se destacam aquelas que fornecem serviço de rotas
e de localização de lugares e pessoas.

Aqui são destacados quatro aplicações que fazem uso desses recursos: Google
Maps, Google Sky Map, Motonav e AndNav2.

A versão do Google Maps (Google, 2010) para Android é sem dúvida a melhor
versão desse aplicativo móvel, que também tem versões para BlackBerry, iPhone, Windows
Phone e Java.

Ela conta com diversos recursos além o de exibir mapas e encontrar rotas.
Entre eles podemos destacar o uso do Google Latitude (onde o usuário pode ver a lo-
calização dos seus amigos e compartilhar a sua localização com eles, como no exemplo
3.3 Exemplos de Aplicações com Mapas e GPS 38
mostrado na Figura 3.9a), do Buzz (onde o usuário pode verificar o que outros usuários
estão comentando perto da sua localidade, como no exemplo mostrado na Figura 3.9b), e
das notícias de trânsito (onde o usuário pode verificar onde existe mais congestionamento
e evitar esses locais, como no exemplo mostrado na Figura 3.9c).

Por ser um dos principais aplicativos do Android, o Google Maps já vem ins-
talado por padrão em todas as versões do Android.

(a) Plugin Latitude (b) Plugin Buzz (c) Plugin Trânsito

Figura 3.9: Telas do Google Maps (Google, 2010)

O Google Sky Map não utiliza mapas terrestres, e sim mapas celestes. A partir
do posicionamento pelo GPS e do acelerômetro do celular, ele desenha na tela a imagem
do espaço sideral referente ao posicionamento do usuário e do celular como mostra a
Figura 3.10a.

Além disso ele permite a busca de corpos celestes como mostra a Figura 3.10b.
É um excelente aplicativo para pessoas que gostam de olhar estrelas através de telescópios.

(a) Ativando GPS (b) Buscando planeta

Figura 3.10: Telas do Google Sky Map (Google, 2010)


3.3 Exemplos de Aplicações com Mapas e GPS 39
O Motonav é um aplicativo de localização e criação de rotas desenvolvido pela
Motorola para utilizar em seus dispositivos com o sistema Android.

Ele consiste em um formato diferente do OSM e do Google Maps. Os mapas


podem ser vistos normalmente ou em perspectiva, dando uma sensação de tridimensiona-
lidade como mostra a Figura 3.11.

Figura 3.11: Android Motonav em vista com perspectiva (Motorola, 2010)

É um excelente aplicativo, pois possui mapas offline e um poderoso algoritmo


de roteamento.

O AndNav (Gramlich, 2010) é atualmente uma das melhores aplicações para


GPS no Android. Um do seus fortes é a integração com os mapas do Open Street Map
como vemos na Figura 3.12. Estes mapas, ao contrário dos mapas do Google Maps são
livres.

Entre suas principais funcionalidades estão navegação por voz, tradução de


conteúdos, bloqueio de seções do mapa, além de funções básicas de um navegador GPS.

Figura 3.12: AndNav2 com mapas Open Street Map (Gramlich, 2010)
40

4 Jogo Baseado em Localização: “O Roubo do


Azulejo”
Para esse trabalho foi proposto o desenvolvimento de um jogo baseado em lo-
calização. Nesse capítulo veremos como foram as etapas de planejamento, implementação
e validação do mesmo.

4.1 Projeto do Jogo

Antes de se iniciar o desenvolvimento de um jogo, o projeto deve estar bem


definido. Determinando a jogabilidade, as escolhas que o jogador terá dentro do jogo
e as possíveis conseqüências que suas escolhas resultarão (Perucia et al., 2007). É isso
que determina se o jogador vai vencer ou perder, controlar o jogo e realizar as interações
necessárias.

O primeiro passo foi definir a área de abrangência do jogo. Tendo em vista


que se trata de um jogo baseado em localização. Pela facilidade de testes e de criação do
enredo ficou determinado que o jogo se ambientaria no centro histórico da cidade de São
Luís.

Em seguida foi definida a plataforma de desenvolvimento e de operação do


jogo. Foi escolhida a plataforma do Android 1.6, tendo como base as diversidade de
ações que essa plataforma nos possibilita e por ser a plataforma Android mais usada no
momento.

E por fim foi escrito e modelado o roteiro do jogo.

4.1.1 A ideia

O jogo segue o formato de caça ao tesouro, onde o jogador deverá seguir uma
pista inicial que indicará o lugar a ser atingido e assim por diante.

O título escolhido foi “O Roubo do Azulejo”.


4.1 Projeto do Jogo 41
O enredo do jogo trata de uma peça de azulejo que foi roubada. O jogador
deverá percorrer vários pontos turísticos da cidade para reaver a peça. No início do jogo o
jogador receberá uma mensagem que indica o primeiro ponto que ele deverá atingir como
mostra a Figura 4.1a. Em seguida o jogador deverá caminhar como mostra a Figura 4.5.
Ao atingir cada ponto o jogador receberá uma nova instrução como apresenta a Figura
4.6. Essas instrução consistem em um texto com dados relativos ao próximo ponto. Como
mostra a figura 4.1e o jogador sempre deverá ter acesso ao menu de opções.

Ao atingir o último ponto como na Figura 4.7 o jogador vence o jogo.

(a) Tela inicial do jogo (b) Rastreando a localização

(c) Encontrando os objetivos (d) Vencendo o jogo

(e) Menu do jogo

Figura 4.1: Projeto de telas do jogo “O Roubo do Azulejo”


4.1 Projeto do Jogo 42
4.1.2 Estados

Como mostra a Figura 4.2 o jogo é representado por diversos estados que
interagem entre si.

Figura 4.2: Fluxo de estados do jogo O Roubo do Azulejo

O jogador inicia recebendo uma mensagem de boas vindas e tendo o mapa com
exibição. Tendo opção de acesso ao menu, o jogador pode criar um novo jogo, mudar as
configurações, alternar as camadas de visualização, visualizar os jogos salvos e ver mais
informações sobre o sistema.

No mapa o jogador pode aumentar ou reduzir o zoom.

Quando estiver em configurações, o jogador poderá mudar a precisão do GPS,


4.2 Desenvolvimento 43
desabilitar o desligamento da tela do celular, permitir que o jogo inicie junto do sistema,
iniciar o rastreio de GPS ao abrir o jogo, ativar imagens de satélite e ativar o modo
bússola.

Na opção de estatísticas o jogador pode acompanhar a distância percorrida


por ele, o número de objetivos visitados, o momento de início do jogo e o momento do
último ponto visitado.

Em camadas o jogador poderá escolher as camadas do mapa que serão exibidas,


entre satélite, bússola e a localização atual.

Escolhendo a opção compartilhar o jogador poderá criar um arquivo KMZ,


GPX ou de texto e enviar por e-mail ou ainda gravar no cartão SD.

Ao iniciar um jogo são exibidos os botões de dicas e inicia o rastreamento do


GPS. Sempre que o jogador encontrar uma nova pista será exibida a dica referente a
mesma e um novo botão de dica ficará disponível. Esse processo se repete até o jogador
encontrar a última pista, onde ele receberá uma mensagem de parabéns e de fim de jogo.

4.2 Desenvolvimento

O jogo foi desenvolvido utilizando a IDE Eclipse 3.6 “Helios” em conjunto com
o SDK Android com base na versão 1.6 do sistema operacional Android.

Foram utilizados os pacotes da API Google Maps e da API Location que


acompanham o SDK.

Foi utilizado um banco de dados SQLite. Além do reuso de um aplicativo livre


e de código para criar a área “Sobre” chamado “OI About” (OpenIntents, 2010).

O banco de dados escolhido para a aplicação foi o SQLite por se tratar de um


banco leve e poderoso e principalmente por acompanhar o SDK Android.

Na primeira execução do aplicativo, são geradas todas as tabelas do banco


de dados. Algumas tabelas são preenchidas com dados constantes que serão utilizados
durante o jogo.

Esses dados constantes foram armazenados em tabelas para que em uma pró-
xima versão seja possível dinamizar esses dados em relação ao jogo.
4.2 Desenvolvimento 44
Nas demais tabelas do banco são guardadas as informações de cada jogo. Den-
tre elas destacam-se os locais percorridos pelo usuário, as estatísticas e o nome do jogo.

Na Figura 4.3 abaixo podemos observar o modelo do banco de dados.

Figura 4.3: Modelo do banco de dados.

A tela inicial do jogo como mostra a Figura 4.4a, consiste na primeira dica
do jogo. Logo em seguida aparece o mapa do centro histórico de São Luís como pode-
mos observar na Figura 4.4b. Nesse momento as funções de localização e rastreio estão
desativadas.

(a) Tela com dica para o (b) Tela com o mapa de


jogador São Luís

Figura 4.4: Telas inciais do jogo


4.2 Desenvolvimento 45
Após o jogador escolher a opção de novo jogo, etapa mostrada na Figura 4.5a,
é necessário fornecer um nome ao jogo, ou simplesmente manter o nome sugerido como
mostra a Figura 4.5b. A partir dai o sistema inicia os serviços de localização e o usuário
já pode ir em busca do primeiro objetivo como mostra a Figura 4.5c.

(a) Menu de seleção (b) Sugestão de nome (c) Rastreamento

Figura 4.5: Telas criação do jogo

Ao encontrar o primeiro objetivo o jogador recebera um ícone de azulejo em


sua tela. Sempre que clicado, esse ícone exibirá a dica que está relacionada a ele como
vemos na Figura 4.6.

(a) Objetivo encon- (b) Dica do objetivo (c) Objetivo e jogador


trado

Figura 4.6: Telas busca e exibição dos objetivos do jogo

Chegando ao último objetivo o jogador recebe um aviso de fim de jogo como


mostra a Figura 4.7a. Após isso ele poderá continuar passeando pela cidade, criar um
novo jogo ou simplesmente encerrar o jogo atual.

Durante todo o jogo existe a possibilidade de acesso aos menus de contexto


apertando no botão “menu” do aparelho. A Figura 4.7 exibe as telas dos menus de
4.2 Desenvolvimento 46
“controle do jogo”, “camadas”, “estatísticas”, “compartilhamento”, “configurações”, “jogos
salvos” e “sobre”.

(a) Fim de jogo (b) Controle do jogo (c) Estatísticas

(d) Configurações (e) Camadas (f) Compartilhamento

(g) Jogos salvos (h) Informações

Figura 4.7: Telas complementares do jogo

Os testes foram executados via terminal telnet. Por ele foram passadas as
coordenadas de latitude e longitude que são recebidas diretamente no emulador do SDK
Android.
4.2 Desenvolvimento 47
4.2.1 Testando o GPS

Foram passadas diversas coordenadas de latitude e longitude para confirmar


o funcionamento do GPS. Além das coordenadas referentes aos pontos dos objetivos do
jogo, foram testadas coordenadas de cidades como Pinheiro, Rio de Janeiro como mostra
a Figura 4.8, Tókio, Nova York e Moscou.

Figura 4.8: Testando o GPS com coordenadas do estudo do Rio de Janeiro

Todas as coordenadas foram satisfatórias, demonstrando uma margem de erro


de até 0,00000669 grau de latitude e longitude. Aceitável para visualizações em nível de
rua (Pereira e da Silva, 2009).

A partir da constatação dessa margem de erro, foi implementada no sistema


uma correção de erro. Ou seja, o usuário será avisado que atingiu seu objetivo caso entre
em uma área igual ao ponto do objetivo mais uma margem de erro de 0,00001 grau de
latitude e longitude.

4.2.2 Validando os Processos do Jogo

O jogo foi testado apenas no emulador. O emulador simulava sempre, a cada


nova instalação do jogo, um telefone novo. Durante os testes ficou constatado que em
cada nova instalação do jogo e a cada vinte vezes jogados ele operou normalmente.

Foram realizadas vinte e cinco instalações do jogo com sucesso no emulador.


E para cada instalação, vinte execuções. Perfazendo um total de quinhentas execuções.
4.2 Desenvolvimento 48
Foi constatado também diversas falhas no emulador do SDK Android. Por
várias vezes ao ser executado ele apresentava o travamento de alguns programas do sis-
tema, tais como “Despertador” e “Câmera”.
49

5 Conclusão
Os jogos baseados em localização ainda não atingem um público expressivo
de usuários. No entanto esses jogos possuem potencial de crescimento devido ao rápido
avanço tecnológico e a miniaturização de equipamentos e ao aumento do número de inova-
ções na área de entretenimento digital, que oferecem novas formas de imersão aos usuários.

A plataforma de desenvolvimento fornecida pela Google na forma do Android


é sem dúvida muito importante para esse desenvolvimento dos jogos baseados em localiza-
ção. Essa ferramenta nos permite desenvolver de forma simples aplicações que dependem
da localização, implementando diversas técnicas de localização em poucas linhas de código.

Durante o levantamento bibliográfico foram identificadas diversas formas de


implementações de técnicas de localização e diversos modos de jogo baseado em localização
em vários projetos. Foi possível verificar a dificuldade de implementação de algumas dessas
técnicas em plataformas mais rudimentares. Além da adequação desses projetos em suas
respectivas plataformas de desenvolvimento e dispositivos móveis.

Os trabalhos já existentes mostram geralmente o desenvolvimento desse tipo de


jogo utilizando algumas vezes frameworks experimentais, outras vezes utilizando J2ME.
Mas sempre mostrando formas complicadas de implementação da localização.

Dessa forma, o jogo “O Roubo do Azulejo” foi desenvolvido para mostrar a


praticidade da plataforma Android em relação as mais diversas técnicas de localização e
principalmente em relação ao GPS, que atualmente é a forma mais comum de localização.
O jogo desenvolvido apresentou um ótimo comportamento em relação às técnicas citadas.

O jogo foi desenvolvido em Java sobre a plataforma Android, e utilizou as


APIs de localização e de banco de dados SQLite fornecidas pelo SDK Android. O jogo
desenvolvido é suportado apenas por celulares com o sistema operacional Android, a
partir da versão 1.6. O ambiente de desenvolvimento Android foi muito propício para
o desenvolvimento do jogo “O Roubo do Azulejo”, o que possibilitou de maneira prática
não apenas as implementações da localização como também da interface do jogo. O
jogo desenvolvido foi satisfatório para estudar as técnicas de localização apresentadas,
além de mostrar o potencial envolvido nessa área do entretenimento digital. Pretende-se
5 Conclusão 50
futuramente incluir uma geração aleatória de objetivos e desenvolver uma ferramenta para
colaboração multijogador dando dinamismo ao jogo.

Como trabalho futuro podemos destacar a criação de um framework de jogos


baseados em localização para dispositivos Android. Além de outros trabalhos como o
desenvolvimento de aplicações de alta disponibilidade baseadas em localização com o
objetivo de realizar serviços de apoio e emergência, como um sistema de apoio para rotas
de ambulâncias na cidade de São Luís e o desenvolvimento de um sistema para dispositivos
móveis de apoio a usuários do transporte coletivo urbano de São Luís.
51

Referências Bibliográficas

Android. About the Android Open Source Project. Disponível em


<http://source.android.com/about/index.html>, 2010a. Acesso em 16/11/2010.

Android. Android 2.3 Platform. Disponível em


<http://developer.android.com/sdk/android-2.3.html>, 2010b. Acesso em 23/11/2010.

Android. Android Glossary. Disponível em <http://developer.android.com/guide/appen-


dix/glossary.html>, 2010c. Acesso em 23/11/2010.

Android. Android Public Class SQLiteDatabase. Disponível em


<http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.ht-
ml>, 2010d. Acesso em 23/11/2010.

Android. Android SDK Tools. Disponível em <http://developer.android.com/sdk/tools-


notes.html>, 2010e. Acesso em 23/11/2010.

Android. Android Tools Overview. Disponível em


<http://developer.android.com/guide/developing/tools/index.html>, 2010f. Acesso
em 22/11/2010.

Android. Package Index Android APIs. Disponível em


<http://developer.android.com/reference/packages.html>, 2010g. Acesso em
22/11/2010.

Android. What is Android? Disponível em


<http://developer.android.com/guide/basics/what-is-android.html>, 2010h. Acesso
em 19/11/2010.

AndroidDev. One hundred thousand apps in Android Market. Disponível em


<http://twitter.com/AndroidDev/status/28701488389>, 2010. Acesso em 18/11/2010.

Baldzer J, Boll S, Krösche J, Rump N, Scheibner H, Thieme S. Location-Based Geodata


Broadcast. Artigo. 2004; .
REFERÊNCIAS BIBLIOGRÁFICAS 52
Bezerra RCFM. Utilizando o Conceito de Localização em Jogos Móveis. Trabalho de
Conclusão de Curso. Centro de Informática. Universidade Federal de Pernambuco, 2007.

Björk S, Ljungstrand P. Pirates! Em Borries F, Walz SP, Böttger M, editores, Space


Time Play. Birkhäuser Basel, 2007; pp. 256–257. 10.1007/978-3-7643-8415-9_91.

Bloomberg A, Boelhauf K, Crowley D, Hall C, Lee W, Molefe M, et al. Pac-Manhattan.


Disponível em <http://www.pacmanhattan.com/>, 2004. Acesso em 02/12/2010.

Bray T. Dalvik JIT. Disponível em <http://android-


developers.blogspot.com/2010/05/dalvik-jit.html>, 2010. Acesso em 21/11/2010.

CDOF. Recreação. Disponível em <http://www.cdof.com.br/recrea3.htm>, 2010. Acesso


em 18/12/2010.

DeLacey B. Google Calling: Inside Android, the gPhone SDK. Disponível em


<http://onlamp.com/pub/a/onlamp/2007/11/12/google-calling-inside-the-gphone-
sdk.html>, 2007. Acesso em 21/11/2010.

Delap S. Google’s Android SDK Bypasses Java ME in Favor of Java Lite and Apache
Harmony. Disponível em <http://www.infoq.com/news/2007/11/android-java>, 2007.
Acesso em 21/11/2010.

Elgin B. Google Buys Android for Its Mobile Arsenal. Disponível em


<http://www.businessweek.com/technology/content/aug2005/tc20050817_0949_tc0-
24.htm>, 2005. Acesso em 12/11/2010.

Exit Games. Exit Games Neutron 3.5. Disponível em


<http://http://www.exitgames.com/>, 2006. Acesso em 16/10/2010.

Fayad M, Schmidt DC. Object-oriented application frameworks. Artigo. Commun ACM


1997; 40: 32–38.

Fetter M, Etz M, Blechschmied H. MOBILE CHASE: Towards a framework for location-


based gaming. Artigo. 2007; .

Flintham M, Benford S, Anastasi R, Hemmings T, Crabtree A, Greenhalgh C, et al.


Where on-line meets on the streets: experiences with mobile mixed reality games. Em
Proceedings of the SIGCHI conference on Human factors in computing systems. CHI
’03, New York, NY, USA: ACM, pp. 569–576.
REFERÊNCIAS BIBLIOGRÁFICAS 53
Geocaching. Geocaching - The Official Global GPS Cache Hunt Site. Disponível em
<http://geocaching.com/>, 2010. Acesso em 05/11/10.

Gonçalves KM. Um framework para comunicação baseada em localização. Dissertação de


Mestrado, Departamento de Informática, Programa de Pós-Graduação em Informática,
Pontifícia Universidade Católica do Rio de Janeiro, 2005.

Google. Google Maps para celular. Disponível em <http://www.google.com/intl/pt-


BR_ALL/mobile/maps/>, 2010. Acesso em 25/11/2010.

GPSGamesorg. Geodashing Golf. Disponível em <http://golf.gpsgames.org/>, 2010a.


Acesso em 11/11/2010.

GPSGamesorg. MinuteWar - Winning the World Minute by Minute. Disponível em


<http://minutewar.gpsgames.org/>, 2010b. Acesso em 07/11/2010.

GPSGamesorg. Shutterspot - Every picture tells a story. Disponível em


<http://shutterspot.gpsgames.org/>, 2010c. Acesso em 07/11/2010.

Gramlich N. Android Navigation System. Disponível em <http://www.andnav.org/>,


2010. Acesso em 24/11/2010.

Kiefer P, Matyas S, Schlieder C. State space analysis as a tool in the design of a smart op-
ponent for a location-based game. Em Masuch M, Hartmann K, Beckhaus S, Spierling
U, Sliwka F, editores, Proceedings of the Computer Science and Magic 2005, GC Devel-
oper Conference Science Track. Leipzig, Germany: Messe Leipzig. Isbn: 3-9804874-3-1.

Lecheta RR. Google Android: aprenda a criar aplicações para dispositivos móveis com
Android SDK. São Paulo: 605 p. Novatec Editora, 2010.

Lindt I, Ohlenburg J, Pankoke-Babatz U, Prinz W, Ghellal S. Combining multiple gaming


interfaces in epidemic menace. Em CHI ’06 extended abstracts on Human factors in
computing systems. CHI ’06, New York, NY, USA: ACM, pp. 213–218.

Lopes EF, Nogueira JG, Nacif TG, Johnson TM. Sistemas Baseados em Localização em
um Mundo Sem-fio com J2ME e API Location. Artigo. Centro de Ciências Exatas e
Tecnológicas. Universidade da Amazônia - Belém, PA, 2006.
REFERÊNCIAS BIBLIOGRÁFICAS 54
Lundgren S, Björk S. Game Mechanics: Describing Computer-Augmented Games in
Terms of Interaction. Em Terms of Interaction. Proceeding of TIDSE 2003 - Darmstadt,
Alemanha.

Madway G, Wallace J. Google’s Android leads U.S. smartphones. Disponível


em <http://ca.reuters.com/article/businessNews/idCATRE6734HB20100804>, 2010.
Acesso em 17/11/2010.

Mcgonigal JE, William P, Worthen B, Niemeyer PG. This Might Be a Game: Ubiquitous
Play and Performance at the Turn of the Twenty-First Century. Artigo. 2006.

Motorola. Motorola Motonav. Disponível em <http://www.motorola.com/Consumers/US-


EN/Consumer-Product-and-Services/MOTONAV/MOTONAV-Overview/>, 2010.
Acesso em 27/11/2010.

Murphy D. Extrapolating the Apple-Android Showdown: Who’s Right? Disponível


em <http://www.pcmag.com/article2/0,2817,2366624,00.asp>, 2010. Acesso em
18/11/2010.

Nokia. SNAP Mobile API. Disponível em <http://wiki.forum.nokia.com/index.php/>,


2009. Acesso em 16/10/2010.

Open Handset Alliance. Frequently Asked Questions. Disponível em


<http://www.openhandsetalliance.com/oha_faq.html>, 2007. Acesso em 14/11/2010.

Open Handset Alliance. Introducing Android. Disponível em


<http://www.openhandsetalliance.com/android_overview.html>, 2010a. Acesso
em 20/11/2010.

Open Handset Alliance. Open Handset Alliance. Disponível em


<http://www.openhandsetalliance.com/>, 2010b. Acesso em 20/11/2010.

OpenCore. Resources. Disponível em <http://www.opencore.net/>, 2010. Acesso em


21/11/2010.

OpenIntents. OI About. Disponível em <http://www.openintents.org/en/node/191>,


2010. Acesso em 12/09/2010.

Pereira LCO, da Silva ML. Android para desenvolvedores. Rio de Janeiro: 217 p. Brasport,
2009.
REFERÊNCIAS BIBLIOGRÁFICAS 55
Perucia AS, de Brerthêm AC, Bertschinger GL, Menezes RRC. Desenvolvimento de jogos
eletrônicos: teoria e prática. São Paulo: 320 p. Novatec Editora, 2007.

Rogers R, Lombardo J, Mednieks Z, Meike B. Desenvolvimento de aplicações Android:


programação com SDK do Google. São Paulo: 276 p. Novatec Editora, 2009.

Schiller J, Voisard A. Location-Based Services (The Morgan Kaufmann Series in Data


Management Systems). San Francisco: Morgan Kaufmann, 2004.

Schlieder C, Kiefer P, Matyas S. Geogames: Designing Location-Based Games from


Classic Board Games. Artigo. IEEE Intelligent Systems 2006; 21: 40–46.

The Nielsen Company. Android Most Popular Operating Sys-


tem in U.S. Among Recent Smartphone Buyers. Disponível em
<http://blog.nielsen.com/nielsenwire/online_mobile/android-most-popular-
operating-system-in-u-s-among-recent-smartphone-buyers/>, 2010. Acesso em
18/11/2010.

Thomas B, Close B, Donoghue J, Squires J, Bondi PD, Piekarski W. First Person In-
door/Outdoor Augmented Reality Application: ARQuake. Artigo. Personal Ubiquitous
Comput 2002; 6: 75–86.

Trinta FAM. Definindo e Provendo Serviços de Suporte à Jogos Multiusuário e Multi-


plataforma: Rumo à Pervasividade. Tese de Doutorado, Programa de Pós-Graduação
em Ciências da Computação, Universidade Federal de Pernambuco, Pernambuco,
Brasil, 2007.

Tutzschke JP, Zukunft O. FRAP: a framework for pervasive games. Em Proceedings


of the 1st ACM SIGCHI Symposium on Engineering Interactive Computing Systems.
EICS ’09, New York, NY, USA: ACM, pp. 133–142.

Valente L. Jogos baseados em localização para telefones celulares: Exemplos de estratégias


para tratar limitações tecnológicas. Artigo. Departamento de Informática. Pontifícia
Universidade Católica - Rio de Janeiro, 2007.

Westfall J. Backup Restore Android Apps Using ADB. Disponível em


<http://nerdnewz.net/2010/10/21/backup-restore-android-apps-using-adb/>, 2010.
Acesso em 22/11/2010.
REFERÊNCIAS BIBLIOGRÁFICAS 56
Wiegmans W. Location-based gaming Be aware, everywhere! . Dissertação de Mestrado,
Telematica Institute, University of Twente, Enschede, The Netherlands, 2005.

Wolverton T. Google’s Android software dominates U.S. smartphone market. Disponível


em <http://www.mercurynews.com/top-stories/ci_16493024>, 2010. Acesso em
16/11/2010.

View publication stats

Potrebbero piacerti anche