Jogos Eletrônicos na Prática
Livro de Tutoriais do SBGames 2012
2ª edição - Revisada e Ampliada
Organizadores
Marsal Branco (Universidade Feevale) Silvano Malfatti (Univ. do Tocantins)
Marcus Vinicius Lamar (UnB)
Novo Hamburgo - Rio Grande do Sul - Brasil 2013
Ramon Fernando da Cunha
pró-Reitora de ensino
Inajara Vargas Ramos
pró-Reitora de extensão e Assuntos Comunitários
Gladis Luisa Baptista
pró-Reitor de pesquisa e inovação
João Alcione Sganderla Figueiredo
pró-Reitor de planejamento e Administração
Alexandre Zeni
Coordenação editorial
Inajara Vargas Ramos
Realização
Instituto de Ciências Sociais Aplicadas – ICSA Curso de Jogos Digitais
editora Feevale
Celso Eduardo Stark Daiane Thomé Scariot Graziele Borguetto Souza
Capa
Eduardo Fernando Müller Gabriel Hilgert
editoração eletrônica
Daiane Thomé Scariot
Organização editorial
Kaline Hilgert Perius
Revisão textual
Dos autores.
© editora Feevale – Os textos assinados, tanto no que diz respeito à linguagem como ao conteúdo, são de inteira responsabilidade dos autores
e não expressam, necessariamente, a opinião da Universidade Feevale. É permitido citar parte dos textos sem autorização prévia, desde que seja identificada a fonte. A violação dos direitos do autor (Lei n.° 9.610/98) é crime estabelecido pelo artigo 184 do Código Penal.
Dados Internacionais de Catalogação na Publicação (CIP) Universidade Feevale, RS, Brasil
Bibliotecário responsável:
Carla Castanho (UnB)
trilha de Computação
Ricardo Nakamura (USP)
Licínio Gomes Roque (Universidade de Coimbra, Portugal)
Rodrigo Bonifácio (UnB)
trilha de Arte e design
Maria das Graças Chagas (PUC-Rio) Tiago Barros P. e Silva (UnB)
trilha da indústria
Fred Vasconcelos (Abragames) Saulo Camarotti (IESB/Behold Studios) Luiz Sakuda (USP)
trilha de Cultura
Roger Tavares (UFRN)
Nelson Zagalo (Univ. do Minho, Portugal) Mauricio Miranda Sarmet (UnB)
tutoriais
Marsal Branco (Universidade Feevale) Silvano Malfatti (Univ. do Tocantins) Marcus Vinicius Lamar (UnB)
Festival de Jogos independentes
Bruno Campagnolo (PUC-PR) Artur Mittelbach (PUC-PR) Guilherme Novaes Ramos (UnB)
Gilson Schwartz (USP - Cidade do Conhecimento)
Mostra de Artes
Suzete Venturelli (UnB) Felipe Ferreira Costa (IESB)
Coordenadores de publicação (publication Chairs)
Luciana Rocha Clua (PUC-Rio) Luiz Gonzaga (Unisinos)
Comissão especial de Jogos e entretenimento digital da SBC
Esteban Clua (UFF) Bruno Feijó (PUC-RIO) Soraia Musse (PUC-RS) Carla Castanho (UnB) Ricardo Nakamura (USP)
Steering Committee (Comitê Volante)
Luiz Gonzaga (Unisinos)
João Mattar (Univ. Anhembi Morumbi / PUC-SP)
Joao Ricardo Bittencourt (Unisinos) Juliano Barbosa Alves (Abragames) Lynn Alves (UNEB)
Rafael Dubiela (UFPR)
Jogos
Jogos eletrônicos na prática : livro de tutoriais do SBGames 2012 [recurso eletrônico] / organizadores Marsal Branco, Silvano Malfatti, Marcus Vinicius Lamar. – 2. ed., rev. e ampl. - Novo Hamburgo : Feevale, 2013
125 p. : il.
Modo de acesso: World Wide Web <www.feevale.br/editora>
Inclui bibliografia. ISBN: 978-85-7717-159-0
l. Jogos Eletrônicos - Simpósios. 2. Games. 3. Tecnologia. I. Branco, Marsal. II. Malfatti, Silvano. III. Lamar, Marcus Vinicius. IV. Simpósio Brasi-leiro de Jogos e Entretenimento Digital.
Qual é a imagem que o mundo tem do Brasil? O mundo conhece a tecnologia que se desenvolve aqui? Para tentar responder a estas perguntas resolvi pesquisar na Internet, e como qualquer outra pessoa interessada em ver o Brasil pelo mundo “online” eu simplesmente digitei “Brasil” e <enter>, o que eu recebi foi uma coleção infinita de belas imagens de nossas paisagens, pontos turísticos, do povo bonito e claro, do futebol... mas de tecnologia não se vê quase nada... O que leva a crer, para os leigos, que o Brasil consome sim muita tecnologia, mas pouco se produz aqui. O que é um engano.
O Brasil produz sim, muita tecnologia local, nas mais diversas áreas – da televisão digital à aviação, passando pelas urnas eletrônicas, tecnologias embarcadas, automação comercial e bancária, extração de petróleo, entretenimento e muitas outras áreas em que o país se destaca e é referência mundial. O que todas estas áreas têm em comum? O uso de Software que também em muitos casos se desenvolve aqui.
O Brasil já é uma potência em desenvolvimento de software, contando hoje com aproximadamente 350 mil profissionais da área de desenvolvimento. E as previsões indicam que em 2015 o país já terá mais de 500 mil profissionais e será o sexto maior país em número de desenvolvedores de software no mundo (fonte: Evans Data Corp).
Impressionante? Sim. Por acaso? Não. Isto se deve à união da indústria, sociedade e governo que abraçaram juntos o desafio de desenvolver aqui mesmo as soluções para nossos problemas. Alguns podem até dizer que o período da reserva de mercado da década de ’80 foi o grande responsável por deflagrar o “Brasil tecnológico”, talvez tenha sido em parte um catalisador importante, mas na verdade a reserva acabou há mais de 20 anos e o Brasil continua trilhando seu próprio caminho e liderando em diversas áreas.
E o futuro? O futuro é o da criatividade e inovação, como mostra este livro. Da mesma maneira que o brasileiro cria conteúdo de entretenimento consumido no mundo todo e dá dribles desconcertantes no futebol, também é capaz de criar software e serviços inovadores. Nós da Intel apostamos nisso, estamos no Brasil há mais de 25 anos, e neste período participamos ativamente do desenvolvimento das indústrias de hardware e software nacionais, tanto apoiando-a comercialmente como estabelecendo acordos de colaboração
educação. Já treinamos no Brasil mais de 250 mil professores no uso de tecnologia em sala de aula e foi aqui que os primeiros computadores para o uso dos alunos foram concebidos, os “Classmate PC”.
Voltando à pergunta inicial, “O mundo conhece a tecnologia que se desenvolve aqui? Talvez muitos ainda não conheçam... Mas a Intel conhece e se orgulha de ter feito parte do processo de desenvolvimento da indústria nacional nos últimos 25 anos.
E como tecnologia é uma língua que já se fala aqui há muito tempo, deixo esta mensagem em hexadecimal para os “iniciados”:
6120496e74656c206163726564697461206e6f2042726173696c2c2071 75652076656e68616d206f73207072f378696d6f7320323520616e6f732121
Nuno Simões Intel – Diretor de Iniciativas de Software Brasil
Neste ano, o Simpósio Brasileiro de Jogos e Entretenimento Digital (SBGames) chega a sua XI edição. Considerado o evento de pesquisa mais importante na área de jogos e entretenimento digital da América Latina, o SBGames faz parte de um mercado que cresce a cada ano e que possui como diferenciais a diversão, a criatividade e a inovação.
Durante sua realização, o SBGames proporciona espaços voltados à discussão e pesquisa relacionadas as diversas áreas que atravessam a produção dos jogos eletrônicos: Arte e Design, Computação e Indústria. Esses fóruns não apenas representam pontos de encontros e de trocas, como marcam um momento em que desenvolvedores/pesquisadores organizam sua produção e apresentam resultados.
Paralelamente, e para além da pesquisa, o SBGames marca de maneira forte a produção de jogos propriamente dita. Uma das formas como faz isso – um dos pontos altos do evento – é através do Festival de Jogos Independentes, uma competição de jogos desenvolvidos de forma Indie sem apoio de empresas ou órgãos financiadores.
A outra maneira é através dos Tutoriais. Os tutoriais têm como objetivo estimular e propor práticas de desenvolvimento de jogos. São criados por profissionais experientes e de renome, com o intuito de proporcionar a troca de conhecimentos entre tutoriantes, comunidade acadêmica e desenvolvedores. Neste ano, uma das principais novidades – que nos deixa muito orgulhosos – é a publicação desse livro que constitui uma memória física dos cursos apresentados durante o evento.
Além do registro, espera-se que este livro cumpra sua função de estímulo à produção e multiplique conhecimentos para que alunos, professores e profissionais da área aprendam e contribuam cada vez mais com a pesquisa e desenvolvimento de jogos em um país que vem se destacando como um celeiro de bons profissionais nessa área.
sobre a paciência e disciplina.
O SBGames se faz maduro. Como tal, conquista o livro que você tem em mãos e o faz da melhor forma possível: pela mistura improvável de habilidades, pessoas, instituições e embates que caracterizam o processo de maturação pela qual passa a indústria de jogos brasileira.
Uma indústria que sofre as dores da profissionalização, que tensiona e obriga mudanças e adaptações rápidas. Indústria que se vê representada nesse novembro de 2012 em Brasília, reunindo em um evento só articulações científicas, educacionais, políticas comunicacionais e tecnológicas, alinhadas apontando um futuro brilhante.
Os Tutoriais são fruto de uma demanda técnica. Demanda que representa uma dimensão fundamental nos alicerces da indústria de jogos. Não basta apenas levantarmos as bandeiras – necessárias, todas – do reconhecimento do uso dos jogos na sociedade, das regulamentações, dos processos de gestão e na formação de recursos humanos. Os tutoriais não nos deixam esquecer as bases: é preciso saber fazer jogos, colocar a mão na massa, se sujar em arte e código. Os tutoriais representam a paixão silenciosa que nos faz atravessar as noites testando coisas, criando soluções e novos problemas. Criando jogos.
É com esse sentido que entregamos a vocês o primeiro livro impresso dos tutoriais do SBGames. Um rebento modesto, mas um rebento e, sobretudo, uma vitória.
Tá vivo, tá aí. Use-o sem moderação.
Dos chairs dos tutorias SBGames 2012 Marsal Branco, Silvano Malfatti e Marcus Vinicius Lamar
A evolução das técnicas de inteligência Artificial ...10
Bruno Duarte Correa Thiago Dias Pastor
Gameficação - Uma Análise das técnicas de engajamento
Atualmente Utilizadas ...23
Alexandre Sena Dennis Kerr Coelho
introdução ao desenvolvimento de Games com GWt e HtML5 ...35
Ely Fernando do Prado
introdução ao Unity ...53
Jay Clei Garcia dos Santos
Organizando os Mapas de iluminação dos Assets de Arte para os
Motores de Jogos: Considerações Metodológicas para o Caso da
produção Voltada ao Motor de Jogos UdK ...84
Luís Carlos Petry
Eliseu de Souza Lopes Filho Maigon Nacib Pontuschka Felipe Dacal Fragoso
Gabriel Cavalcanti Marques Winna Hita Iturriaga Zansavio
Point Based Graphics e Aplicações em Jogos ...103
A evolução das técnicas
de inteligência Artificial
Bruno Duarte Correa
1Thiago Dias Pastor
2Abstract
Since the dawn of the digital games there is a desire to replicate situations that make us somehow part of a context and closer to reality. The importance of artificial intelligence is at the convergence of this longing in simulating increasingly challenging realities. The techniques of artificial intelligence for games in general are part of a trend that argues that the role of IA is to simulate the behavior near human and not like other environments eg optimization objectives, seek to achieve levels of decision making and speed of reasoning very above an ordinary human being. Artificial intelligence in games is beginning to maximize the fun emulating a smart player just right, neither too smart nor too dumb demonstrating weaknesses purposeful. The purpose of this article is to demonstrate some techniques used in some classic and current games showing their uses and problems.
1 introdução
Desde os primórdios dos jogos digitais existe a vontade de replicar situações que nos façam de certa forma fazer parte de um contexto.Quanto mais próximo da realidade
1 Department of Computer and Digital Systems Engineering, Escola Politécnica da Universidade de São Paulo, Brazil.
2 Department of Computer and Digital Systems Engineering, Escola Politécnica da Universidade de São Paulo, Brazil.
melhor é tal experiência. A importância da inteligência artificial está na convergência desse anseio em simular realidades cada vez mais desafiadoras. As técnicas para jogos em geral fazem parte de uma vertente que defende o papel da IA como o de simular um comportamento próximo do humano, não como em outros ambientes com objetivos por exemplo de otimização buscam atingir níveis de decisão e velocidade de raciocínio muito acima de um ser humano comum. A inteligência artificial em jogos tem por princípio maximizar a diversão emulando um jogador inteligentes na medida certa, demonstrando fraquezas propositais. A proposta desse artigo é demonstrar algumas técnicas clássicas e algumas utilizadas nos jogos atuais mostrando os seus usos e problemas com o intuito de desmistificar a IA de alguns jogos e, como em um PostMortem, estimular o uso de tais técnicas.
2 Histórico
No princípio, a inteligência artificial nos jogos tinha o papel de alimentar máquinas caça níquel com o objetivo de manter o jogador por horas e horas entretido e gastando dinheiro. Jogos como Pong e Pac-Man utilizavam listas pré determinadas de ações e algumas poucas tomadas de decisão aleatórias na tentativa de tornar os jogos um pouco mais interessantes. Com o tempo, jogos começaram a utilizar técnicas um pouco mais avançadas, mas ainda assim incipientes. Entretanto na década de 80 e 90 houve uma grande reviravolta com jogos preocupando-se com o papel da inteligência artificial em títulos como Age of Empires II e Warcraft II. Em 1998 a Valve revoluciona com HalfLife e um incrível avanço nos jogos em primeira pessoa. Em 2000 jogos como The Sims, totalmente focados na experiência do jogador com a inteligência artificial em jogos que aprendiam com os jogadores, também contribuiram para a evolução do mercado. A grande realidade é que a inteligência artificial começou a tomar corpo nos jogos quando as empresas começaram a levá-la a sério como realmente uma área de desenvolvimento que deve entrar no processo e não encarada como um adicional no jogo que em geral poderia ser desenvolvido no último quarto de tempo do projeto, o que acabava por gerar comportamentos previsíveis e jogos nem tão desafiadores quanto poderiam ser. A visão atual da inteligência artificial é a de que ela seja totalmente direcionada a contribuir com o gamedesign de tal forma que facilite as modificações de acordo com a concepção do jogo, podendo traduzir sentimentos e sensações de forma a tornar a imersão dos jogos muito maior, e não mais encarar as técnicas de inteligência artificial como uma ferramenta para simplemente melhorar a experiência do usuário.
3 Motivação
A evolução das técnicas utilizadas em jogos eletrônicos é evidente nos últimos anos, tornando a experiência muito mais imersiva e trazendo jogos cada vez melhores.É de suma importância conhecer o estado da arte atual para aplicar tais recursos.
4 técnicas básicas
A classificação quanto às técnicas clássicas e técnicas atuais aqui empregada foi feita pensando na utilização das mesmas e não por questões temporais como as mais antigas ou mais recentes.
4.1 Agentes
Agentes são entidades capazes de perceber o ambiente através de sensores e modificá-lo através de atuadores. O nível de percepção e o raio de atuação dos mesmos determina diretamente a qualidade da nossa abstração do agente. A maneira como o conhecimento de um novo acontecimento no mundo é transmitido entre outros agentes pode determinar uma reação justa ou não por parte dos agentes que não participaram de fato do evento. Um exemplo clássico desse problema é demonstrada em um jogo de tiro, quando o personagem principal é avistado por um inimigo e imediatamente todos os outros sabem sobre a sua localização sem um prévio aviso.
4.1.1 Percepção
Como explicitado no tópico anterior, a modelagem da percepção que o agente faz do cenário dita em muito a qualidade da inteligência artificial. Uma abordagem é colocar sensores representando os cinco sentidos. Os mais comuns em ordem de usabilidade são visão e audição, mas podemos ter representações de olfato ou tomadas de sensação de temperatura dando uma maior relevância para as informações de cena, auxiliando na decisão dos agentes. Outra abordagem colocando em evidência a percepção de cena como um todo e não a percepção micro de um só agente são os blackboards, que tem por objetivo compartilhar informações de acontecimentos em uma base comum de tal forma que todos os agentes tenham conhecimento. Essa abordagem é a mais utilizada, porém é preciso tomar cuidado para não tornar injusta a reação dos agentes.
4.2 Maquinas de estado
O controle de eventos ou comportamentos é totalmente ligado ao contexto do jogo. Sendo assim, separar em momentos bem definidos facilita em muito a segregação de eventos, uma melhor depuração de problemas e implementação de novos comportamentos.
Figure 2: Maquina de estados de um agente
Máquinas de estado são úteis em todos os tipos de jogos por facilitarem a organização de informação em momentos e servir como controle de tomada de decisão.
4.3 navegação
Os algoritmos de busca de caminho são a implantação de inteligência artificial mais utilizadas em jogos eletrônicos, tendo soluções das mais rudimentares às mais avançadas e em essência podem ser divididos em:
• busca cega: é a busca em que o agente não tem conhecimento do cenário tendo apenas como indicador do caminho a seguir os sensores e uma função objetivo que dita o quão bom é tomar o próximo passo
• busca informada: o agente de alguma forma tem informação do ambiente em que se encontra, podendo formular uma solução, conectando o ponto de origem ao ponto de destino de forma mais acertiva, em geral são soluções mais elegantes, nos dando a impressão de um movimento mais fluido. Devemos entretanto nos preocupar em dosar o conhecimento dos personagens para não acabarmos com a naturalidade de uma busca por caminho que um ser humano comum precisa fazer para ir de um ponto A a um ponto B.
Os algoritmos de navegação, por serem um grande objeto de estudo da robótica, são uma área muito desenvolvida e geralmente subdividida em um nível mais alto de abstração em busca de caminho (pathfinding) e fuga de obstáculos (obstacle avoidance). Nos jogos atuais essa diferença foi desaparecendo gradativamente, visto que raramente encontramos situações em que no meio de nosso caminho não existam outros agentes ou mesmo obstáculos móveis.
4.3.1 A star
É uma busca do tipo informada, ou seja, o agente tem conhecimento do cenário em que se encontra. Tem como algoritmo geral a Busca pela Melhor Escolha (best-first-search). De posse de uma árvore de possibilidades do próximo passo a tomar, ou próximo nó a escolher. A grande diferença do A star para as outras implementações de best-first-search é que além de levar em conta o melhor próximo nó também leva em consideração a distância já percorrida na equação, não somente o custo da expansão do nó atual.
4.3.2 WayPoints
Uma abordagem um pouco mais refinada para a busca de caminho é o uso de
WayPoints [~blog 2008], muito famosos em jogos como Counter Strike.
Figure 3: WayPoints em Halaa
Assim como as árvores de possibilidades nas busca informadas, os WayPoints são utilizados como modelo de representação do cenário, porém de forma mais visual e intuitiva. Os WayPoints são nós bases sob os quais são interpoladas as posições intermediárias. Como observado nessa imagem, em alguns casos é necessário um número muito grande de nós e caso esses não forem bem posicionados podem causar zig-zags na movimentação dos personagens. Para ambientes mais complexos não é difícil notar que essa é uma fonte de erro muito grande. É possível notar também que mesmo com um número bem grande de pontos, ainda assim existem áreas em que a qualidade da solução está totalmente ligada à maneira como interpolamos as informações, visto que elas de fato não existem, o que pode ocasionar no clássico problema do personagem andando rente à paredes ou estruturas. A utilização dessa técnica não prevê qualquer informação fora do grafo, o que dificulta a retomada do caminho no advento de um obstáculo móvel ou mesmo a mudança do cenário por exemplo com a geração de um buraco durante uma batalha. Os WayPoints
ainda são muito utilizados em jogos eletrônicos e muitas vezes se mostram suficientes para resolver o problema da navegação, mas em situações um pouco mais complexas e querendo representar a movimentação de forma mais fluida ela se torna inviável.
4.4 Algoritmos Genéticos
Algoritmos genéticos (AG) são em essência ferramentas de busca local com um toque elevado de aleatoriedade, em geral utilizado para procurar soluções fugindo do problema dos mínimos locais, atingindo resultados inesperados, o que para o universo dos jogos eletrônicos se torna muito interessante. Assim como o processo de evolução humana, os AG passam por etapas como:
• Herança: durante o processo de geração da próxima geração alguns genes são herdados do “pai” ou da “mãe”, portanto de forma aleatória é selecionada a origem de cada um.
• Mutação: alguns genes após o processo de herança formando o descendente canônico são modificados para aumentar o fator aleatório da próxima geração.
• Seleção: segundo uma função objetivo que dita o quão bom uma solução é, alguns descendentes são eliminados ou selecionados
• Cruzamento: assim como no processo de mutação alguns genes foram modificados, na etapa de cruzamento de cromossomos uma fatia do mesmo é trocada com outro cromossomo.
Um grande desafio de se obter AGs usuais para o universo de jogos eletrônicos é o fato que esse processo assim como o processo de evolução natural demorar para convergir para uma solução ótima, nesse caso devemos com uma função objetivo bem calibrada atingir uma solução boa. A decisão de como utilizar AG na solução do problema em geral também esbarra na definição do cromossomo. Uma boa solução é totalmente dependente de uma boa modelagem do seu cromossomo. Em geral AGs são bem empregadas para definir comportamentos de personagens obtendo a partir de um dicionário de possibilidades uma enorme variedade de personagens únicos e inusitados, sendo utilizado portanto massivamente em jogos de estratégia.
4.5 Redes neurais
As redes neurais, como citado em [~Charles1], assim como os algoritmos genéticos, tentam imitar um comportamento da natureza, nesse caso buscam emular o funcionamento do nosso cérebro que como já sabemos transmite e armazena informações através de neurônios por meio de suas conexões e sinapses. A proposta das redes neurais é formar a partir de uma base de dados conhecida e um processo de treinamento uma simulação de aprendizado, modificando conexões entre neurônios e seus pesos de importância. Assim como nos algoritmos genéticos a modelagem dos neurônios é diretamente ligada
à qualidade da solução e à velocidade de aprendizado. A idéia de criar um jogo que aprenda com o jogador ou mesmo treiná-lo na fase de balanceamento sempre empolgou os desenvolvedores, entretanto raramente é feito de maneira aceitável. O aprendizado é basicamente dividido em:
• Supervisionado: fornecemos para a rede neural dados de entrada e a resposta desejada, sendo assim o sinal de entrada é propagado por toda a rede e caso atinja uma solução, tal comportamento é reforçado, do contrário as conexões e pesos são refeitas de forma a aderir á solução.
• Não Supervisionado: tenta a partir de uma base de dados inicial representar a estrutura estatísticas dos dados de entrada, sem saber na verdade a solução, tenta a partir dos dados interpretar o comportamento esperado.
• Reforço: é o comportamento que mais se assemelha à maneira como aprendemos sozinhos, por tentativas e erro avaliando se estamos mais próximos de atingir o resultado esperado. Por exemplo como aprendemos a andar, a dirigir ou a lutar.
Figure 4: Aprendizado por reforço
O grande problema da rede neural mal desenvolvida é o aprendizado não convergir para a solução esperada, podendo, no extremo, por exemplo com um aprendizado não supervisionado após varias entradas erradas, treinar a rede para responder de forma inesperada. As redes neurais podem ser empregadas em dois momentos:
• Balanceamento: de posse de uma massa de dados de testes feitos por testers calibramos a rede para responder de acordo com um comportamento previamente conhecido.
• Durante o jogo: com o uso de sensores e atuadores a rede interpreta durante o jogo os comportamentos e balanceia constantemente os pesos e conexões. Essa abordagem se não bem dosada pode gerar partidas muito difíceis e desestimular o jogador, além de ser mais complexa a formulação do algoritmo de aprendizado. Jogos como Black and White
usam massivamente o aprendizado por reforço durante o jogo, retirando feedbacks dos jogadores na tentativa de compreender os seus desejos.
Figure 5: Cena de Black and White
Jogos sociais como The Sims também utilizam aprendizado por reforço em tempo real para compreender o modo como o jogador gostaria que o seu avatar se comporte.
5 técnicas atuais
5.1 Behavior Tree
É uma máquina de estados finitos hierárquicos disposta na forma de uma árvore. De forma mais explícita é um grafo direto aciclico e cada nó pode ter várias conexões permitindo o reuso de sub behavior trees como citado em [2009]. As behavior trees vieram para substituir a intangível solução de construir um grafo como uma máquina de estados com transições e ações definidas por uma abordagem mais simples com uma passagem por uma árvore de comportamentos hierarquicamente aninhados, além de permitir a modificação em tempo real de maneira bastante intuitiva.
Inicialmente o agente deve ser modelado como uma tabela de características e flags que serão modificados e consultados durante cada ciclo de passada pela árvore, formando a base de conhecimento do agente. Tal tabela deve ser feita com o mínimo possível de informações para facilitar a depuração. A cada ciclo, rodamos a base de conhecimento de cada agente na árvore, fazendo testes condicionais com o objetivo de atingir uma folha da árvore e executar uma ação. As ações usualmente são pedaços de código que serão executados caso a folha seja atingida na passagem da árvore executando uma busca em largura. Uma característica da
behavior tree é a fácil adição de novos comportamentos mesmo em tempo real, simplesmente
anexando uma folha a algum nó. Cada nó é composto basicamente por uma condição, uma lista de filhos e uma ação, podendo a lista e a ação serem nulas. Podemos adicionar táticas de grupos por exemplo simplesmente adicionando ao nó uma quantidade máxima de participantes além da sua condição. Atualmente utilizado em jogos como Halo 2, Halo 3,
Crysis, Left 4 Dead e vários outros títulos.
5.2 navegação
Os jogos atuais tem abordagens com resultados mais fluidos do que os apresentados na seção anterior, conferindo ao movimento mais naturalidade e possibilitando uma melhor manipulação do mundo, facilitando a criação e modificação.
5.2.1 Steering Behavior
Steering Behaviors é um tópico bastante grande e não restrito à navegação. Diversos
efeitos interessantes como Flocking podem ser obtidos com o uso desta técnica. Neste artigo nos restringimos a Steering Behaviors aplicado a navegação, em especial aos behaviors:
AvoidObstacle, Seek, StayOnPath e AvoidNeighbors. Existem diversas maneiras de enxergar
os Steering Behaviors, foi escolhida a abordagem baseada em campos elétricos pela sua fácil compreensão. Cada objeto no mundo virtual cria uma campo atrator ou repulsor. (Conceito bastante semelhante aos campos elétricos). Se um agente estiver sob o raio de ação de um destes campos, uma força proporcional ao valor dele irá aparecer no agente. A intensidade e o decaimento destes campos são parâmetros de difícil medição cujos valores vêm da experiência do designer e da experimentação.
O projeto de um sistema de navegação seguindo Steering Behaviors é completamente diferente dos sistemas clássicos usando PathFinding. Não existe fase de pré-processamento para geração de WayPoints além da diferença na semântica das variáveis que neste caso estão sempre relacionadas com a física. O primeiro passo de um sistema de Steering
Behaviors é definir um agente(o agente de Steering contém alguns atributos a mais do que
um agente de PathFinding) que normalmente é modelado como um veículo (entidade que possui uma aceleração, um torque e uma velocidade máximas, além de um vetor direção que aponta para a sua frente e um sistema auxiliar que irá converter a resultante que o agente está submetido em variáveis físicas como aceleração). Este agente irá possuir alguns comportamentos chamados na técnica de Behaviors. Um comportamento descreve como o agente irá enxergar os campos do mundo virtual (atrator ou repulsor). A seguir os comportamentos usados pelo sistema de navegação serão descritos:
• AvoidObstacle: comportamento bastante simples que consiste em enxergar os campos dos obstáculos estáticos como repulsores que decaem com a distância.
• Seek: comportamento que consiste em enxergar o Destino como um atrator, ele será um campo uniforme e não decairá com a distância. O Parâmetro de entrada é a posição do destino.
• AvoidNeighbors: comportamento bastante complexo (sua explicação detalhada esta fora do escopo do artigo) que consiste em evitar colisões com outros agentes. O método usado é baseado em previsão futura de posição (supor que os agentes manterão a mesma aceleração e velocidade, e prever sua posição em um tempo futuro próximo, verificar se existe alguma colisão em potencial e, se houver, enxergar a posição da colisão com o campo repulsor.
Figure 8: Comportamento AvoidNeighbors
• StayOnPath: comportamento que mantém o agente atraído a um percurso. Fazendo uma analogia, seria como se o agente estivesse dentro de um tubo com atração elétrica alta, sendo assim o agente sempre tenderia a voltar para a sua envoltória.
Existem muitos outros comportamentos para o Steering Behavior. A grande vantagem de se utilizar essa abordagem é obtermos comportamentos mais dinâmicos e podermos adicionar novos comportamentos a qualquer momento visto que com a abordagem de
campos elétricos, cada comportamento não passa de um vetor a mais, somado ao movimento do agente. A utilização isolada entretanto pode causar problemas muito sérios, como por exemplo o personagem ficar preso em quinas ou devido ao mal calibramento dos campos, um objeto não conseguir chegar ao seu objetivo. Uma forma de corrigir tal problema é com uma abordagem híbrida com A star, criando previamente um caminho entre origem e destino, e com um comportamento StayOnPath garantir que o caminho traçado teria os pontos bons do A star, a garantia de convergência, e do Steering Behavior, movimentação fluida e com adição de comportamentos.
5.2.2 Navigation Mesh
Os Navigation Mesh como citado em [~blog 2008] são representações do mundo assim como os WayPoints citados na seção anterior, entretanto ao invés de representar o modelo como uma lista de pontos, utiliza um modelo que demonstra os locais onde os agentes podem se locomover. Os meshes podem ser gerados em modeladores 3D em geral no mesmo momento que o designer está desenvolvendo o modelo do cenário, já tem a possibilidade de desenvolver o terreno de locomoção. Como os meshes são representações de posições livres para andar enquanto não houver movimentação ou modificação do cenário, os testes de colisão podem ser reduzidos consideravelmente pois garantimos que nenhum NPC vai tentar atravessar alguma parede ou colidir com algum objeto. Com o uso dos WayPoints, tinhamos regiões que eram interpoladas, com o uso dos Navigation
Mesh, temos uma densidade de informação bem maior com uma quantidade de dados
armazenado muito menor como mostra na figura:
Figure 9: Navigation Mesh em Halaa
Como temos uma densidade de informação bem maior, podemos ter uma interpolação entre pontos muito mais suave, e reações para desviar de obstáculos moveis que não tinham sido previstos no advento da criação da cena, por exemplo. Ao invés de representar o mapa como um grafo de pontos conectados, utilizamos como um grafo de polígonos convexos.
Navigation Mesh são muito utilizados ultimamente por exemplo em jogos como: Halo 2, Halo 3, First Encounter Assault Recon (F.E.A.R.), Counter-Strike: Source, Metroid Prime, Metroid
Prime 2: Echoes, Metroid Prime 3: Corruption, Jak and Daxter: The Precursor Legacy, Jak II, Jak 3, Uncharted: Drake’s Fortune, Scarface: The World is Yours e muitos outros.
5.3 planning GOAp (Goal-Oriented Action planning)
GOAP como citado em [2003] e [2006] é uma técnica para tomadas de decisões que produz uma sequência de ações (plano) para atingir objetivos. O sistema é composto por:
• Goal: É qualquer condição que o agente deseja satisfazer;
• Action: é um passo atômico no Plan que faz o personagem fazer algo;
• Plan: uma lista de Actions.
É um processo que não elimina as máquinas de estado mas simplificam em muito a sua utilização além de tornar dinâmica a sua criação, sendo composto por um estado inicial, uma meta (Goal) e ações atômicas para concluir, assemelhando bastante com a idéia de uma maquina de estados, entretanto, ao contrário desta, as conexões podem ser várias, obtendo uma grande gama de possibilidades, o que aumenta em muito a diversidade das soluções, impedindo que o jogador aprenda como o jogo se comporta e burle a inteligência artificial. Essa estrutura dinâmica possibilita tanto soluções inesperadas quanto uma fácil adição de novos comportamentos.
Figure 10: Processo de formação de solução
A criação dos planos é feita por uma busca em um grafo de ações em geral utilizando A star, considerando os nós como os estados e as arestas como ações. As vantagens sobre a solução clássica de tomada de decisão das maquinas de estado é que a princípio não é necessário determinar previamente todas as conexões que levam até as metas sendo que a única coisa que temos que especificar são pré-condições e efeitos para cada ação. Devido à flexibilidade e a facilidade de depuração e criação dos planos esta técnica, apesar de considerada nova, está tomando força frente aos novos jogos utilizada em jogos como
F.E.A.R.(X360/PS3/PC), Condemned:Criminal Origins (X360/PC), S.T.A.L.K.E.R.: Shadow of Chernobyl (PC), Mushroom Men: The Spore Wars(Wii), Ghostbusters(Wii), Silent Hill: Homecoming ( X360/PS3), Fallout 3 ( X360/PS3/PC), Empire: Total War (PC), F.E.A.R. 2: Project Origin (X360/PS3/PC), Demigod (PC), Just Cause 2 (PC/X360,PS3), Transformers: War for Cybertron (PC/X360/PS3), Trapped Dead (PC), Deus Ex: Human Revolution (PC/X360/PS3).
6 tendências
A evolução da inteligência artificial tem de estar sempre junto com a evolução da qualidade gráfica dos jogos, do contrário todo o esforço em computação gráfica será em vão, obtendo jogos frustrantes. A simulação de eventos ou comportamentos tem de ser cada vez mais verossímil. Por isso existem desenvolvimentos de ferramentas de teste e calibração dos algoritmos de forma mais intuitiva para que o designer possa modificar os dados sem a ajuda de um programador. Com a migração de parte do processamento da inteligência artificial para as placas de vídeo, o poder computacional empregado crescerá bastante, sendo possível por exemplo o desenvolvimento de simulação de multidão mais realista e
cut scenes interativas eliminando os cinematics pré renderizados. Uma forte tendência é
aumentar o poder das IAs online, podendo evoluir o aprendizado de redes neurais a partir de informações dos jogadores.
7 iA na GpU
Devido ao crescente papel da inteligência artificial nos jogos eletrônicos o percentual ocupado de cada ciclo de atualização começou a tornar-se significativo, influenciando no tempo de renderização, simulação física ou gameplay. Como não podemos reduzir a qualidade das simulações físicas ou diminuir a qualidade visual do jogo, a única solução era utilizar o tempo ocioso da placa de video enquanto não estivesse renderizando para fazer cálculos para IA. É fato que ainda são poucas as implementações que se utilizam de tal benefício, mas a tendência é a de cada vez mais migrar para a GPU, visto que a mesma possui poder de processamento muito superior ao da CPU para cálculos vetoriais ou repetitivos.
References
[~blog 2008] ai blog, 2008. Why waypoints aren’t for pathfinding, 7.
[and Mcglinchey] Charles, D., and Mcglinchey, S. the past, present and future of artificial neural networks in digital games.
[2003] Orkin, J., 2003. Applying goal-oriented action planning to games. [2006] Orkin, J. 2006. three states and a plan: The a.i. of f.e.a.r. GDC. [2009] Pilosu, R., 2009. Coordinating agents with behaviour trees.
Gameficação - Uma Análise
das técnicas de engajamento
Atualmente Utilizadas
Alexandre Sena
1Dennis Kerr Coelho
2Resumo
O sucesso que os jogos eletrônicos, ou games, vêm fazendo em todas as faixas etárias é inegável e grande parte deste sucesso só pode ser explicado analisando certos aspectos do game relacionados com sua habilidade de manter o jogador o maior tempo possível interessado. Para entender o que cativa um jogador é importante descobrir suas motivações e de que formas os games trabalham seus desejos e geram novas motivações. Estudos demonstram que é possível a utilização de técnicas de engajamento idealizadas para incutir no jogador emoções e sentimentos, conforme o seu perfil, para garantir seu interesse no game, aumentando o tempo dedicado ao mesmo. Este tutorial apresenta alguns cases de softwares de setores considerados tradicionais que utilizaram tais técnicas e assim se beneficiaram de um processo de gameficação, o qual pode ser definido como o uso das mecânicas de game em aplicativos e software. A ideia é encorajar os usuários a adotar comportamentos desejáveis por meio de técnicas que tiram vantagem das características psicológicas humanas. Mas vale a pena ressaltar que a gameficação pode auxiliar em muito o setor tradicional de software, mas não se deve esperar que a ela seja a solução mágica para qualquer coisa. Ou seja, estas
1 Universidade Federal de Santa Catarina, Departamento de Engenharia e Gestão do Conhecimento, Brasil. 2 Universidade do Vale do Itajaí, Centro de Ciências Tecnológicas da Terra e do Mar, Brasil.
técnicas podem agir como ferramentas complementares, mas não oferece vantagem se o serviço/atividade onde estão sendo implementados, não ofereçam a sensação de realização. palavras-chaves: Games. Motivação. Perfil do jogador. Técnicas de engajamento.
introdução
O sucesso que os jogos eletrônicos, ou games, vêm fazendo em todas as faixas etárias é inegável. Segundo a consultoria online (Newzoo, 2011), há nos Estados Unidos 145 milhões de jogadores (43% da população), os quais passaram 215 milhões de horas jogando videogame por dia.
Grande parte deste sucesso só pode ser explicado analisando certos aspectos do game relacionados com sua habilidade de manter o jogador o maior tempo possível interessado.
Deste modo, a primeira seção deste tutorial se dedicará a apresentar conceitos teóricos que auxiliarão na contextualização da base dos estudos. Em especial alguns aspectos psicológicos, como a motivação.
A segunda seção do tutorial apresenta a motivação no contexto apresentado pela indústria de games, por meio de seus desenvolvedores. Pois como diz Ghozland (2010), a importância do game está relacionada com a capacidade do mesmo em gerar e manter o interesse dos jogadores, sendo a motivação o fator que define o tempo que este jogador se manterá jogando, alguns minutos ou várias horas.
A terceira seção dedica-se demonstrar um resumo das diversas técnicas de engajamento e alguns exemplos de games que as utilizaram, bem como uma proposta dos melhores usos de cada técnica, tendo em vista o perfil do jogador.
Para finalizar é feito um levantamento na quarta seção sobre como as técnicas identificadas anteriormente estão sendo implementadas por softwares tradicionais, por meio da gameficação.
Conceituação teórica
Antes do estudo dos cases esta seção se dedica a apresentar alguns conceitos básicos no que se refere aos aspectos psicológicos deste tema.
Os primeiros conceitos são aqueles relacionados a dimensão subjetiva, a qual pode ser reconhecida também em produções para games por meio de representações sociais, identidade social, ideologia, valores, rituais, hábitos, costumes, leis e regras. A subjetividade cria produtos coletivos, nos quais se percebe a participação de sujeitos. (Gonçalves & Bock 2009)
O psiquismo é uma chave para entender esta subjetividade, sendo suas principais categorias: atividade, consciência, identidade e afetividade. Tais categorias permitem pensar a realidade psíquica em seu movimento de transformação e nas relações que se estabelecem para a produção do que é chamado subjetividade. (Gonçalves & Bock 2009)
E um fator que influencia definitivamente na criação da subjetividade é a motivação. Em seus estudos, Matlin (2004) faz uma grande pesquisa sobre motivação, utilizando como referência diversos autores. Como base nestes estudos, algumas considerações podem ser feitas sobre este assunto.
Há, por exemplo, dois tipos de motivação: a intrínseca e a extrínseca. A primeira se refere à motivação para se trabalhar com aquilo que se considere interessante, empolgante ou pessoalmente desafiador. O segundo tipo, por sua vez trata da motivação para se trabalhar em um determinado assunto com a promessa do recebimento de uma recompensa.
A autora identificou ainda uma relação entre motivação intrínseca e a criatividade, ou seja, as pessoas tendem a ser mais criativas quando fazem algo que lhes dá prazer.
Mas não se pode simplesmente descartar a motivação extrínseca como forma de alcançar resultados criativos. Uma análise mais detalhada sugere que alguns tipos de motivação extrínseca na verdade podem melhorar a criatividade. Um exemplo é o proveito que se pode ter da motivação extrínseca quando ela vem na forma de informações úteis e quando ajuda a executar uma tarefa com mais eficiência.
Figura 1 – Resumo de teorias clássicas (Vassileva 2012)
Finalizando esta seção, a figura 1 apresenta um interessante resumo de teorias clássicas que podem auxiliar a entender aspectos psicológicos importantes para o estudo da motivação, os quais valem destacar (Vassileva 2012):
Garantir recompensas, segundo a teoria da motivação extrínseca, leva o sujeito a realizar uma determinada ação ou apresentar um determinado comportamento;
Todos os seres humanos necessitam socializar e procuram por formas de reconhecimento social e de status; Reconhecimento e reputação estão associados com as capacidades do sujeito (Teoria da auto-eficácia de Bandura);
A teoria da cognição dissonante cita que as pessoas tendem a comparar-se àquelas que consideram semelhantes a elas, e objetivam com isto avaliar formas de melhoria.
A comparação social parece ser um poderoso incentivo para aumentar a contribuição em comunidades online.
Motivação do Jogador
Para entender o que cativa um jogador é importante descobrir suas motivações e de que formas os games trabalham seus desejos e geram novas necessidades. O santo graal da
indústria dos games é decifrar o mecanismo da motivação do jogador. Game Designers ao redor do mundo estão tecendo suas teorias sobre a motivação dos jogadores e como tirar proveito dela em seus games.
Segundo Ghozland (2010):
“A importância da experiência de um jogo depende de quanto interesse ele pode gerar. Criar e manter o interesse dos jogadores é a maneira de gerir a sua motivação. Sua motivação é o fator que irá determinar se um jogador vai continuar a jogar depois de alguns minutos, bem como quanto tempo ele vai jogar e se ele vai terminar o jogo.”
O objetivo desta seção é mesclar o conteúdo prévio apresentado com a visão de mercado. O primeiro passo é entender como os game designers utilizam a motivação, em especial a intrínseca. Em 1996, Bartle publicou um estudo onde propõe uma taxonomia para entender como os diversos perfis de jogadores são motivados. Como pode ser observado na figura 2, os jogadores foram divididos em quatro categorias: Realizadores, Exploradores, Socializadores e Predadores.
Figura 2 - taxonomia de Jogadores (Bartle, 1996)
Os realizadores são motivados por fazer o que o game lhes pede (missões, quests,
etc.) e em agir sobre o mundo virtual. O ambiente do game é um mundo pleno e ele pode mergulhar da maneira que achar mais atraente. O compartilhamento deste mundo com outros jogadores normalmente apenas adiciona um pouco de autenticidade à imersão e, talvez, um elemento competitivo. Realizadores se orgulham de seu status formal na hierarquia do game e do pouco tempo que eles levaram para alcançá-lo.
Já os exploradores estão interessados em serem surpreendidos pelo game, ou seja, em interagir com o mundo criado e descobrir seus segredos. É o sentimento de admiração que os motivam a seguir em frente. Outros jogadores adicionam profundidade ao game, mas eles não são componentes essenciais para sua permanência, exceto, talvez, como meios de acesso a novas áreas. Exploradores se orgulham de seu conhecimento dos pontos mais delicados do game e gostam de se considerarem “gurus” para os jogadores menos experientes.
A terceira categoria, os socializadores, estão interessados em interagir com outros jogadores. Isso geralmente significa conhecer, informar-se e comunicar-se com outros jogadores. Muito mais do que tratá-los como um simples meio de atingir seus objetivos, o socializador se orgulha de suas amizades, seus contatos e sua influência.
Finalmente, os predadores estão interessados em demonstrar sua superioridade sobre outros jogadores. Normalmente veem estes outros jogadores como adversários ou meras ferramentas para seus objetivos, não se importando com a interação social. Usam o mundo do game como uma catarse, realizando ações que no mundo real não seriam permitidas. Predadores se orgulham da sua reputação e de suas habilidades frequentemente praticadas em combate.
Fica claro que o entendimento dos perfis dos jogadores auxilia os desenvolvedores a incluir elementos que garantem a existência da motivação intrínseca. Contudo, tal fator isolado não pode garantir o sucesso de um game.
Além deste aspecto, Clark (2007) identificou outras seis características subjetivas que fazem os games cativantes: autonomia, auto-confiança, desafios, feedback, metas e interação social.
Uma análise mais aprofundada demonstra que entre estas sete características, uma é relativa aos aspectos do relacionamento coletivo (interação social); três estão focadas com aspectos inseridos no game (desafio, feedback e metas); e os três últimos necessitam ater-se a uma dimensão subjetiva da realidade, pois dependem da produção de certas emoções no indivíduo para gerar os efeitos desejados (motivação intrínseca, autonomia, autoconfiança).
Para tanto é importante a inserção no game de uma narrativa criativa e não- linear, que tenha suporte nos diferentes elementos hipermidiáticos fornecidos por videogames e computadores.
Há três elementos que devem ser inseridos nesta narrativa, assim como no próprio design do game: necessidade, desafios e recompensas. Deste modo, gerenciando essas três variáveis seria possível gerenciar a motivação do jogador assim como os demais elementos subjetivos.
Tendo isto em vista, Ghozland (2010) argumenta que o design do game deve construir o ciclo de necessidades do jogador e depois respondê-las com uma sucessão de desafios e recompensas. Esta estrutura inerente a um game é construído em torno dos princípios de crescimento, progressão e realização do individuo, afetando diretamente seu sentimento de autonomia e autoconfiança.
Além dos fatores previamente apresentados, Novak (2010) apresentou complementarmente em seu livro outros fatores que motivam os jogadores a continuarem jogando:
Escapismo: Muitos jogadores indicam que tendem a jogar para escapar das tensões e dos desafios da vida real. O mundo imaginário do game segue suas próprias regras, algumas das quais são menos restritivas que as da vida real.
Compulsão: Alguns jogadores afirmam que são motivados pela tendência de concentrar-se em uma atividade em prejuízo de todas as demais. Uma dos maiores elogios que um game designer pode receber de um jogador e ele dizer que o game é viciante.
técnicas de engajamento
Com base no exposto, é possível a utilização de determinadas técnicas para incutir no jogador emoções e sentimentos, conforme o seu perfil, para garantir seu interesse no game, aumentando o tempo dedicado ao mesmo.
Estas técnicas de engajamento são recursos de game design utilizados para motivar e manter um jogador interessado no game. Existem várias técnicas que vêm sendo usadas nos mundos dos games a bastante tempo, mas foi a partir do sucesso dos games para redes sociais que mais pesquisas foram feitas.
Essa popularização fez com que fossem criadas pequenas “receitas de bolo” que podem ser utilizadas nos mais diversos games ou aplicativos. A seguir são apresentadas algumas destas técnicas.
Achievements ou Badges são pequenos prêmios virtuais na forma de bottons ou
insígnias, esses prêmios são oferecidos aos jogadores depois de realizarem alguma tarefa ou obterem alguma conquista. Segundo Zichermann e Cunningham (2011), badges são uma excelente maneira de incentivar a promoção social de produtos e serviços relacionados ao game. Badges também marcam a conclusão das metas e o progresso constante dentro do sistema do game.
Figura 3 – exemplo de badges do game Battlefield: Bad Company 2
desafios e Missões são técnicas muito utilizadas para manter o jogador ocupado ou
evitar a sensação de fim do game. Além disso, essas técnicas fazem com que o jogador siga um caminho no mundo virtual condizente ao planejado pelo game designer. Algumas pessoas entram no game sem a menor ideia de seus objetivos ou fundamentos, assim, mesmo se um desafio não está no centro da experiência do game, utilizar desafios é uma opção para adicionar profundidade e significado para o jogador. (Zichermann & Cunningham 2011)
Figura 4 - no Game CityVille quests são uma forma do game designer orientar o jogador na forma deste interagir com o mundo criado
Rankings e Leader Boards objetivam incentivar a competição entre os jogadores,
fortalecendo assim sua motivação para jogar e evoluir.
Figura 5 - A utilização de Learder Boards é peça fundamental no game Fruit Ninja
Progress Bar demonstra a evolução do jogador ao longo do game, assim o jogador
sabe o quão perto de completar algum desafio ou objetivo ele se encontra.
Uma recurso muito adotado pelos desenvolvedores é sempre manter o jogador perto de finalizar uma progress bar, seja mudar de nível de experiência, melhorar uma habilidade ou adquirir uma arma melhor. Deste modo, no momento que um objetivo é alcançado, outro está muito próximo de ser completado, o que aumenta o tempo de permanência.
Gifting é um sistema implementado no game para aumentar a interação social. Com
esse sistema o jogador é estimulado a dar presentes para seus amigos, os quais são atraídas ao game. A troca diária de presentes pode criar grupos fiéis de jogadores que retornam periodicamente.
Figura 7 - Opções de presentear amigos se tornou rapidamente item obrigatório de qualquer jogo em redes sociais, como é o caso do game FrontierVille
Como base no exposto, a tabela a seguir apresenta uma proposta dos autores do melhor uso de técnicas de engajamento, tendo em vista o perfil do jogador e os aspectos subjetivos envolvidos.
tabela 1 - Relação entre técnicas de engajamento e subjetividade (fonte: autores)
técnicas de engajamento Características Reforçadas perfil do Jogador
Achievements ou Badges
Autonomia, auto-confiança, desafio, feedback, metas,
escapismo, compulsão. Realizadores, Socializadores, Exploradores Desafios e Missões Motivação intrínseca, auto-confiança, desafio, feedback, metas,
escapismo, compulsão.
Realizadores, Exploradores
Rankings e Leader Boards
Autonomia, auto-confiança, desafio, metas, interação
social.
Predadores, Socializadores
Progress Bar
Motivação intrínseca, auto-confiança, desafios, feedback, metas, compulsão.
Todos
A proposta apresentada na tabela 1 é uma simples generalização, pois como Bartle também mencionou em seu trabalho, os jogadores podem apresentar, mesmo e menor grau, características de diversos perfis simultaneamente.
Cases
A presente seção apresenta alguns cases de softwares de setores considerados tradicionais que utilizaram técnicas de engajamento e assim se beneficiaram de um processo de gameficação.
Gameficação é o uso das mecânicas de game em aplicativos e softwares. A ideia é encorajar os usuários a adotar comportamentos desejáveis por meio de técnicas que tiram vantagem das características psicológicas humanas. Essas técnicas encorajam o usuário a realizar tarefas consideradas normalmente entediantes como completar uma pesquisa, comprar algo, ou manter um cadastro atualizado.
O Foursquare, por exemplo, é um serviço baseado em localização com mais de 20 milhões de usuários em sua plataforma. O serviço foi construído em torno de técnicas de engajamento. Os usuários podem reclamar de prefeituras, destravar os badges, receber ofertas especiais e recompensas, tais como descontos, e disputar contra amigos por meio de um ranking.
Utilizando as técnicas de engajamento o Foursquare cria e mantém uma base de dados da localização de locais e construções de interesse das pessoas. Pessoas que acabam buscando no Foursquare informações mais detalhadas sobre esses lugares. Com essa estratégia o Fousquare construiu essa base de dados com um custo infinitamente menor ao de outras empresas que construíram através de suas próprias forças.
Apesar da falta de estudos científicos, outra área que parece se beneficiar do potencial das técnicas aqui apresentadas são as soluções para ERP e CRM. Entendendo este potencial, a Salesforce.com permitiu que terceiros desenvolvessem soluções que se integrasse ao seu CRM com utilização de leaderboards e badges, como demonstrado na figura 9.
Figura 9 - exemplo de ranking e badges
Um fator apontado por JP Rangaswami, cientista chefe da Salesforce.com é que o uso de badges e ranking traz inúmeras vantagens.
Para o funcionário da empresa, ao receber um distintivo virtual toda vez que ele realiza uma ação a favor da empresa, ou toma a iniciativa de capacitar-se, fica evidente aos indivíduos que a empresa está acompanhado os esforços e motivando o crescimento.
Como empresa, ter um resumo visual de cada colaborador da forma apresentada na figura 9 facilita em muito o processo de criação de equipe de trabalho ou acompanhar a performance de uma equipe de vendedores, por exemplo.
A rede social LinkedIn também oferece um pequeno exemplo de gameficação ao incentivar usuários a completar seu perfil, por meio de uma barra de progresso sempre visível. Ao fornecer este recurso, os desenvolvedores esperam desencadear um comportamento que impele o usuário tentar chegar aos 100%.
O gerenciado financeiro pessoal Mint oferece um score para seu desempenho em gestão financeira baseada em técnicas de engajamento associadas com a progressão do usuários na conclusão de tarefas e quests. Ao tornar uma atividade comum em uma experiência de game casual, o Mint cria uma oportunidade para impulsionar a aquisição de novos usuários de uma forma criativa.
Para finalizar, vale ressaltar que a gameficação pode auxiliar em muito o setor tradicional de software, visto que a geração atualmente ativa no mercado de trabalho, mesmo aqueles que não são gamers, com certeza estão familiarizados com os mecanismos utilizados nos games (competividade, rankings, etc.)
Contudo, não se pode esperar que a gameficação seja a solução mágica para qualquer coisa. Ou seja, estas técnicas podem agir como ferramentas complementares a uma estratégia da empresa, mas não oferece vantagem se o serviço/atividade onde estão sendo implementados não ofereçam a sensação de realização.
Referências
Anderson et al., 2004. Continental Airlines Flies High with Real-time Business Intelligence Continental Airlines Flies High with Real-time Business Intelligence Introduction. MiS Quarterly executive 3, (4), pp.163 – 176.
Bartle, R., 1996. Heart , Clubs , Diamond , Spades: players who suit muds. the Journal of Virtual environments, 1(1). Available at: http://www.mud.co.uk/richard/hcds.htm [Accessed February 9, 2012].
Clark, D., 2007. Games , motivation & learning, Sunderland, UK. Available at: www. caspianlearning.co.uk.
Cooper, B.L. et al., 2000. Data Warehousing Supports Corporate Strategy at First American Corporation. MiS Quarterly, 24(4), pp.547–567.
Cooper, S. et al., 2010. Fold it. Available at: http://fold.it/portal/about [Accessed June 12, 2012].
Coren, M.J., 2011. Foldit Gamers Solve Riddle of HIV Enzyme within 3 Weeks. Scientific American, p.1.
Garrido-Moreno, A. & Padilla-Meléndez, A., 2011. Analyzing the impact of knowledge management on CRM success: The mediating effects of organizational factors.
international Journal of information Management, 31(5), pp.437–444. Available at: http://linkinghub.elsevier.com/retrieve/pii/S026840121100003X [Accessed July 20, 2012]. Ghozland, D., 2010. Designing for Motivation. Gamasutra, pp.1–9. Available at: http:// www.gamasutra.com/view/feature/1419/designing_for_motivation.ph p.
Gonçalves, M. da G.M. & Bock, A.M.B., 2009. A dimensão subjetiva dos fenômenos sociais. In M. da G. M. Gonçalves & A. M. B. Bock, eds. A dimensão subjetiva da Realidade - Uma leitura sócio-histórica. São Paulo: Cortez Editora, p. 160.
Hajji, A. et al., 2012. Dynamic pricing models for ERP systems under network externality. international Journal of production economics, 135(2), pp.708–715. Available at: http://linkinghub.elsevier.com/retrieve /pii/S0925527311004348 [Accessed August 5, 2012]. Matlin, M.W., 2004. psicologia Cognitiva 5a Ediçao., Rio de Janeiro: LTC.
Newzoo, 2011. Infograph US. newzoo. Available at: http://www.newzoo.com/templates/ dispatcher.asp?page_id=1589 [Accessed February 11, 2012].
Novak, J., 2010. desenvolvimento de Games, São Paulo: Cengage Learning.
discriminate the traffic accidents on Konya– Afyonkarahisar highway in Turkey with the help of GIS: A case study. Advances in engineering Software, 42(7), pp.491–500. Available at: http://linkinghub.elsevier.com/retrieve /pii/S0965997811000573 [Accessed August 5, 2012].
Ramakrishnan, T., Jones, M.C. & Sidorova, A., 2012. Factors influencing business
intelligence (BI) data collection strategies: An empirical investigation. decision Support Systems, 52(2), pp.486–496. Available at: http://linkinghub.elsevier.com/retrieve /pii/ S0167923611001722 [Accessed July 25, 2012].
Vassileva, J., 2012. Motivating participation in social computing applications: a user
modeling perspective. User Modeling and User- Adapted interaction, 22(1-2), pp.177– 201. Available at: http://www.springerlink.com/index/10 .1007/s11257-011-9109-5 [Accessed March 26, 2012].
Wybo, M., Robert, J. & Léger, P.-M., 2009. Using search theory to determine an applications selection strategy. information & Management, 46(5), pp.285–293. Available at: http://linkinghub.elsevier.com/retrieve /pii/S0378720609000597 [Accessed August 5, 2012].
Zichermann, G. & Cunningham, C., 2011. Gamification by design: implementing Game Mechanics in Web and Mobile Apps 1st ed., Sebastopol (CAN): O’Reilly Media, Inc.
introdução ao desenvolvimento
de Games com GWt e HtML5
Ely Fernando do Prado
1Resumo
O advento da tecnologia do HTML 5 tem aberto um novo mercado de jogos para internet, onde os usuários podem interagir com o game através de diferentes equipamentos, como computadores, tablets e celulares sem a necessidade de instalação prévia da aplicação ou mesmo algum plug-in. Por outro lado o framework Google Web Toolkit tem se mostrado uma boa alternativa para desenvolvimento de aplicações ricas para internet, utilizando a linguagem Java para gerar códigos HTML, CSS e JavaScript. Assim este trabalho tem por objetivo apresentar o framework GWT como solução para o desenvolvimento de jogos para
1 Departamento de Computação, Universidade Federal de São Carlos (UFSCar), São Carlos, SP; Libertas Faculdades Integradas, São Sebastião do Paraíso, MG; Universidade de Franca (Unifran), Franca, SP. Authors’
contact: [email protected]
Figura 1: Logotipos do Google Web toolkit e do HtML 5
internet em HTML5, demonstrando todos os passos necessários para codificação de um game loop, animações e interação com o usuário.
Keywords: GWT. HTML5. Jogos. Canvas.
1. introdução
Atualmente estamos presenciando um grande crescimento na demanda por jogos para internet. Outro acontecimento que está em bastante evidencia hoje é o surgimento e amadurecimento do HTML 5, que tem possibilitado a criação de jogos que rodam direto no navegador de maneira leve e prática.
A principal motivação para este tutorial é o grande crescimento no mercado de jogos para internet. O surgimento do HTML 5 permitiu que passássemos a desenvolver aplicações complexas para internet, sem ter que depender de algum plug-in específico. Além disso, aplicações desta natureza podem ser executadas em qualquer dispositivo que possua internet, como computadores, tablets e celulares de qualquer sistema operacional atual.
Um bom exemplo que tem alcançado bastante sucesso entre o público são os jogos adicionados no logotipo do Google, chamados doodles. Os doodles games são adicionados ao site de pesquisa do Google em comemoração a alguma data ou evento especial, e são jogáveis no próprio site.
Graças a grande experiência alcançada pelos engenheiros da Google no setor de aplicações ricas para internet, foi criado por eles o framework Google Web Toolkit (GWT), que tem facilitado muito criação de aplicações complexas na web, incluindo os jogos.
O objetivo deste tutorial é apresentar o framework GWT como uma alternativa para o desenvolvimento de jogos para internet. Para isso será apresentado como se dá o desenvolvimento de um jogo nesta tecnologia, sendo um jogo com poucas funcionalidades, porém o suficiente para dar os primeiros passos neste framework.
2. HtML 5
O padrão HTML5 complementa as capacidades das normas existentes no HTML com vários novos recursos. Embora o HTML5 seja um padrão web de propósito geral, muitos dos novos recursos são destinados diretamente para tornar a Web um lugar melhor para aplicações web com estilo desktop.
Dentre os novos recursos estão a capacidade das aplicações executarem em modo off-line e de armazenar dados localmente no computador ou dispositivo. Um recurso importante, especialmente quando se trata de desenvolvimento de jogos é o elemento Canvas, que oferece uma tela de desenho 2D, permitindo o desenho de formas gráficas, imagens e texto em tempo de execução. Outros recursos disponibilizados pelo HTML5 são para permitir que arquivos de mídia (áudio e vídeo) sejam executados no navegador sem necessidade de plug-in externo, também há elementos para carregamento de dados de
forma assíncrona e apoio para eventos de arrastar e soltar. Além dos recursos citados, a especificação HTML5 define inúmeros outros acréscimos, mas muitas destas especificações, bem como a especificação do HTML5 em si, estão ainda em definição, de modo que na versão final os seus detalhes podem variar. (Taivalsaari e Mikkonen, 2011)
Para o desenvolvimento de jogos o HTML por si só não é suficiente. O HTML é uma linguagem de marcação, que permite incluir elementos em uma página, como campos de formulário, texto, imagens, canvas, etc. Mas todos esses elementos são estáticos. Para superar as limitações do HTML podemos utilizar o Javascript, pois a ação toda precisa ser escrita em uma linguagem de programação. Javascript é uma linguagem de programação poderosa, com sintaxe baseada em C++, porém com suporte apenas parcial à orientação a objetos. Javascript é uma linguagem interpretada, sendo assim sua velocidade de execução e sua compatibilidade depende da máquina interpretadora que o navegador possui. (Nörnberg, 2011)
3. Google Web toolkit
O framework GWT (Google Web Toolkit) foi criado para facilitar o desenvolvimento de aplicações ricas para web fornecendo uma camada de abstração, que esconde os detalhes do Javascript e também as diferenças entre os ambientes específicos dos navegadores. Toda aplicação é escrita utilizando a linguagem Java, e o framework GWT traduz este código em JavaScript, DHTML e CSS. Ao efetuar esta compilação são geradas versões especificas da aplicação para cada tipo de navegador, tornando a aplicação compatível com os mais variados ambientes, e também com as diferentes versões desses navegadores. (Smeets, Boness e Bankras, 2009)
Seu objetivo é permitir o desenvolvimento produtivo de aplicações Web de alto desempenho sem que o desenvolvedor necessite ser um especialista nas peculiaridades de cada navegador, XMLHttpRequest e JavaScript
GWT é um framework essencialmente para o lado do cliente (cliente-side) e dá suporte à comunicação com o servidor através de RPCs (Remote Procedure Calls). Ele não é um framework para aplicações clássicas da web, pois deixa a implementação da aplicação web parecida com implementações em desktop. Para quem está habituado a desenvolver aplicações desktop, especialmente na linguagem Java se sente familiarizado com o uso do framework GWT. (Geary, 2008)
O GWT é utilizado por muitos produtos do Google, incluindo o Google Wave e Google AdWords. Tem sido utilizado também para a construção de jogos para internet, como por exemplo, a versão web do jogo Angry Birds.
GWT é de código aberto, totalmente gratuito, e utilizado por milhares de desenvolvedores ao redor do mundo. Está disponível sob a Licença Apache v. 2.0, concedendo-lhe uma licença perpétua, mundial, não exclusiva, sem nenhum custo, isenta de royalties, direitos autorais irrevogáveis para reproduzir, preparar trabalhos derivados, publicamente exibir, executar publicamente, sublicenciar e distribuir o trabalho.
Já que GWT compila código Java para JavaScript, é importante questionarmos quais são as vantagens de se desenvolver a aplicação em Java com GWT, ao invés de escrever diretamente em código JavaScript. A vantagem mais óbvia está no fato de GWT criar JavaScript perfeitamente compatível com os diferente navegadores, sendo assim não precisamos escrever estruturas condicionais para cuidar das diferenças do navegadores. Mas Dwyer, 2008, ainda faz a seguinte afirmação: “há três áreas específicas em que o GWT supera o JavaScript: escalabilidade, suporte à refatoração, e familiaridade.”. Isso se deve ao fato de GWT utilizar a linguagem Java, que apesar de seu nome sugerir o contrário, Java tem mais diferenças com JavaScript do que igualdades.
3.1 Ambiente de desenvolvimento
Como o framework GWT executa sobre a plataforma Java, você pode preparar seu ambiente de desenvolvimento nos principais sistemas operacionais disponíveis (Windows, Linux ou MacOS), porém é necessário ter instalado o Kit de Desenvolvimento Java em seu computador. Além disso, é requisito básico ter feito download e descompressão do Google Web Toolkit SDK. Ambas ferramentas citadas podem ser encontradas nos links a seguir:
• Java SE Development Kit (JDK): http://java.sun.com/javase/downloads/ • Google Web Toolkit SDK:
https://developers.google.com/web-toolkit/download
Apesar de não ser um pré-requisito, é bastante interessante utilizar uma IDE de desenvolvimento. Dentre as principais IDEs utilizadas para desenvolvimento de aplicações Java, podemos destacar o Eclipse que possui um plug-in oficial da Google para trabalhar com GWT. Tanto a IDE como o plug-in para desenvolver em GWT podem ser encontrados no link a seguir:
• IDE Eclipse: http://www.eclipse.org/downloads/
• Google Plugin for Eclipse: http://dl.google.com/eclipse/plugin/4.2
Para este tutorial foi utilizado a versão 4.2 do Eclipse, apelidada de Juno.
Para configurar o plug-in do GWT no Eclipse, basta clicar no menu do Eclipse “Help”, logo em seguida em “Install New Software”. Depois clique no botão “Add” e digite no campo
“Location” o endereço http://dl.google.com/eclipse/plugin/4.2 e clique em “Ok”. Marque os
itens “Google Plugin for Eclipse”, “GWT Designer for GPE” e “SDKs”.Clique no botão “Next”, aguarde o download ser terminado e clique em “Finish”.
Com essas etapas, o Eclipse está preparado para ser utilizado com ferramente de desenvolvimento para o framework GWT.