Home

UNIVERSIDADE DE LISBOA

image

Contents

1. Reynolds04 Reynolds J 2004 Team Member Alin an FPS In Rabin S ed AlGame ProgrammingWisdom 2 Charles RiverMedia 207 215 Reynolds87 Reynolds C W Flocks Herds and Schools A Distributed Behavioral Model Computer Graphics 21 4 SIGGRAPH 87 Proceedings pp 25 34 1987 Scutt02 Scutt T 2002 Simple Swarms as an Alternative to Flocking In Rabin S ed AlGame ProgrammingWisdom Charles RiverMedia 202 208 Sterren02a van der Sterren W 2002 Squad Tactics Team Al and Emergent Maneuvers In Rabin S ed AlGame ProgrammingWisdom Charles RiverMedia 233 246 Sterren02b van der Sterren W 2002 Squad Tactics Planned Maneuvers In Rabin S ed AlGame ProgrammingWisdom Charles RiverMedia 247 259 60 Sterren04 van der Sterren W 2004 Path Look Up Tables Small Is Beautiful In Rabin S ed AlGame ProgrammingWisdom 2 Charles RiverMedia 115 129 Straatman06 Straatman R and Beij A 2006 Dynamic Tactical Position Evaluation In Rabin S ed AlGame Programming Wisdom 3 Charles RiverMedia 389 403 Surasmith02 Surasmith S 2002 Preprocessed Solution for Open Terrain Navigation In Rabin S ed AlGame ProgrammingWisdom Charles RiverMedia 161 170 Tozour04 Tozour P 2004 Search space representations In Rabin S ed AlGame ProgrammingWisdom 2 Charles RiverMedia 85 102 TurtleKit09 Beurier G Michel F The TurtleKit Simulation Platform A Multi Age
2. T cnicas usadas Sistema de logs Retomar Suspender e passo a passo Sm Criag o de cen rios de teste Execug o de fung es definidas pelo utilizador em tempo real Monitoriza o de vari veis em tempo real Realiza o de experi ncias Sistema de avalia o de comportamentos Capacidade para gerir um grupo de agentes As tr s ltimas t cnicas da tabela 5 n o se encontram nas mais recentes plataformas de desenvolvimento de videojogos Num videojogo existem v rios n veis de dificuldade com sistemas que permitem realizar experi ncias e avaliar comportamentos Podemos testar e comparar qual o melhor comportamento e a que n vel de dificuldade se adequaria o que imposs vel com as plataformas actuais A capacidade de gerir grupos de agentes til para promover comportamentos colectivos entre agentes e jogadores 3 1 1 Arquitectura e respectivas funcionalidades A arquitectura da DEVELOP FPS baseia se em quatro componentes o script em Jess que define o comportamento do bot a consola individual respons vel pela monitoriza o e controlo individual de cada bot a consola global respons vel pela execu o controlo e monitoriza o de todos os bots intervenientes na experi ncia e o servidor do videojogo Unreal Tournament 2004 que permite aos agentes exercer os comportamentos ver figura 10 30 Controls Controls Send Information Send commands Send Controls PausefResume Show conso
3. accionada no m dulo respectivo depois de um return numa regra do m dulo PERCEPTION o controlo transferido para o m dulo ACTION e depois de um return numa regra do m dulo ACTION o controlo novamente retornado ao JAVA criando o ciclo da l gica do bot 3 1 3 Aplica o da DEVELOP FPS para comportamentos individuais Al m do comportamento apresentado na tabela 9 foram criados outros dois mais complexos o hunter que anda aleatoriamente pelo cen rio e sempre que v um inimigo persegue o e ataca o e o dodgeBehavior que uma evolu o do comportamento hunter e sempre que encontra um inimigo al m de o atacar tamb m se tenta desviar do ataque proveniente do inimigo Ap s a escrita dos scripts em Jess realizada num editor de texto que definem os tr s comportamentos estes necessitam de ser testados para verificar se correspondem ao que foi pensado e posteriormente programado 41 O procedimento normal para testar os comportamentos dados os mecanismos comuns de debugging pode passar pela cria o de logs por todo o script de forma a obter a sequ ncia de execu o de c digo Este tipo de procedimento pode levar a uma quantidade elevada de informa o tornando dif cil a sua interpreta o Um outro procedimento pode passar pelo uso de breakpoints e fun es de step que ao interromperem o jogo permitem a observa o do estado do comportamento nesse dado instante O problema das abordagens anteri
4. 55 Um futuro melhoramento nos dados reportados relativos a cada experi ncia seria importante para que o utilizador tivesse uma melhor leitura sobre a experi ncia ou uma avalia o mais completa sobre os comportamentos dos bots Dados como as armas utilizadas a varia o dos danos infligidos os caminhos que seguiu ou os waypoints que visitou e que inimigos matou Pode tamb m ser interessante reportar dados relativos s regras como por exemplo a frequ ncia com que foram executadas A vers o utilizada da API Pogamut V2 4 1 n o perfeita porque com o desenrolar do projecto foram detectados v rios problemas na API principalmente com m todos que promoviam a aquisi o de informa o para formar o resultado da experi ncia Por exemplo o m todo killedByWho chamado sempre que um bot era destru do devolvia identificadores de agentes que n o constavam no jogo A actualiza o desta API actualmente na vers o 3 2 0 Pogamutll seria bastante ben fica em dois aspectos primeiro oferece uma biblioteca de desenvolvimento para v rias plataformas nomeadamente para o UT2004 para o Unreal Development Kit UDK e para mundos DEFCON segundo apresenta uma biblioteca mais rica e com os erros mais graves corrigidos Este processo de actualiza o n o foi realizado porque esta nova vers o apenas surgiu numa fase j avan ada do projecto e n o compat vel com a vers o anterior Com o comportamento base implementado para uma e
5. Circulo trigonom trico aplicado para realizar a forma o diamante 48 Figura 21 Exemplo de como um bot na forma o se comporta quando detecta um Obstacule an da a Dans ag tee e e Sh 50 vil Figura 22 Fluxograma dos elementos da equipa ap s uma ordem para se moverem ER TOTAL AO IE e Or OOP EEY 51 Figura 23 Fluxograma do l der ap s a movimentag o rsuneensersnnersnersnneenne nennen 32 Figura 24 Anexo Consola global viii ne 65 Figura 25 Anexo Consola global detalhada 67 Figura 26 Anexo Consola individual errar 68 Preura 272 Anex0 Mapa2D lil cogi 69 viii Lista de Tabelas Tabela 1 Vantagens e desvantagens das representa es ooococcocccccoocccnonnnononanonananinns 14 Tabela 2 Exemplo de uma fun o para calcular o fitness de uma manobra 20 Tabela 3 T cnicas de debugging mais comuns eessesssssseesessnnneeensnnnennnnnnne nennen 21 Tabela 4 T cnicas e comportamentos de intelig ncia artificial 22 Tabela 5 Funcionalidades DEVELOP FBS nen 30 Tabela 6 Ficheiro XML com os par metros necess rios para a experi ncia 33 Tabela 7 Informa o apresentada sobre cada itera o da experi ncia 34 Tabela 8 M todo respons vel pela execu o do Jess Corresponde tamb m a uma unidade de comportamantto Lilas id essen seien 40 Tabela 9 Dummy clp um simples comportamento que f
6. Faz com que o agente se mova para a posi o m dia dos vizinhos O flocking excelente para simular bandos de p ssaros uma manada de animais um cardume ou mesmo com algumas altera es simular multid es Com a adi o de uma quarta regra evas o Johnson04 faz com que o agente evite colis o com objectos Uma alternativa para evitar colis es a cria o de flow fields cada objecto gera sua volta um campo de fluxos para que o agente mude de direc o evitando assim a colis o com os objectos sejam eles din micos ou est ticos Alexander06 O problema com o flocking que demasiado pesado computacionalmente devido verifica o das tr s regras para todos os agentes devido a isto normalmente usado para simular dezenas de agentes Uma alternativa ao flocking o swarming que apenas aplica duas das tr s regras referenciadas no flocking o alinhamento e a coes o orientado a simula o de centenas de agentes e origina num comportamento mais org nico pode se ser usado para simular o comportamento de baratas ratos ou aranhas Scutt02 As forma es normalmente servem para que um grupo de elementos consiga obter vantagens quando ataca ou bate em retirada sobre um inimigo Em alguns videojogos apenas s o criadas para obter a imers o requerida pelo jogo ou mesmo s porque parece bonito Dawson02 15 As formag es mais comuns s o em Linha em Coluna Flanco direito Flanco esquerdo Cai
7. Para a ordena o existem crit rios de resolu o de conflitos Note que a mesma regra pode dar origem a v rias activa es As regras s o express es se ent o ou condi o ac o e podem aparecer por qualquer ordem no programa Sempre que a condi o da regra satisfeita pela base de factos a regra activada e se for seleccionada a sua parte direita executada diz se tamb m que a regra disparada Existe um ciclo de activa o selec o disparo de regras a execu o do programa at que mais nenhuma regra seja activada O estado da base de factos antes e ap s o fim do disparo das regras corresponder ao input e ao output do programa respectivamente Sistemas base de regras possuem qualidades que os tornam atractivos tais como a inteligibilidade das regras que tem a ver com o seu aspecto declarativo a sua modularidade e consequente facilidade de adi o e remo o A raz o para a sua n o adop o prende se com a diferen a em rela o execu o sequencial do c digo imperativo tradicional o controlo do disparo das regras mais imprevis vel e dif cil Mas devido sua singularidade necess rio que as plataformas de desenvolvimento que optem por esta linguagem possuam funcionalidades que tornem acess vel o acompanhamento da execu o dos scripts baseados em regras promovendo o debugging das regras Para isso necess rio ser capaz de parar o jogo e mandar executar passo a passo cada ciclo de a
8. f2 r1 rule r1 f2 f3 r2 Rule Base Agenda Execution Engine f1 f2 rl Figura 9 Arquitectura t pica de um sistema baseado em regras Friedman03 Uma abordagem com base em regras comparada com a programa o imperativa traz muitas vantagens e O sistema de produ o m quina de infer ncia e motor de execu o automaticamente verifica e activa as regras por esse motivo o programador apenas escreve as regras mas n o o c digo que as invoca as verifica ou as executa e N o necess rio escrever ciclos no c digo em m ltiplas inst ncias e O c digo das regras separado do restante c digo facilitando a leitura a altera o o teste e a reutilizan o e O racioc nio para as regras mais f cil e natural que o racioc nio para algoritmos com v rios ciclos e condi es e Regras individuais podem ser inseridas alteradas e removidas sem que seja necess rio mudar a l gica de todo o script 26 As regras podem ser comparadas com as declarag es if then das linguagens tradicionais de programa o e s o compostas por uma parte esquerda if tamb m consireda com a parte com a condi o e uma parte direita then parte da ac o Os sistemas base de regras j foram utilizados para implementar comportamentos em videojogos como o RC Wright00a Wright00b que facilita o desenho de comportamentos para a consola de videojogos PlayStation 2 e o SOAR Lent99 que serve como motor
9. o agente ir encontrar um caminho para atingir o waypoint seleccionado e se existir uma traject ria poss vel para o objectivo ele ir deslocar se para l 5 Prepara o manual de cen rios de teste que seja de utiliza o f cil dando total controlo sobre os agentes para que o utilizador n o tenha que esperar para que uma situa o pretendida aconte a evitando assim a codifica o extra para que os agentes configurem a cena pretendida Em tempo real o utilizador pode interromper todos os agentes e atrav s de uma interface adequada pode coloc los numa dada galeria 6 Capacidade de realizar v rias experi ncias e recolha de dados estat sticos para avaliar e analisar v rios comportamentos que podem ser assim comparados Ir se ilustrar e avaliar a DEVELOP FPS para criar testar e comparar tr s comportamentos individuais do mais simples ao mais complexo Finalmente vai ser descrito o desenvolvimento de um comportamento de equipa formada por 4 NPCs que s o comandados por um deles e que se movimentam num tipo de forma o em forma de diamante que servir de exemplo como aplica o da ferramenta de desenvolvimento em desafios actuais 1 4 Estrutura do documento Este documento est organizado da seguinte forma e Cap tulo 2 Trabalho relacionado Neste cap tulo s o contextualizadas algumas das t cnicas de intelig ncia artificial aplicadas em videojogos Tamb m se apresentam algumas plataforma
10. o s o ideais para escrever c digo baseados em regras para os comportamentos dos agentes virtuais O c digo da componente de intelig ncia artificial num videojogo em contraste com o outro c digo do videojogo tende a ser rico em condi es precisando de muitos testes para a transi o de estados so agente virtual A programa o com base em regras descreve o que o computador deve fazer mas omite a maioria das instru es de como se faz Friedman03 e ao contr rio de uma linguagem de programa o convencional n o necess rio declarar vari veis criar ciclos ou sub rotinas apenas necess rio criar cl usulas condi o ac o conhecidas por regras 25 z Um sistema baseado em regras normalmente composto por uma mem ria de trabalho considerada com a base de dados dos factos um conjunto de regras que contem todas as regras definidas pelo utilizador o motor ou m quina de infer ncia que composto por um identificador de padr es respons vel por identificar quais as regras que podem ser executadas no ciclo corrente e uma agenda que cont m uma lista de todas as regras poss veis de serem activadas cujo primeiro elemento da lista a regra que activada resultado do tratamento de conflitos e por fim um motor de execu o que respons vel por executar o que est definido na regra Vogt08 Ver figura 9 Inference Engine fact f1 fact f2 fact f3 Working Memory rule r3 rule r2 f1
11. respons vel por decidir o que que a unidade dever fazer perante certas situa es Consequentemente o l der ter que comunicar equipa instru es para que esta se movimente utilizando a forma o em diamante 3 3 1 Sistema de comunica o O sistema de comunica o oferecido pelo Unreal Tournament 2004 tem dois canais um canal global chat que permite que cada jogador presente na arena cen rio possa enviar mensagens de texto para todos os jogadores presentes na arena e um canal team chat que permite o envio de mensagens entre todos os elementos da mesma equipa Este sistema n o permite enviar mensagens privadas 2 Um comando na metodologia militar Wikil0 considerado como uma organiza o de unidades em que apenas uma o comandante ou oficial respons vel por toda a unidade 46 Recorrendo ao sistema de mensagens s para equipas do Unreal Tournament 2004 foi criado um formato de mensagem para que os bots possam enviar e interpretar as mensagens idDoTipoDeMensagem idDoBotQueEnviou idDoBotDestinat rio conte do A raz o pela qual este tipo de formato de mensagem foi adoptado a seguinte o par metro idDoTipoDeMensagem til para filtrar qual o tipo de conte do que o bot enviou para os restantes Assim sempre que um bot recebe uma mensagem sabe que informa o que estar na sec o conte do o que torna o tratamento desse mesmo conte do mais f cil o par metro id
12. v o inimigo o pr ximo passo ser retomar a l gica do bot e verificar se a regra respons vel por disparar contra o inimigo foi activada bastando para isso retomar a l gica do bot e observar monitorizando o estado do Jess se a regra foi activada Estes testes servem para identificar alguns problemas comuns como o comportamento esperado n o o escolhido ou o comportamento escolhido n o executa devidamente o que lhe foi instru do Continuando com o exemplo se ap s o resumo da l gica do bot observarmos que o comportamento disparado n o era o previsto podemos interpretar este resultado de duas maneiras ou deriva de um problema de sintaxe no script que pode ser facilmente detectado executando na linha de comandos da consola individual o comando rules que mostra todas as regras contidas no sistema e se verificarmos que a regra n o est presente poder ser devido falta de um par ntese algures na regra bug 42 sint ctico ou deriva de um problema na definic o das condic es da regra Este problema tamb m facilmente identific vel j que ao interrompermos novamente a l gica do hunter podemos verificar se na lista de factos presente na sua consola individual est o os factos que satisfazem as condi es para que a regra dispare Se n o estiverem porque foram mal inseridos pela l gica do hunter Quando observamos que a regra pretendida foi disparada e esta n o executa correctamente o compo
13. 2004 Unreal tournament 2004 UT2004 um jogo multijogador para computador do g nero FPS First Person Shooter Wikipediall onde v rios jogadores competem entre si em v rias arenas A figura 7 ilustra o que um jogador humano pode observar enquanto joga Figura 7 Perspectiva que o jogador humano tem sobre o ambiente proporcionado pelo videojogo Unreal Tournament 2004 Este g nero de videojogo tem dois tipos de jogador jogador humano ou virtual tamb m conhecido por bot O jogador colocado em v rios cen rios ou ambientes em tr s dimens es para explorar de forma a ir ao encontro do objectivo proposto Em particular este videojogo proporciona v rios objectivos para que o jogador possa 23 progredir na hist ria alguns destes objectivos s o Deathmatch Team Deathmatch e Capture the Flag e Deathmatch O objectivo chegar a um n mero determinado de inimigos para aniquilar ou mesmo num determinado espa o de tempo eliminar o m ximo de inimigos para que o n mero de inimigos aniquilados seja superior aos do advers rio e Team Deathmatch O mesmo que o deathmatch s que os inimigos mortos por cada jogador da mesma equipa s o somados e resulta no n mero de pontos que a equipa tem e Capture the flag O objectivo aqui capturar a bandeira da base da equipa inimiga e retornar a bandeira base da pr pria equipa perfazendo um n mero estipulado de bandeiras capturadas ou fazer um n mero m ximo de bande
14. 2D individual O mapa al m de mostrar a posi o do bot os waypoints o caminho que o bot tomou e a posi o das armas dispon veis no cen rio representados por c rculos de diferentes cores como se pode observar na figura 16 tamb m respons vel por disponibilizar ao utilizador uma outra fun o de controlo isto ao clicar em qualquer waypoint vis vel no mapa o bot ir calcular o caminho da posi o onde se encontra ao waypoint escolhido e se houver um caminho poss vel o bot ir deslocar se at ao mesmo 31 Labels Waypoints Player Path Taken Destination o o A E E E E o o e lt q Waypoint o o oS A o do o o So o i o e o a o o e e e o 5 bad o a z o a o a a o o ee e ee a o a es o o Se seo jm j Figura 16 Mapa 2D com vista a rea para os waypoints armas e posi o do bot no cen rio No topo temos a legenda sobre as cores contidas no mapa Com apenas as funcionalidades descritas sobre monitoriza o Informa o intr nseca sensorial e do Jess e controlo Bot es de controlo Controlo manual e Mapa 2D podemos ent o facilitar a cria o de cen rios de teste de modo a promover o debugging de comportamentos Ao inv s do utilizador esperar para que um comportamento seja despoletado para verificar se este cont m erros poder acelerar o processo com a cria o de cen rios de teste Por exemplo se quisermos testar um cen rio em que sempre
15. Behavior with Human Concepts In Rabin S ed AlGame Programming Wisdom 2 Charles RiverMedia 189 197 Orkin04c Orkin J 2004 Simple Techniques for Coordinated Behavior In Rabin S ed AlGame ProgrammingWisdom 2 Charles RiverMedia 199 206 59 PacmanCompetitionl 1 Ms Pac Man Competition http dces essex ac uk staff sml pacman PacManContest html Last visited 07 2011 Panda3D10 Official Panda3D website http www panda3d org Last visited 06 2011 Panda3D11 Lang Christoph Panda3D 1 7 Game Developer s Cookbook Packt Publishing 2011 Pinter02 Pinter M 2002 Realistic Turning between Waypoints In Rabin S ed AlGame ProgrammingWisdom Charles RiverMedia 186 192 Pittman05 Pittman D Practical Development of Goal Oriented Action Planning Al Master s thesis Faculty of The Guildhall at Southern Methodist University 2005 Pogamut09 Pogamut v2 https artemis ms mff cuni cz pogamut tiki index php page homepage Last visited 05 2011 Pogamut11 Official Pogamut website http diana ms mff cuni cz main tiki index php Last visited 06 2011 Reed04 Reed C and Geisler B 2004 Jumping Climbing and Tactical Reasoning How to Get More Out of a Navigation System In Rabin S ed AIGame ProgrammingWisdom 2 Charles RiverMedia 141 150 Reynolds02 Reynolds J 2002 Tactical Team AI Using a Command Hierarchy In Rabin S ed AlGame ProgrammingWisdom Charles RiverMedia 260 271
16. de infer ncia para agentes inteligentes para os videojogos Descent 3 e Quake II Contudo geralmente um programa base de regras consome mais recursos tanto em tempo de processamento como em espa o comparado com as linguagens imperativas convencionais Jess O Jess linguagem de programa o baseada em regras totalmente escrito em JAVA apresenta uma arquitectura id ntica da figura 9 composto essencialmente por factos considerado o conhecimento que damos como adquirido regras cl usula composta por uma condi o seguida de uma ac o fun es compostas por um conjunto de instru es e m dulos que agrupam um conjunto de regras permitindo a modularidade Em termos de efici ncia o Jess usa o algoritmo rete para indetificar os padr es e foi provado efeciente na selec o das regras Follek03 2 3 4 AGLIPS A AGLIPS Moniz03 uma ferramenta para o desenvolvimento de grupos de rob s baseados em comportamentos e que foi uma das inspira es para a DEVELOP FPS A AGLIPS baseia se em dois componentes principais a plataforma multiagente AGLETS Lange98 e o ambiente de simula es rob ticas Player Stage VaughamOl A AGLIPS liga estes dois ambientes heterog neos numa nica plataforma fornecendo uma ferramenta para a constru o de agentes e um ambiente para os experimentar e avaliar Uma das funcionalidades da AGLIPS fornecer ao utilizador monitoriza o e controlo em tempo real sobre cada rob indi
17. de todos os bots atrav s dos comandos da consola global verificamos o estado de cada bot naquele instante Acedendo s suas consolas individuais para monitorizar o estado do Jess averigu mos que a regra respons vel pela movimenta o em diamante era disparada restringindo assim o problema s fun es presentes na parte direita ac o da regra Esta regra respons vel por calcular o destino do bot e aplicar a movimenta o Procedendo execu o de ambas as fun es na mini esta o de controlo detect mos que os c lculos que definiam o destino estavam mal implementados Sem a DEVELOP FPS para a detec o do problema com os m todos tradicionais ter amos levado bastante mais tempo a identificar o erro sendo este tempo til na melhoria dos comportamentos 53 54 Capitulo 4 4 1 Conclus o Neste documento foi apresentada uma arquitectura gen rica que suporta o desenvolvimento de ferramentas que assistem no desenho debug e execu o de non player characters NPCs ou bots escritos numa linguagem base de regras Jess em ambientes de um videojogo do g nero FPS Unreal Tournament 2004 A DEVELOP FPS fornece diversas funcionalidades para o debugging de scripts declarativos baseados em regras para os videojogos FPS nomeadamente a facilidade de cria o e de configura o de cen rios de teste e a capacidade de interromper e retomar um jogo monitorizando e controlando os jogadores em tempo real Ofere
18. desafios para que este se mantenha interessado e motivado para experimentar novas experi ncias Estes desafios normalmente passam pela interac o do jogador com os NPCs Non Player Characters sejam eles de combate de coopera o ou mesmo de para troca de informa o Com a evolu o dos computadores existe oportunidade e recursos para investigar e aplicar novas t cnicas de intelig ncia artificial no desenvolvimento de comportamentos para os NPCs tornando os mais complexos Para que isto seja poss vel necess rio munir os investigadores com ferramentas profissionais com capacidade para construir testar e validar os comportamentos desenvolvidos Este trabalho apresenta uma arquitectura gen rica para ferramentas de desenvolvimento de comportamentos escritos em Jess para personagens virtuais inseridas num ambiente de videojogo do g nero First Person Shooter Unreal Torunament 2004 A ferramenta desenvolvida com base nesta arquitectura permite realizar o debugging e a avalia o de comportamentos individuais ou cooperativos fornecendo capacidades para preparar cen rios de teste monitorizar e controlar todos os intervenientes realizar experi ncias testar e comparar os comportamentos Palavras chave First Person Shooter scripts base de regras ferramentas de desenvolvimento intelig ncia artificial 11 Abstract Video games are constantly evolving providing new challenges for the player to remain interested and
19. http www fmh utl pt Cmotricidade dm textosjb texto_7 pdf Last visited 07 2011 Brom09 Brom C B da M Gemrot J Kadlec R Plch T Emohawk Searching for a Good Emergent Narrative In Iurgel I A Zagalo N Petta P eds ICIDS 2009 LNCS vol 5915 pp 86 91 Springer Heidelberg 2009 Burkert Burkert O Brom C Kadlec R Lukavsky J Timing in Episodic Memory Virtual Characters in Action In Proceedings of AISB workshop Remembering Who We Are Human Memory For Artificial Agents Leicester UK to appear 57 Cavazza00 Cavazza M Al in computer games Survey and perspective Virtual Reality 5 4 223 235 2000 Dawson02 Dawson C 2002 Formations In Rabin S ed AlGame ProgrammingWisdom Charles RiverMedia 272 281 Dickheiser04 Dickheiser M 2004 Inexpensive Precomputed Pathfiding Using a Navigation Set Hierarchy In Rabin S ed AlGame ProgrammingWisdom 2 Charles RiverMedia 103 113 Follek03 Follek R A Rule Based System For Playing Poker Master s thesis School of Computer Science and Information Systems at Pace University 2003 Friedman03 Friedman Hill E 2003 JESS in action Manning Publications Gemrot11 Gemrot J Brom C and Plch T A Periphery of Pogamut From Bots to Agents and Back Again F Dignum Ed Agents for Games and Simulations IL LNAI 6525 pp 1 18 2011 Hancock02 Hancock J 2002 Navigation Doors Elevators Ledges and Oth
20. intelig ncia artificial pode tornar o jogo mais interessante e atraente AlGames02 logo podendo ser em parte respons vel pelo sucesso de um videojogo Na verdade j contribuiu para o sucesso do Pacman com uma componente de intelig ncia artificial simples devido aos recursos dispon veis na altura at ao Black and White onde emprega t cnicas avan adas como rvores de decis o combinadas com redes neuronais AiGameDev07 O Pacman ainda hoje utilizado para competi es PacmanCompetitionll e as inova es introduzidas pelo Black and White s o reconhecidas nas comunidades de intelig ncia artificial AiGameDevO07 Com a evolu o dos videojogos o jogador mais experiente j n o aceita comportamentos como os existentes no space invaders com padr es facilmente identific veis Ele espera que um videojogo consiga proporcionar experi ncias interessantes diferentes e desafiantes 1 1 Motiva o As plataformas de desenvolvimento orientadas para os videojogos fornecem novos espa os para desenvolver e aplicar novas t cnicas de intelig ncia artificial nos jogos 1 comerciais Os Toolkits de desenvolvimento de jogos est o a come ar a fornecer suporte no desenho de comportamentos para os non player characters NPCs principalmente atrav s de linguagens protegidas por direitos autorais UnrealScript no UnrealEngine UDK11 open source ou linguagens gratuitas Lua no World of Warcraft WoW10 ou bibliotecas d
21. mais ou menos com 2 segundos de avan o e movem se para essa posi o mais um deslocamento definido Usam a forma o em cunha para reas abertas cunha mais apertada para reas limitadas e coluna staggered para estradas A melhor escolha de uma ac o para uma equipa executar pode ser baseada nas observa es dos elementos da equipa nos dados hist ricos e na experi ncia portanto necess rio a cria o de uma imagem da situa o para fazer manobras planeadas 19 Em alguns casos usa se Fuzzy logic para calcular o fitness da manobra Na tabela 2 apresenta se um exemplo de uma fun o de c lculo do fitness Tabela 2 Exemplo de uma fun o para calcular o fitness de uma manobra Fitness pullback weaker line of fire ratio N weaker position quality N mediumshorter range H exemplos de t cnicas em que o resultado das manobras bem sucedidas guardado aprendido para apoio na escolha de futuras manobras Sterren02b Podem tamb m utilizar se comandos hier rquicos para simular uma interac o mais cred vel e semelhante s dos humanos os postos mais altos na hierarquia d o ordens hierarquia abaixo e os postos mais baixos transmitem informa o hierarquia superior Reynolds02 Existem t cnicas simples que facilitam os comportamentos coordenados Para o caso de querermos proporcionar comportamentos diferentes em dois ou mais agentes com o mesmo objecto podemos reservar caminhos j
22. motivated to try new experiences These challenges usually involve player interaction with NPCs Non Player Characters they fight cooperate to overcome obstacles or communicate with each other to enrich the storyline With the growing resources available with the evolution of computers there is an increasing interest in investigating and applying new techniques of artificial intelligence in the development of ever more complex behaviors for NPCs To make this possible it is necessary to equip researchers with professional tools to build test and validate the behaviors developed This paper presents a generic architecture development tool to achieve a NPC behavior written in Jess inserted in an environment of the video game First Person Shooter genre Unreal torunament 2004 The tool developed based on this architecture allows debugging and evaluation of individual or cooperative behaviors providing capabilities to prepare test scenarios monitor and control all NPCs conduct experiments test and compares the behaviors Keywords First Person Shooter Rule based Scripts development software tool artificial intelligence 111 1v Conte do O Hs see 1 Ded MONA O e 1 1 2 lo 5 E 5 14 Estruturado documentos us ass nad 7 Capo sr Seip a ade i Ds ial aah ar tie ee al 9 2 1 T cnicas usadas em intelig ncia artificial para videojogos 9 2 1 1 Representa o do meio ambiente Anne aa ees 10 242 Mov
23. o jogo Unreal Tournament 2004 e que considerada uma das melhores plataformas de desenvolvimento para videojogos IGNO9 Na DEVELOP FPS os scripts que definem os comportamentos s o escritos na linguagem de programa o baseada em regras Jess Friedman03 A ferramenta fornece ao programador um conjunto de funcionalidades 1 Monitoriza o do estado do jogador em tempo real Para que o utilizador possa acompanhar tudo o que o NPC estiver a percepcionar por exemplo se est a ver o inimigo 2 Monitoriza o do estado do Jess Como os comportamentos s o elaborados em Jess um mecanismo que permita monitorizar o seu estado importante para que o utilizador possa acompanhar o conte do da base de factos a agenda lista ordenada de activa es e as regras que s o disparadas 3 Possibilidade de interromper a execu o da l gica dos agentes sejam todos ou apenas um assim o utilizador pode interromper a experi ncia para monitorizar e controlar qualquer agente interveniente na experi ncia Atrav s de uma consola poss vel enviar comandos a qualquer dos agentes de modo a fazer lhe perguntas sobre o estado corrente do jogo visto da sua perspectiva e alterar o seu comportamento 4 Cria o de mapas 2D interactivos com visualiza o dos waypoints e os Jogadores que permitem ter uma panor mica a rea o que muito til para saber como se disp em os jogadores Clicando num mapa particular a um agente
24. para constru o de comportamentos s o referidas as caracter sticas da arquitectura adoptada S o apresentados tamb m dois cen rios criados para o videojogo Unreal Tournament 2004 bem como o intuito das experi ncias a realizar nestes mesmos cen rios por exemplo pontos de estrangulamento submetidos ao movimento das equipas Por fim ser apresentada a constru o de um comportamento mais concretamente a forma o em diamante com quatro elementos como um exemplo da aplica o da ferramenta para o desenvolvimento de comportamentos colectivos Dado que o videojogo do g nero FPS os NPCs s o considerados bots doravante qualquer refer ncia a bot pode ser considerada como NPC ou agente virtual 3 1 DEVELOP FPS Ferramenta de apoio constru o de comportamentos inteligentes A ferramenta DEVELOP FPS uma evolu o da arquitectura AGLIPS totalmente escrita em JAVA Esta ferramenta desenhada especificamente para executar scripts escritos em Jess no videojogo Unreal Tournament 2004 oferecendo funcionalidades que permitem ao utilizador fazer debug e testar os seus comportamentos composta por duas componentes principais a consola individual e a consola global que possuem algumas funcionalidades inspiradas em programas como o NetLogo NetLogoll TurtleKit09 e em plataformas de desenvolvimento de videojogos que foram descritas anteriormente na sec o 2 2 ver tabela 5 29 Tabela 5 Funcionalidades DEVELOP FPS
25. que um bot v um inimigo come a a disparar ao interrompermos a l gica do bot Bot es de controlo podemos conduzi lo para perto de um inimigo Controlo manual e quando o seu estado sensorial detectar um inimigo Monitoriza o sensorial poderemos observar se o comportamento escolhido Monitoriza o do Jess retomando a l gica far com que dispare contra o inimigo Assim com as funcionalidades presentes na consola individual podemos identificar de uma forma mais r pida se o comportamento constru do tem erros 38 Mini estac o de controlo A mini esta o proporciona o controlo e monitoriza o do bot atrav s de fun es definidas pelo utilizador e est dispon vel atrav s de uma linha de comandos e uma janela para o output presentes na consola individual O utilizador tem a possibilidade de executar qualquer comando fun o em Jess Estes comandos ou fun es podem realizar um comportamento uma mudan a de estado do bot ou at mesmo a monitoriza o de vari veis Esta componente importante para explorar e fazer debugging ao script criado sendo tamb m bastante til para preparar situa es de teste O utilizador pode ainda criar fun es em tempo real e execut las e como o Jess concretizado em JAVA o utilizador tem acesso completo API do JAVA Como exemplo imaginemos que queremos testar uma regra criada que disparada sempre que um bot encontra um inimigo e como resultado o bot come a a dispar
26. Dif cil implementa o O movimento do agente considerado um factor importante da intelig ncia artificial pois um dos comportamentos essenciais para qualquer agente a forma como ele se desloca e para que n o se pare a irreal necess rio criar um movimento adequado a fisionomia do agente 14 Movimento individual O movimento cinem tico Millington06a usa a posi o e a orienta o do agente para criar movimentos simples permitindo que a velocidade mude instantaneamente e que o agente se desloque do ponto A para o ponto B de uma forma constante mas no mundo real a lei de Newton n o permite que a velocidade de um corpo mude instantaneamente esta viola o leva a que como resultado final se produzam movimentos estranhos das personagens J os movimentos direccionados steering behaviors Millington06a adicionam acelera o e rota o ao agente que proporcionam movimentos mais realistas A acelera o permite que a velocidade entre dois pontos v alterando consoante a partida e a chegada Movimento em grupo Al m do movimento cinem tico e direccionado temos movimentos mais complexos como o flocking por Craig Reynolds Reynolds87 cujo objectivo simular o movimento de v rios agentes ao mesmo tempo e baseado em tr s regras 1 Separa o Faz com os agentes evitem colidir com outros agentes 2 Alinhamento Direcciona o agentes baseado nas direc es dos outros agentes 3 Coes o
27. DoBotQueEnviou utilizado para identificar quem enviou a mensagem sendo til para quando algum elemento envia uma mensagem ao l der e este precise de responder ao mesmo o par metro idDoBotDestinat rio serve para criar um sistema de mensagens privadas pois s o bot a quem a mensagem se destina a interpreta o conte do representa qualquer informa o que seja necess ria para que o bot ou bots possam recolher informa o para executar uma ac o Quando referimos bots porque este sistema tamb m permite fazer divulga o a todos os bots da mesma equipa bastando simplesmente nomear um id para o idDoBotDestinat rio em que todos possam interpretar a mensagem Os pontos e v rgulas servem como caracter especial de divis o dos componentes descritos da mensagem Com o sistema de comunica o elaborado o l der pode comunicar com a equipa para que esta realize instru es ou vice versa 3 3 2 Movimenta o em equipa Para que a equipa se possa movimentar em forma o diamante aplicamos a movimenta o cinem tica a todos os elementos excepto o l der A movimenta o do l der neste projecto incerta isto o l der escolhe aleatoriamente um waypoint calcula com o algoritmo A o caminho at ao destino e executa o Os restantes elementos da equipa para executar uma movimenta o cinem tica de forma a realizar a forma o em diamante necessitam da rota o e da orienta o do l der Como s o l de
28. Name gt hunter clp lt fileName gt lt Se come am ou n o pausados til para preparar cen rios de teste gt lt pause gt true lt pause gt lt bot gt lt bot gt lt name gt Urbano lt name gt lt team gt 0 lt team gt lt fileName gt dodgeBehavior clp lt fileName gt lt pause gt true lt pause gt lt name gt CTT lt name gt lt team gt 1 lt team gt lt fileName gt dummy clp lt fileName gt lt pause gt false lt pause gt lt bot gt lt experiment gt 66 o Funcionalidades da consola global Clients Connected a 21 Waiting for more clients 22 bp O Time Experiments Broadcast to agents 1 3 Remaining 44 Stop Experiment Resume All Pause All d c Figura 25 Anexo Consola global detalhada Lista de Ids dos bots contidos na experi ncia Serve para escolher o bot pretendido e d acesso sua consola individual Mapa com vista a rea do cen rio com os bots a cor e os waypoints a cinzento Bot es para resumir e pausar a l gica de todos os agentes Monitoriza o do decorrer da experi ncia 1 3 N mero da itera o corrente N mero de itera es Remaining 44 Tempo que falta para terminar a itera o corrente em segundos e bot o Stop Experiment para terminar a qualquer altura a experi ncia 67 Funcionalidades consola individual Facts Activations D
29. Os sistemas baseados em regras Friedman03 s o frequentemente utilizados na Intelig ncia Artificial e j foram aplicados em v rios videojogos Cavazza00 como o Civilization Call to power e o Rainbow Six Actualmente a maior parte do c digo respons vel pela intelig ncia artificial de um videojogo consiste na implementa o de regras para os comportamentos para os actores intervenientes sejam eles carros de corrida jogadores de futebol inimigos e por a adiante A implementa o de regras dos comportamentos para os actores agentes ou personagens virtuais requerido por todos os videojogos e uma tarefa habitual para os programadores da componente de intelig ncia artificial As regras s o para a intelig ncia artificial do videojogo como os pol gonos s o para os gr ficos Wright00 1 Imers o considerada como sendo a capacidade de suspender a descren a em rela o ao videojogo levando o jogador a sentir se completamente envolvido no ambiente produzido Woyach08 3 As linguagens de programag o baseadas em regras s o muito diferentes das linguagens de programag o imperativas convencionais Existem apenas factos input regras o programa e o interpretador de regras este respon vel por procurar seleccionar e activar as regra com base no input As regras activadas activa es s o colocadas numa estrutura de dados especial a agenda aparecendo ordenadas a primeira activa o da agenda ser executada
30. UNIVERSIDADE DE LISBOA Faculdade de Ci ncias Departamento de Inform tica DEVELOP FPS Ferramenta de desenvolvimento de comportamentos baseados em regras para personagens virtuais Bruno Filipe Martins Correia MESTRADO EM ENGENHARIA INFORM TICA Especializa o em Sistemas de Informa o 2011 UNIVERSIDADE DE LISBOA Faculdade de Ci ncias Departamento de Inform tica DEVELOP FPS Ferramenta de desenvolvimento de comportamentos baseados em regras para personagens virtuais Bruno Filipe Martins Correia DISSERTA O Trabalho orientado pelo Prof Doutor Luis Manuel Ferreira Fernandes Moniz e co orientado por Paulo Jorge Cunha Vaz Dias Urbano MESTRADO EM ENGENHARIA INFORM TICA Especializa o em Sistemas de Informa o 2011 Agradecimentos Devo profunda gratid o pela conclus o deste projecto Faculdade de Ci ncias da Universidade de Lisboa em especial ao Professor Doutor Luis Moniz e ao Professor Doutor Paulo Urbano pela sua orienta o e conhecimento para o sucesso deste projecto A todos os meus colegas de laborat rio LabMAg pelo suporte incondicional e camaradagem Por ltimo mas n o o menos importante aos meus pais e irm o pelo seu amor intermin vel e suporte tanto emocional como monet rio e minha namorada pela sua compreens o e dedica o A todos os entusiastas pela intelig ncia artificial Resumo Os videojogos n o param de evoluir fornecendo ao jogador novos
31. a Aglets Peachpit Press 1998 Lent99 Lent M Laird J Buckman J Hartford J Houchard S Steinkraus K Tedrake R Intelligent Agents in Computer Games 1999 Lid n02 Lid n L 2002 Strategic and Tactical Reasoning with Waypoints In Rabin S ed AlGame ProgrammingWisdom Charles RiverMedia 211 220 McLean04 McLean A 2004 Hunting Down the Player in a Convincing Manner In Rabin S ed AlGame ProgrammingWisdom 2 Charles RiverMedia 151 159 Millington06a Millington I 2006 Artificial Intelligence for Games Morgan Kaufmann 51 57 Millington06b Millington I 2006 Artificial Intelligence for Games Morgan Kaufmann 57 99 Millington06c Millington I 2006 Artificial Intelligence for Games Morgan Kaufmann 318 343 Moniz03 Moniz L Urbano P and Helder C AGLIPS An educational environment to construct behaviour based robots In Proc of the International Conference on Computational Intelligence for Modelling Control and Automation CIMCA 2003 MonoDevelop10 MonoDevelop documentation http unity3d com support documentation Manual HOWTO MonoDevelop html Last visited 07 2011 NetLogo11 Official NetLogo website http ccl northwestern edu netlogo Last visited 07 2011 Orkin04a Orkin J 2004 Applying Goal Oriented Action Planning to Games In Rabin S ed AlGame ProgrammingWisdom 2 Charles RiverMedia 217 227 Orkin04b Orkin J 2004 Constraining Autonomous Character
32. a ac o se torne inv lida gera um novo plano nessa camada e n o necess rio que todo o plano seja cancelado Wallace04 Pathfiding Existe v rios algoritmos de pesquisa em profundidade em largura Dijkstra e o A que servem para obter um caminho entre dois pontos evitando colis es com os objectos do cen rio O A devido sua fun o heur stica consegue obter uma excelente performance para encontrar caminhos ptimos e por este mesmo motivo o algoritmo mais utilizado na ind stria de videojogos Tozour04 Hart72 No entanto como j foi dito antes a performance da pesquisa afectada com a escolha da estrutura de dados para a representa o do mundo virtual por isso muitas vezes a escolha do algoritmo de pesquisa depende da estrutura de dados aplicada Al m destes algoritmos de pesquisa em cima referenciados existem alternativas como a cria o de tabelas de pesquisa Dickheiser04 Sterren04 em que o acesso aos dados torna se directo consequentemente mais r pido Tamb m existem alternativas ao A que inv s de procurar o melhor caminho em tempo de execu o usam informa o pr processada para calcular o melhor Surasmith02 An lise t ctica Com a informa o contida nos waypoints normalmente cada waypoint cont m a informa o dos waypoints vizinhos vis veis e com a informa o relativa posi o do inimigo normalmente obtida apenas quando o agente o v poss vel criar planos para
33. a parte direita os bot es respons veis pelo controlo manual do bot na parte esquerda e a representa o do estado da m quina de infer ncia do Jess na parte superior Bot es de controlo Os bot es de controlo permitem que o utilizador controle o bot de uma forma simples e r pida Estes apresentam um conjunto de funcionalidades que iremos detalhar na ordem em que os bot es s o apresentados da esquerda para a direita na figura 13 LA kOJ ORI Figura 13 Bot es de controlo Kill agent O bot eliminado e desaparece do jogo Esta ac o tilse quisermos por exemplo testar como uma equipa reage se o l der for eliminado Reload Logic Este bot o tem como finalidade alterar o estado do Jess com o script previamente modificado pelo utilizador Play Pause A execu o do bot pode ser interrompida e retomada Desta maneira pode se interromper a l gica do bot para poder monitoriz lo com mais detalhe ou mesmo control lo num determinado instante Step Executa uma unidade de comportamento Promove o acompanhamento da sequ ncia de comportamentos que o bot vai executando ao longo do videojogo Sobre uma unidade de comportamento ver sec o 3 1 2 Show Hide Agent State A informa o sobre o estado do bot pode ser omitida ou revelada 35 Show Hide Jess State A informa o sobre o estado da m quina de infer ncia do Jess pode ser omitida ou revelada Show Hide Map Mostra ou omite o mapa Info
34. a promover o estrangulamento 44 Criamos um novo cen rio ver figura 18 para que os bots fossem iniciados uns perto dos outros de modo a testar mais rapidamente alguns comportamentos mais simples tal como os de ataque Vista de topo lt lt lt Figura 18 Mapa amplo com poucos obst culos para realizar testes mais simples 3 3 Comportamento em equipa Na constru o do comportamento em equipa a movimenta o deve ser o primeiro comportamento a ser elaborado pois servir como base para comportamentos mais complexos No movimento em equipa opt mos por realizar uma forma o entre 4 elementos da mesma equipa devido aos bots do Unreal Tournament 2004 serem limitados em certos aspectos como por exemplo terem um campo de vis o de 180 graus e por isto n o conseguem detectar inimigos que se encontrem nas suas costas De forma reduzir esta limita o a equipa desloca se em forma o diamante ver figura 19 de modo a que cubram todos os ngulos de vis o para uma completa detec o do inimigo Figura 19 Forma o em diamante para quatro elementos Decidimos que as equipas deveriam ser compostas por quatro elementos para facilitar a sua programa o 45 Uma equipa de bots pode optar por duas abordagens para que possam andar em forma o ou nomeado um l der dos quatro elementos e os restantes tr s movem se a partir da posi o e orienta o do mesmo inspirado no jogo Company of Heroes ou util
35. ados para serem colocados em locais ideais no mundo do jogo Podemos considerar os grafos de cantos como um exemplo autom tico deste tipo de grafo Para obter uma melhor qualidade dos caminhos necess rio ter mais n s pontos inseridos numa dada rea No entanto um maior n mero de pontos exige naturalmente mais espa o para o armazenamento da informa o e mais tempo necess rio para o c lculo dos caminhos 11 Figura 3 Visualizac o de grafos de pontos e Grafos de pontos circulares Circle Based Waypoints graphs s o uma varia o dos gr ficos de pontos s mas em que gerada uma circunfer ncia ver Figura 4 toda ela naveg vel volta de cada ponto fornecendo assim mais informa o sobre o espa o naveg vel para al m de um mero ponto Figura 4 Visualiza o de grafos de pontos circulares 12 e Volumes de preenchimento de espa os Space filling volumes s o como os gr ficos de pontos circulares s que em vez de usarem circunfer ncias usam rect ngulos e Malhas de navega o Navigation Mesh ou NavMesh Snook00 White02 s o representa es em que se cobre as superf cies naveg veis do mundo virtual com pol gonos convexos ver Figura 5 Os pol gonos convexos permitem garantir que cada agente se possa movimentar em qualquer ponto contido nesse pol gono Assim permite procurar caminhos ptimos que n o se limitem apenas navega o entre pontos mas a todo o espa o dos pol go
36. ados os c lculos os elementos da equipa mant m uma forma o em diamante e o movimento realizado quando o l der se move ver tabela 11 Tabela 11 C digo Jess executado quando um elemento da equipa recebe uma mensagem do l der para acompanhar o movimento da forma o defmodule PERCEPTION defrule perception lt perception x lt bot ESTE BOT um def template contendo todas as v ri veis de estado do bot gt retract f SE RECEBE UMA MENSAGEM DO TIPO 9 Mover em formac o if and eq get receiver team id from message 9 then bind var select place on diamond formation get location from message get rotation from message ATRIBUI AO SEU ESTADO O DESTINO modify x nav target var 7E A ROTACAO FUTURA modify x rot target select rotation on diamond formation var assert perception store RegraDisparada perception return defmodule ACTION defrule go to destination a lt action SE TEM UM DESTINO E UMA ROTACAO x lt bot nav target target nil rot target rot gt retract a assert action PROCEDE AO MOVIMENTO go to target target rot store RegraDisparada go to destination return 3 3 3 Tratamento de detec o de colis es Com a componente da movimenta o elaborada um dos problemas que da adv m s o as colis es O l der n o ter esse problema pois o algoritmo A apenas pesquisa o caminho entre os
37. agenda sendo poss vel acompanhar as regras activadas e a que activada a cada itera o da l gica do bot e as fun es definidas pelo utilizador pois isto ajuda o a procurar o nome correcto da fun o que deseja executar 36 A informag o acima descrita est disponivel na zona respectiva ao estado do Jess como se pode observar na figura 15 Facts Activations Deffunctions pap a deffunction get enemy ocation ore cates FALSE hear a Activation ACCAO go to nav point f 125 f 3 time 260 salience 100 deffunction turn to enemy eis Fired Rule go to nav point deffunction turn to enemy2 4 m deffunction show deftemplates 7 Figura 15 Informa o acerca do estado do Jess Os factos contidos na mem ria de trabalho esquerda as regras activadas e a disparada no centro e a lista de fun es definidas pelo utilizador direita Controlo manual Sempre que o bot tem a sua l gica interrompida o utilizador pode assumir o controlo manual para o levar a locais mais espec ficos Locais a que n o tenha acesso atrav s dos waypoints e que sejam necess rios para testar o comportamento O controlo manual encontra se na parte esquerda da consola individual Ao clicar nos bot es das setas esquerda e direita o bot far uma rota o de 45 graus no sentido hor rio e anti hor rio respectivamente O bot o da seta direccionada para cima far com que o bot se mova ligeiramente para onde est voltado Mapa
38. ar contra ele Corremos o jogo pausamos os bots e colocamos um perto do outro Para direccionar um bot para o inimigo escolhemos a fun o definida em Jess turn to enemy que faz com que o bot se direccione para o inimigo executamo la na linha de comandos e de seguida podemos observar a lista de regras activadas na janela acima da linha de comandos janela do output do Jess para verificar se a regra disparada a esperada Poder simplesmente retirar o bot do estado de pausa e verificar se a regra que disparou foi a esperada sendo tamb m poss vel esperar que o bot alcan asse o estado pretendido para observar se o comportamento era disparado 3 1 2 Jess para comportamentos inteligentes De forma a explicar melhor a liga o do JAVA com o Jess come amos por explicar a componente agent presente na arquitectura Pogamut ver figura 8 sec o 2 3 2 A componente agent uma classe da biblioteca Pogamut que respons vel pela execu o de um bot no videojogo Unreal Tournament 2004 Esta classe disponibiliza m todos para manipular e adquirir informa o intr nseca e sensorial de um bot Com o intuito de passar toda responsabilidade da componente agent para o Jess para que este fique inteiramente respons vel pelos comportamentos do bot necess rio passar a sua refer ncia para o Jess Assim este pode invocar todos os m todos do bot tornando o respons vel pela escolha e execu o dos comportamentos A l gica optada para c
39. atacar flanquear ou bater em retirada Lid n02 Para uma avalia o da posi o t ctica podemos considerar quatro factores Posi es perto do agente Posi es que os inimigos v em Posi es que fornecem cobertura estas posi es normalmente s o inseridas manualmente e em caso de m ltiplos inimigos a Posi o que oferece linha de ataque para o inimigo que o agente prefere atacar Straatman06 Podemos tamb m ter em conta alguns aspectos definidos por Jeff Orkin para tornar o agente mais cred vel caso este simule um ser humano e os aspectos s o Propriedade 18 Depend ncia Relev ncia Responsabilidade Prioridade Consci ncia Estado esperado Presen a de outros Orkin04b Os agentes tamb m podem aprender com as suas ac es utilizando mapas de ocupa o que geram informa o acerca do mundo baseada na percep o do agente o que ouve e v Por exemplo e se o agente deixa de ver o inimigo Ele deve ir para a ltima posi o onde o viu E se ele l n o estiver Vai procura O agente dever ent o avaliar a situa o para poder aprender e pode avali a da seguinte maneira e Confirma se o comportamento era o esperado e Refuta se o comportamento n o era o esperado e N o faz nada caso n o consiga confirmar nem refutar o comportamento Com esta informa o deve se proceder cria o de uma grelha com campos de probabilidade volta dos objectos inseridos no mundo representando as reas on
40. az com que o bot esteja sempre a saldrian a sa 41 Tabela 10 Output de uma experi ncia decorrida com tr s itera es 43 Tabela 11 C digo Jess executado quando um elemento da equipa recebe uma mensagem do l der para acompanhar o movimento da forma o 49 Tabela 12 Anexo Ficheiro XML para configura o da experi ncia 66 Tabela 13 Anexo Arquitectura Jessen inet a ofusca ls 70 1X Capitulo 1 The field of Game Al is still the Wild West We re just scratching the surface of what s possible and there are still many unsolved problems which leave open huge opportunities to innovate and do cuttingedge work that really could have impact on the entire industry Jeff Orkin AiGameDev 10 O campo de IA nos videojogos continua um Oeste Selvagem Estamos apenas a raspar a superf cie do que poss vel e existem ainda v rios problemas por resolver que abrem grandes oportunidades para inovar e criar tecnologia de ponta que poder ter impacto na ind stria Jeff Orkin Nos anos que correm com a evolu o a n vel computacional das placas gr ficas dos processadores e das mem rias RAM temos observado um grande desenvolvimento nos videojogos principalmente na sua componente gr fica A componente da intelig ncia artificial deve acompanhar esta evolu o e levar aos jogadores novas t cnicas e desafios de forma a enriquecer a sua experi ncia enquanto jogam A
41. calculados para que outros agentes calculem caminhos diferentes At mesmo para evitar que uma rea se torne demasiada lotada pode se usar uma flag para marcar a rea e assim os pr ximos agentes que tentem entrar nessa rea ficam na periferia Orkin04c Uma no o de equipa tamb m importante para mostrar intelig ncia por parte dos elementos da equipa pois torna se f cil criar comportamentos como evitar a linha de fogo de outros agentes aliados Reynolds04 2 2 Ferramentas de desenvolvimento para videojogos do g nero FPS Existem v rias plataformas para o desenvolvimento de videojogos do g nero FPS nesta sec o apenas abordamos algumas baseadas nos seguintes crit rios licen a gratuita capacidade de realizar um videojogo FPS que j tenha pelo menos um jogo comercial que ofere a algumas t cnicas de intelig ncia artificial e contenha mecanismo para o debugging Com base nestes crit rios deparamo nos com o UDK Unity3D e o Panda3D Estas plataformas oferecem um conjunto de t cnicas comuns para o debugging como o sistema de logs fun es de suspender retomar e acompanhar passo a passo o fluxo de execu o do processo e ainda a monitoriza o de vari veis num dado instante ver tabela 3 Os sistemas de logs s o compostos por instru es colocadas no meio do script de forma a rastrear o processo e s o teis para indicar o fluxo de execu o de um processo 20 As fun es como suspender retomar e pass
42. ce tamb m um sistema que permite realizar v rias experi ncias para obter a partir do output gerado uma avalia o sobre os comportamentos testados A ferramenta em quest o foi utilizada para casos pr ticos como a constru o e avalia o de v rios comportamentos individuais escritos em Jess e comprovou se que consegue identificar rapidamente os erros no script e avaliar qual o melhor dos comportamentos Este tipo de avalia o pode ser til para definir o n vel de dificuldade do comportamento Procedemos constru o de comportamentos colectivos com o objectivo de aplicar a DEVELOP FPS para provar que est apta para o desenvolvimento de v rios agentes Com o desenrolar do desenvolvimento a DEVELOP FPS mostrou se til na detec o de problemas nos scripts poupando tempo para melhorar os comportamentos correcto concluir que este tipo de ferramentas muito til para o processo de constru o e avalia o de comportamentos para NPCs e que devem ser utilizadas em futuros trabalhos que envolvam a programa o agentes virtuais para videojogos 4 2 Trabalho futuro A DEVELOP FPS ainda est em estado de desenvolvimento podendo ser estendida com um conjunto de funcionalidades teis Uma extens o til seria adicionar uma mini esta o de controlo consola global para propagar a todos os bots ou mesmo s a uma equipa comandos em Jess que poderiam ajudar a preparar cen rios de teste e a gerir equipas numerosas
43. cia O ficheiro cont m as seguintes TAGs lt bot gt representa um bot que vai ser inserido na experi ncia e cont m as sub TAGs lt name gt nome do bot lt fileName gt directoria onde est o ficheiro que cont m o comportamento desejado e lt pause gt se deve ou n o come ar parado lt xml version 1 0 gt lt There is only two team team O and team 1 gt lt experiment gt lt bot gt lt name gt Moniz lt name gt lt team gt 0 lt team gt lt fileName gt behaviorDirectory hunter clp lt fileName gt lt pause gt true lt pause gt lt name gt Urbano lt name gt lt team gt 0 lt team gt lt fileName gt behaviorDirectory dodgeBehavior clp lt fileName gt lt pause gt true lt pause gt lt name gt CTT lt name gt lt team gt 1 lt team gt lt fileName gt behaviorDirectory dummy clp lt fileName gt lt pause gt false lt pause gt lt bot gt lt experiment gt As condi es que definem a conclus o de cada itera o da experi ncia s o o tempo estipulado pelo utilizador e a condi o de vit ria Se for um cen rio de todos contra todos DeathMatch a itera o termina quando existir um bot vivo cada bot tem apenas uma vida Quando temos um cen rio de jogo de equipa TeamMatch a condi o de paragem quando todos os elementos de uma equipa s o eliminados Por m existem dois casos particulares que ocorrem quando o utilizador apenas coloca um elemento ou s elemento
44. ctiva o selec o disparo das regras acompanhando o estado da base de factos o conte do da agenda e os efeitos do disparo de cada regra Os videojogos chamados First Person Shooter FPS s o jogos de ac o normalmente violentos muito populares desde o sucesso de Doom em 1993 e que s o Jogados na perspectiva da primeira pessoa o jogador experiencia a ac o atrav s dos olhos do protagonista Os FPSs envolvem um avatar um ambiente 3D e em geral sendo um jogo de combate cujo objectivo matar o maior n mero de inimigos poss vel envolvem tamb m um conjunto de diferentes armas e muni es uma variedade de oponentes A variante dos FPS que suportam o jogo em equipa um tipo muito popular onde equipas de 2 ou mais jogadores n o necessariamente controlados por jogadores humanos competem para atingir os mesmos objectivos eliminar os seus inimigos Actualmente um dos desafios da intelig ncia artificial para videojogos est na realiza o de forma es e estrat gias para grupos de agentes nomeadamente em videojogos do g nero FPS Pretende se que estes movimentem se de forma coordenada e a realizem ac es cred veis em conjunto perante dadas situa es AiGameDev1 1 Numa equipa preciso que haja alguma coordena o de modo a que uma equipa n o seja apenas um grupo de jogadores sem uma estrat gia e que n o comunicam nem interagem Assim as ferramentas de desenvolvimento de comportamentos para videojogos de equ
45. de o objecto poder estar com o passar do tempo Isla06 Grupos ou comportamentos coordenados Os agentes podem estar inseridos numa equipa o que pode originar a outros problemas de decis o e comportamentos que o agente deve tomar Uma equipa pode optar por uma organiza o centralizada onde existe um l der que toma as decis es de como a equipa deve proceder ou descentralizada onde cada elemento comunica aos outros a sua inten o de actuar perante uma dada situa o e no fim todos decidem o que devem executar Baseado numa organiza o descentralizada temos o Squad AI Sterren02a uma camada que processa qual o melhor comportamento que a equipa deve tomar com base nas inten es que os agentes comunicam Como a camada Squad Al acaba por tomar as decis es para a equipa pode ser vista tamb m como centralizada e temos assim um misto dos dois tipos de organiza es capaz de produzir comportamentos emergentes comportamentos baseados na interac o com os elementos do grupo para que os elementos n o executem ac es independentes No Company of heroes Jurney08 os esquadr es s o compostos por tr s elementos N cleo Flanco esquerdo e Flanco direito Cada esquadr o tem um l der e o l der normalmente encontra se no elemento n cleo As ordens dadas pelo jogador utilizador s o executadas pelo l der ele respons vel por procurar o caminho at ao objectivo os outros bots prev em a futura localiza o do l der
46. e IA apenas um dos elementos desta arquitectura que respons vel por fornecer mecanismos para que se possam construir agentes virtuais Componente Gr fica Componente respons vel pela Fisica Ciclo do videojogo Componente de Inteligencia Dados do mundo artificial Componente do Som Figura 1 Arquitectura generica de um videojogo A figura 1 um descreve as componentes gen ricas de um videojogo em que a componente de Intelig ncia Artificial apenas um dos elementos Esta sec o ser dedicada apresenta o de diversas t cnicas espec ficas componente de intelig ncia artificial as quais dividimos em tr s grupos a representa o do meio ambiente a movimenta o e o comportamento 2 1 1 Representa o do meio ambiente O meio ambiente ou mundo virtual pode ser din mico ou est tico e Din mico envolve altera es no cen rio o que muitas vezes origina novos caminhos novos dados para a estrutura de dados Por exemplo um ambiente que cont m objectos din micos por exemplo portas com armadilhas que possam obstruir caminhos onde o agente poderia passar e Est tico o cen rio do princ pio ao fim do videojogo inalterado Por exemplo um ambiente onde todos os objectos n o se movimentam A representa o corresponde forma como o mundo virtual percebido pelo agente e em geral n o depende de possuir uma natureza est tica ou din mica A representa o do m
47. e comportamentos PandAl no Panda3D engine Panda3D11 Alguns destes toolkits suportam o desenho e a integra o do NPC no jogo atrav s de solu es propriet rias e limitadas A maioria das companhias de videojogos tem as suas ferramentas de desenvolvimento que n o s o disponibilizadas comunidade As alternativas de baixo custo open source e shareware colocam os seus esfor os para suportar motores de jogo componentes gr ficas resolver problemas como simula o f sica detec o de colis es e anima o de personagens As ferramentas que assistem no desenvolvimento dos comportamentos dos NPCs s o normalmente omitidas A exist ncia de uma ferramenta de desenvolvimento totalmente orientada para o debug da intelig ncia artificial seria importante para a ind stria dos videojogos de modo a que se possa testar os comportamentos com o intuito de os melhorar Estas ferramentas devem fornecer fun es que permitam recriar facilmente situa es para testar e comparar comportamentos monitorizar em tempo real o estado do NPC e alterar remotamente o seu comportamento executar o seu comportamento passo a passo fazendo o debugging do c digo visualizando o seu estado e acedendo a mais informa o executando fun es sobre a percep o do agente e sobre o estado do meio ambiente que o rodeia Seria tamb m til permitir a possibilidade de poder criar situa es de teste dinamicamente em tempo real fornecendo comandos aos NPCs para s
48. e dirigirem para uma dada posi o controlando os seus movimentos com precis o e testando os seus comportamentos passo a passo Estas funcionalidades n o existem na maioria das toolkits de desenvolvimento para videojogos quando precisamos de construir testar e executar os comportamentos dos NPCs V rias plataformas de desenvolvimento para videojogos nomeadamente o UDK UDK10 Unity 3D Unity11 e o Panda3D Panda3D10 fornecem um conjunto de funcionalidades que promovem o debugging como por exemplo um sistema de logs que consiste basicamente num sistema de mensagens que o programador coloca no seu script para acompanhar o que est a acontecer Esta funcionalidade mostra se muitas vezes penosa quando gerada uma grande quantidade de logs A ferramenta que disponibilizada para ajudar a desenvolver comportamentos em geral um editor de texto Alguns editores fornecem fun es como a indenta o do c digo e altera o da cor de algumas palavras chaves do script apenas para facilitar a leitura do mesmo Por m alguns toolkits fornecem plugins para IDEs que possuem sistemas de debugging integrados na ferramenta com funcionalidades como defini o de breakpoints visualiza o de vari veis interrup o da execu o do jogo ou realizar um simples step linha por linha a adi o MonoDevelop para o Unity 3D MonoDevelop10 um exemplo destas ferramentas Neste tipo de ferramentas quando ocorre algum bug o procedimento comu
49. e pontos circulares uneenneensersnersnneennennnnen 12 Figura 5 Malba de navega o ara ee el 13 Figura 6 Forma es mais COMUNS u EN 16 Figura 7 Perspectiva que o jogador humano tem sobre o ambiente proporcionado pelo videojogo Unreal Tournament 2004 ucsuscssssnssnsenssnnensenennnnennnnnnnnnnnennnnnnnnn 23 Figura 8 Arquitectura Unreal Tournament 2004 Pogamut O IDE Ambiente integrado de desenvolvimento facilita ajuda na programa o em quest o o NetBeans que o requerido pelo Pogamut v2 Pogamut09 conocio noncnnnncnnoo 25 Figura 9 Arquitectura t pica de um sistema baseado em regras Friedman03 26 Figura 10 Arquitectura gen rica da DEVELOP FPS ni 31 Figura 11 Consola Global vecseuccsacacsiiensienee ii Mestalla eaten 31 Figura 12 Exemplo da consola individual 35 Figura 13 Bot es de COmtrolo iii klin 35 Figura 14 Informa o sensorial sobre o bot conan 36 Figura 15 Informa o acerca do estado do Jess 34 Figura 16 Mapa 2D com vista a rea para os waypoints armas e posi o do bot no CONAN Os ites Rots A is TOLO aU Sal ean O AEON 38 Figura 17 Mapa com corredor para promover o estrangulamento 44 Figura 18 Mapa amplo com poucos obst culos para realizar testes mais simples Figura 19 Forma o em diamante para quatro elementos uersner sense 45 Figura 20
50. effunctions c MAIN initial fact La deffunction show deftemplate Ma n percepcao 2 E i sm b deffunction show jess listen Hide Facts Hide Activations Hide Deffunctions E Fired Rule init 9 E MAIN accao 2 ali DI 1 d Manual Control Bot Sensory Information A ID 20 4 gt Name Moniz_0 f Red Team h Energy 100 e Is moving false Hears anything true Sees enemies false Sees Weapon false 7 Isfiring false ps g Clear Window f4 1 DI sl2elelelwimi Figura 26 Anexo Consola individual Visualizag o dos factos contidos na mem ria de trabalho do Jess Lista de activa es e a regra disparada Lista de fun es definidas pelo utilizador e algumas utilit rias do Jess Bot es para omitir as informa es anteriormente descritas Controlo manual do bot apenas poss vel se o bot estiver em pausa com rota o para a esquerda e direita bot o da esquerda e da direita respectivamente e movimento para onde est voltado bot o para o meio Janela de output do Jess Linha de comandos para exercer qualquer fun o sobre Jess Informa o sensorial em runtime do bot Bot es de controlo da esquerda para direita 1 Destr i do bot 2 Reload Destr i toda a informa o contida no Jess e substitu a pela nova informa o contida no script do comportamento em quest o Resume e pausa o bot de exercer os seus comportamentos eae Ss soda
51. eio ambiente fundamental para calcular as traject rias quando o agente precisa de se movimentar evitando assim colis es com os objectos do cen rio e tamb m para obter informa o sobre os locais onde se pode refugiar Tozour04 Existem v rias alternativas de representa o de espa os virtuais para videojogos e Grelhas regulares Regular grids podem ser quadradas ver Figura 2 rectangulares hexagonais ou triangulares S o boas para representa o de espa os de duas dimens es ou 2D sendo uma estrutura de dados eficiente 10 ja que o acesso aos dados de qualquer c lula da grelha imediato Uns dos problemas que podem dar origem a movimentos que s o pouco naturais por parte do agente visto que os caminhos s o compostos por tra os ortogonais Figura 2 Grelha regular Grafos de cantos Corner graphs consistem em pontos waypoints colocados nos cantos dos obst culos Os pontos dos cantos s o gerados automaticamente mas esta solu o obriga a que o agente se movimente apenas entre estes pontos dando a sensa o que o agente anda colado parede Grafos de pontos Waypoints graphs ver Figura 3 s o semelhantes aos gr ficos de cantos excepto que os pontos s o usualmente inseridos no meio das salas S o bastante populares na ind stria de videojogos pois consegue se muito facilmente criar espa os em 3 dimens es 3D Os pontos podem ser colocados manualmente ou podem ser pr process
52. endemos procurar anomalias nos comportamentos constru dos Quando se constr i comportamentos importante que exista uma funcionalidade que facilite a criag o de cen rios para que se possa testar o comportamento Tanto o Unity 3D como o UDK oferecem este tipo de funcionalidade com a manipulag o dos objectos presentes nos cen rios atrav s do editor mas s o permitido quando o jogo n o est em execu o impossibilitando assim r pidas correc es nos cen rios de teste A monitoriza o de vari veis que o Unity 3D e o Panda3D disponibilizam s para quando o jogo est suspenso a monitoriza o destas v rias em tempo real pode levar a uma detec o mais r pida de anomalias no comportamento Tendo em conta a dificuldade em encontrar plataformas de desenvolvimento para scripts baseados em regras tamb m natural n o encontrar mecanismos de debugging para esse tipo de sistemas necess rio uma ferramenta que consiga cobrir as lacunas das plataformas apresentadas de forma a facilitar o desenvolvimento de comportamentos para videojogos do g nero FPS que possam ser utilizados com qualquer linguagem de scripts 22 2 3 Ferramentas utilizadas Esta sec o descrever as ferramentas que foram escolhidas e utilizadas para a concretiza o da DEVELOP FPS a ferramenta que assiste no desenvolvimento de comportamentos escritos em Jess para agentes inseridos no videojogo Unreal Tournament 2004 2 3 1 Unreal Tournament
53. ent 2004 como servidor em modo GameBots Existem j uns ficheiros bat no cd que correm alguns exemplos de servidores 2 Na consola do Windows Cmd a Ir at directoria onde est o ficheiro ThesisBotWithJess jar b Executar o seguinte comando Java ar ThesisBotWithJess jar 64 Como usar a aplicac o amp Waiting for clients mI Time Experiments Broadcast to agents C kab I Omen sas Resume Au Pause All Start Experiment a Figura 24 Anexo Consola global Iniciar experi ncia 1 Primeiro configurar um ficheiro XML ver tabela 12 com os intervenientes na experi ncia a Existem uns ficheiros com uns comportamentos b sicos que podem ser experimentados hunter clp dodgeBehavior clp e dummy clp Abrir o ficheiro previamente configurado Figura 24 a Open File Definir quanto tempo dever durar cada experi ncia Figura 24 a Time Definir quantas itera es deve correr Figura 24 a Experiments Correr experi ncia Figura 24 a Start Experiment RdA 65 Tabela 12 Anexo Ficheiro XML para configura o da experi ncia lt xml version 1 0 lt There is only two team team O and team 1 gt lt experiment gt lt bot gt lt name gt Moniz lt name gt lt team gt 0 lt team gt lt Colocar a directoria onde o ficheiro est directorias separadas com W gt lt file
54. er Obstacles In Rabin S ed AlGame ProgrammingWisdom Charles RiverMedia 193 201 Hart72 Hart P E Nilsson N J Raphael B 1972 Correction to A Formal Basis for the Heuristic Determination of Minimum Cost Paths SIGART Newsletter 37 28 29 Hindriks11 Hindriks K Riemsdijk B Behrens T Korstanje R Kraayenbrink N Pasman W and Rijk L Unreal Goal Bots Conceptual Design of a Reuseble Interface F Dignum Ed Agents for Games and Simulations II LNAI 6525 pp 1 18 2011 IGN09 The 10 Best Game Engines of This Generation http uk pc ign com articles 100 1003725p2 html Last visited 06 2011 Isla06 Isla D 2006 Probabilistic Target Tracking and Search Using Occupancy Maps In Rabin S ed AlGame ProgrammingWisdom 3 Charles RiverMedia 379 387 Jess08 Jess Rule Engine http www jessrules com Last visited 06 2011 Johnson04 Johnson G 2004 Avoiding Dynamic Obstacles and Hazards In Rabin S ed AlGame ProgrammingWisdom 2 Charles RiverMedia 161 170 Jurney08 Jurney C 2008 Company of Heroes Squad Formations Explained S ed AlGame ProgrammingWisdom 4 Charles RiverMedia 61 69 58 Kaminka02 Kaminka G Veloso M Schaffer S Sollito C Adob pp bati R Marshall A Scholer A and Tejada S A flexible test bed for multiagent team research Communications of the ACM 45 1 43 45 2002 Lange98 Lange B Programming and Deploying Mobile Agents with Jav
55. feita atrav s de um sistema de tra os isto o l der executa um esp cie de tra o com origem na sua posi o e destino na posi o na forma o do elemento bloqueado que tem como objectivo detectar colis es com obst culos Quando o l der ao executar um tra o n o detecta nenhuma colis o ent o a posi o do elemento bloqueado est livre O l der envia a esse elemento uma mensagem para que possa retornar a sua posi o executando o caminho que o l der realizou para superar o obst culo ver figuras 21 IVIII 22 e 23 O tratamento de colis es fica resolvido promovendo uma movimenta o em forma o capaz de superar obst culos e pontos de estrangulamento 50 Recebeu E mensagem do Movimenta se lider Dispara sobre o inimigo Colidiu com um objecto V inimigo Realiza rota o de 180 graus Recebeu mensagem do lider Envia mensagem ao lider Envia mensagem de desbloqueio ao lider Segue caminho executado pelo lider Est na sua ne Volta para a sua Est perto posi o na posi o na do l der forma o forma o Figura 22 Fluxograma dos elementos da equipa ap s uma ordem para se moverem em formac o 51 Movimenta se Recebeu alguma mensagem de algu m bloqueado Tem alguma Est num waypoint Guarda remetente da mensagem na mem ria Verifica a posi o
56. iamente respons vel por executar a m quina do Jess ver tabela 8 A execu o dos dois m dulos Perception e Action considerada uma unidade de comportamento Com a unidade de comportamento estipulada a funcionalidade passo a passo Step da consola individual respons vel pela execu o dos dois m dulos Tabela 8 M todo respons vel pela execu o do Jess Corresponde tamb m a uma unidade de comportamantto void doLogic jessEngine eval focus Action jessEngine eval focus Perception if onlyDoesOneTime jessEngine eval focus Init jessEngine run Sempre que o utilizador optar por criar um bot para ser testado na DEVELOP FPS ter que ter pelo menos um m dulo Init um Perception e um m dulo Action no seu script escrito em Jess A tabela 9 mostra um simples comportamento com a arquitectura requerida 40 Tabela 9 Dummy clp um simples comportamento que faz com que o bot esteja sempre a saltar defmodule INIT defrule init gt assert perception assert action store RegraDisparada init return defmodule PERCEPTION defrule perception lt perception gt retract f assert perception store RegraDisparada perception return defmodule ACTION defrule jump 2a lt action gt retract a assert action jump store RegraDisparada jump return O comando return assegura que mais nenhuma regra
57. imenta o en DSH ee 14 21 3 Comportamento i EEE NS 17 2 2 Ferramentas de desenvolvimento para videojogos do g nero FPS 20 2 3 Ferramentas utilizadas ii ae 23 2320 Unreal Tournament 2008 23 232 Pogamut A vo Ssh ve see ae 25 23 3 Sistemas a A a jetted E aa a 25 234 AI Ss cor e e el 27 Capitulo See ee een 29 3 1 DEVELOP FPS Ferramenta de apoio constru o de comportamentos A Rn Und 29 3 1 1 Arquitectura e respectivas funcionalidades e 30 3 1 2 Jess para comportamentos inteligentes ooooocccnnnccconanncnoncnnnnncninnnnnns 39 3 1 3 Aplica o da DEVELOP FPS para comportamentos individuais 41 3 2 Arenas Cen rios para experi ncias eersssessssenssnnenssnnennnnnnnnnnnnnnannnnnn 44 3 3 Comportamento em COULPAL oassesiquassar gas ceradlas rhnanisdoni gas E ro neh Kanes 45 3 3 1 Sistema de COMUNICACION ati 46 3 3 2 Movimenta o em EQUIP denia a 47 3 3 3 Tratamento de detec o de colis es ooococnnococinncccnoncnononcnonananonnnnnos 49 3 3 4 Aplica o da DEVELOP FPS para comportamentos cooperativos 53 Capitulo dos 55 Ab ONE ASAS ee ee een 55 4 2 Trabalho monate en ehe 55 O Inst 57 Anexo Manual de utilizador uw 63 vi Lista de Figuras Figura 1 Arquitectura gen rica de um videojogO nenn 10 Pisura 2 Grelha regular en u ae el 11 Figura 3 Visualiza o de grafos de pontos ren 12 Figura 4 Visualiza o de grafos d
58. ipa ter o de lidar n o apenas com as percep es e ac es dos jogadores mas tamb m lidar com as suas interac es em tudo o que envolve a coordena o 1 2 Objectivos Este trabalho tem dois objectivos a concretiza o de uma ferramenta para facilitar o desenvolvimento e testar comportamentos inteligentes realizados numa linguagem base de regras e o desenvolvimento de comportamentos individuais e de grupo testando as funcionalidades da ferramenta de desenvolvimento Propomos uma arquitectura gen rica que suporta o desenvolvimento de comportamentos para personagens aut nomas escritos numa linguagem base de regras para um ambiente de videojogo do g nero FPS para computador Poderia ser qualquer outro jogo mas este tipo oferece uma vantagem n o existem exemplos pelo menos n o foram encontrados de scripts escritos numa linguagem de programa o baseada em regras nem para controlar jogadores individuais nem em equipa A ferramenta de desenvolvimento ir permitir realizar experi ncias que possam ser repetidas o necess rio n mero de vezes recolher dados tanto para comportamentos individuais como para cooperativos de forma a avaliar o seu desempenho oferecendo m todos para criar cen rios de teste monitorizar e controlar todos os agentes intervenientes na experi ncia 1 3 Contribui es Foi criada a DEVELOP FPS que uma ferramenta de desenvolvimento de NPCs para videojogos FPS aplicada plataforma UDK e usando
59. iras capturadas num determinado espa o de tempo para que este n mero seja superior ao do advers rio Os inimigos podem ser humanos ou virtuais agentes Para que o jogador possa ir de encontro aos objectivos propostos cada personagem do jogo no seu estado inicial est munida de uma arma de longo alcance capaz de infligir dano ao inimigo mas esta arma cont m pouco poder de dano O jogador pode explorar o cen rio para adquirir mais armas com superior poder de dano de forma a ganhar vantagem sobre o advers rio Armas essas que est o distribu das em pontos fixos pelo cen rio todo Todas as armas excep o de uma que inflige dano corpo a corpo necessitam de muni es que tamb m se encontram espalhadas pelo cen rio Existem muni es espec ficas para cada arma Al m das armas e das muni es tamb m existem itens que adquiridos pela personagem recuperam e ou adicionam mais pontos de energia a quem os adquiriu isto o estado inicial de energia de cada jogador de 100 pontos e O pontos de escudo o escudo serve para absorver o impacto das armas H itens de energia que apenas aumentam at aos 100 pontos e h outros que passam o limite dos 100 pontos at aos 199 O sistema de pontos do escudo bastante semelhante energia existem v rios itens que adicionam pontos ao escudo at perfazer os 99 pontos e normalmente existe apenas um item no mapa que adiciona mais 100 pontos ao escudo fazendo um m ximo de 199 ponto
60. izamos t cnicas simples que facilitam os comportamentos coordenados isto os bots com o mesmo objectivo podem reservar caminhos para que outros bots da mesma equipa calculem caminhos diferentes e fiquem perto um dos outros Neste trabalho opt mos por seleccionar um l der e aplicar movimentos cinem ticos para realizar na ntegra a forma o em diamante o que era imposs vel com a outra abordagem Uma equipa que tenha um l der leva a v rios problemas tal como a escolha do l der quais s o as fun es do l der e dos restantes elementos e o que acontece quando o l der morre A selec o do l der neste caso realizada com a entrada dos bots no jogo o primeiro a entrar no jogo considerado o l der isto porque n o existem propriedades diferentes entre os bots e um mecanismo de implementa o simples A distin o do l der para os restantes elementos feita atrav s da atribui o de um ID para cada elemento o l der tem o ID zero e os restantes elementos t m o ID sequencial a partir do ID do l der Na atribui o das fun es consider mos que a equipa de bots um comando e que o l der o comandante O comandante como numa forma o militar respons vel por definir e comunicar uma estrat gia perante uma situa o de risco Como a decis o s passa por um elemento normalmente mais eficaz na realiza o de uma ordem Por isso simulando uma situa o de comando o nosso l der tamb m ficar
61. le Information Agen Send Position Connects Figura 10 Arquitectura gen rica da DEVELOP FPS Consola Global A consola global ver figura 11 que pode ser considerada como o centro das opera es respons vel por recolher os par metros e iniciar as experi ncias monitorizar e oferecer controlo sobre todos os intervenientes na experi ncia e construir e apresentar toda a informa o proveniente da experi ncia waiting for clients Em TI Time Experiments Broadcast to agents 1 sal 7 nd Open File Resumean Pause au Start Experiment Figura 11 Consola Global No topo fica situada a lista de bots conectados no centro podemos observar o mapa 2D com os waypoints fornecendo uma vista de topo do cen rio no canto inferior esquerdo temos os bot es para interromper e retomar a l gica dos bots no lado direito os argumentos necess rios para come ar uma experi ncia 31 De uma forma mais detalhada as funcionalidades oferecidas por esta consola s o as seguintes 1 Executar experi ncias e disponibilizar os resultados com o objectivo de avaliar os comportamentos testados 2 Fornecer uma vista de topo sobre o cen rio mostrando os waypoints e a posi o dos bots para uma melhor percep o onde est o situados 3 Permitir a interrup o e a retoma da execu o do jogo para que se possa ou adquirir informa o ou cont
62. m interromper o script e observar o output produzido pelo bug Existem interpretadores que fornecem mensagens identificando o tipo de erro e a sua localiza o no c digo mas sem nenhuma ferramenta para testar e monitorizar as componentes o programador respons vel por efectuar o debug e testar o seu pr prio c digo Por exemplo a plataforma de desenvolvimento UDK UDK10 fornece um mecanismo para o debug baseado em registos de mensagens produzidas no script para que se possa acompanhar a execu o do mesmo A exist ncia de ferramentas que fornecem um ambiente profissional para suportar todo o processo desenvolvimento da componente de intelig ncia artificial reduzir dramaticamente o tempo despendido libertando o programador para produzir melhor c digo Hoje em dia os comportamentos s o cada vez mais focados em ac es cooperativas entre os NPCs para que estes possam ultrapassar obst culos ou concluir certos objectivos tornando a experi ncia mais rica para o jogador Devido complexidade de gerir v rios comportamentos as ferramentas de desenvolvimento tamb m dever o ser capazes de fornecer m todos para tornar a gest o mais f cil como a monitoriza o e permitir o controlo de todos os intervenientes no jogo Al m das ferramentas de desenvolvimento tamb m necess rio investigar e promover novos m todos para comportamentos dos NPCs que os tornem plaus veis ao olho do jogador oferecendo lhe uma maior imers ol
63. m m Executa um step Omite Mostra a informag o sensorial h do bot Omite Mostra a informag o do Jess a b c d Omite Mostra o mapa individual Ver figura 27 AA ES D 68 Labels Waypoints Player Path Taken Destination e a a s e E 3 a e a o 3 a En 2 o ate io e e e a e a e a m a e a a a e z o 6 e amp ed y esq e a gt oo 5 ns z o ee eb e Koss e a a e e o 5 e a a ee o ee e a P bs e a se otoo 11 r Figura 27 Anexo Mapa 2D O mapa individual al m de mostrar as armas waypoints e a posi o do bot tem tamb m como funcionalidade colocar o bot num waypoint seleccionado Para isso basta que o utilizador clique num waypoint pretendido situado no mapa Aviso Nem sempre poss vel executar o caminho desde a localiza o do bot at ao waypoint seleccionado 69 Construir bots em Jess Para construir comportamentos em Jess ter que seguir o seguinte modelo Tabela 13 Anexo Arquitectura Jess deffacts SETUP percepcao accao defmodule INIT defrule init gt store RegraDisparada init return defmodule PERCEPCAO defrule perception f lt percepcao gt retract f assert percepcao store RegraDisparada perception return defmodule ACCAO defrule jump a lt accao gt retract a assert accao store RegraDisparada ju
64. me ellapsed 26 s Moniz_6 hunter clp Died 0 Urbano_7 dodgeBehavior clp Still Alive 79 CTT_8 dummy clp Died 0 Time ellapsed 42 s Moniz_9 hunter clp Died 0 Urbano_10 dodgeBehavior clp Still Alive 58 CTT_11 dummy clp Died 0 Time ellapsed 55 s 43 Podemos concluir como se pode observar em cada itera o da experi ncia que o comportamento dodgeBehavior clp Urbano manteve se vivo onde os outros dois foram vencidos sendo este o melhor comportamento entre os tr s 3 2 Arenas Cen rios para experi ncias Para que certos comportamentos possam ser devidamente testados necess rio que os cen rios onde os bots est o inseridos ofere am condi es para a activa o destes mesmos comportamentos Com um intuito de testar um caso espec fico na realiza o de comportamentos cooperativos procedemos cria o de um cen rio ver figura 17 que consiste num corredor onde apenas h espa o para um bot passar Este cen rio til para testar comportamentos em que equipas de bots que se movem em forma o deparam se com um ponto de estrangulamento Uma abordagem para este problema explicada na sec o 3 3 Tratamento e detec o de colis es O cen rio descrito foi criado pois n o era poss vel replicar o caso espec fico com os cen rios providenciados pelo videojogo Unreal Tournament 2004 VD Um te Vista de topo Press Fire to View a different Player Figura 17 Mapa com corredor par
65. mp return Existem tamb m no cd mais dois comportamentos exemplos para usufruir hunter clp dodgeBehavior clp 70
66. na forma o do elemento bloqueado Est livre Envia mensagem para que o forma o esta elemento bloqueado realizada retome a sua posi o na forma o Figura 23 Fluxograma do l der ap s a movimenta o 32 3 3 4 Aplica o da DEVELOP FPS para comportamentos cooperativos A DEVELOP FPS foi usada para assistir no desenvolvimento do comportamento cooperativo constru do nomeadamente a forma o em diamante entre 4 elementos Com os mecanismos actuais de debug torna se dif cil poder controlar e monitorizar um grupo de agentes Imaginemos um sistema de logs a criar informa o sobre o estado de todos os bots intervenientes na forma o o programador iria ter dificuldades para interpretar toda essa informa o A DEVELOP FPS oferece mecanismos para em tempo real monitorizar todos os bots intervenientes no jogo que til para se consultar o estado e verificar se o bot est a comportar se devidamente e control los um a um caso seja necess rio proceder cria o de um cen rio de teste ou mesmo rectificar algum comportamento Por exemplo um dos problemas que obtivemos na realiza o da forma o foi uma descoordena o inicial do movimento entre os elementos j que estes n o se moviam de modo a formar um losango forma o diamante Este tipo de problema foi facilmente identificado pela observa o do mapa global n o era vis vel um losango entre os 4 elementos Ao interrompermos a l gica
67. nos Cada pol gono armazenado como um n na estrutura de dados A principal desvantagem a grande quantidade de espa o de armazenamento necess rio Figura 5 Malha de navega o Na tabela 1 enumeramos as vantagens e desvantagens de cada um dos tipos de representa es do mundo virtual A escolha do tipo de representa o num videojogo vai depender dos requisitos do videojogo se o ambiente 3D como que os agentes se movimentam e do computador se o processador bom se h muita mem ria 13 Tabela 1 Vantagens e desvantagens das representac es Grelhas regulares Grafos de cantos Grafos de pontos Grafos de pontos circulares Volumes de preenchimento de espa os Malhas navega o Vantagens F cil de implementa o Acesso aleat rio dados aos Lidam bastante bem com espa os 2D N o requer muito espa o de armazenamento Criam espa os 3D muito facilmente O agente pode percorrer um maior espa o O agente pode percorrer um maior espa o a melhor de Actualmente representa o um espa o 3D 2 1 2 Movimenta o Desvantagens Pode num movimento originar por parte do bot pouco atractivo Limita a movimenta o do bot Coloca o normalmente manual e pode levar caminhos err neos N o todos os cobre espa os naveg veis N o cobre todos os espa os naveg veis de armazenamento Espa o
68. nt Tool for Designing and Studying Complex Systems In AAMAS 2009 UDK10 Unreal Development Kit http www udk com Last visited 06 2011 UDK11 UnrealEngine and UnrealScript official web page http www unrealengine com Last visited 06 2011 UDKDebugging10 Official UDK development website see Debugging section http udn epicgames com Three DevelopmentKitFirstScriptProject html Last visited 07 2011 UnitSteer09 UnitySteer Steering componentes for unity http www arges systems com articles 35 unitysteer steering components for unity Last visited 06 2011 Unity09 Goldstone Will Unity Game Development Essentials Packt Publishing 2009 Unity11 Unity game development tool official web page http unity3d com Last visited 06 2011 UTO4 Unreal Tournament 2004 official web pager http www unrealtournament2003 com ut2004 Last visited 06 2011 Vaugham01 Vaugham R Stoy K Player Robot Server version 0 8c user manual edition 2001 Vogt08 Vogt J Jess to JADE Toolkit J2J A Rule Based Solution Supporting Intelligent and Adaptive Agents Master s thesis Software Engineering Group Department of Informatics at University of Fribourg 2008 Wallace04 Wallace N 2004 Hierarchical Planning in dynamic worlds In Rabin S ed AlGame ProgrammingWisdom 2 Charles RiverMedia 229 236 61 Wikil0 Command military formation http en wikipedia org wiki Command military formation Last
69. nts sejam mais suaves e cred veis a aplica o de um atrito na curvatura para que o agente n o se vire de uma forma muito rob tica Pinter02 Em muitos mundos virtuais existem obst culos que originam problemas de navega o como portas elevadores saltos extremidades e escadas Estes tipos de problemas t m solu es com uma leitura mais rica sobre a representa o do meio envolvente Hancock02 Reed04 2 1 3 Comportamento Os comportamentos s o criados para que o agente possa atingir um objectivo ou tarefa proposta H v rias t cnicas para que o agente possa seleccionar o melhor comportamento em cada situa o ou estado entre um leque de possibilidades Esta sec o estar divida em quatro partes que tratam de diferentes tipologias de selec o do comportamento nomeadamente e Processos de decis o s o processos em que como o nome indica dado o estado de um agente geram o pr ximo comportamento e Pathfiding Um dos comportamentos essenciais Calcula o caminho para que o agente se possa mover da posi o actual para uma determinada posi o objectivo e An lise t ctica um mecanismo que permite que o agente a partir da informa o a que tem acesso gere uma estrat gia ou um comportamento e Grupos e comportamentos coordenados T cnicas para comportamentos coordenados Processos de decis o Na maioria dos videojogos o processo de decis o do comportamento do agente suportad
70. o a passo s o teis para interromper o fluxo do processo num dado instante e assim oferecem a possibilidade de monitorizar o estado do processo como tamb m permitem acompanh lo passo a passo para detectar anomalias de forma r pida Tabela 3 T cnicas de debugging mais comuns T cnicas usadas Sistema Funcionalidades de Logs como Retomar Suspender e passo Plataformas de a passo desenvolvimento UDK De momento n o UDKDebugging10 Unity 3D Atrav s do IDE MonoDevelop Panda3D Atrav s do IDE Microsoft Visual C Monitoriza o de vari veis Com o uso do sistema de Logs Atraves do IDE Atraves do IDE Al m das t cnicas de debugging estas plataformas tamb m oferecem algumas t cnicas de intelig ncia artificial como comportamentos que servem como base para constru o de comportamentos mais complexos ver tabela 4 21 Tabela 4 T cnicas e comportamentos de intelig ncia artificial Pathfinding Comportamentos implementados Navigation Movimento entre mesh e A os waypoints Unity 3D Panda 3D Navigation Seek Panda Al Mesh e A Flee Pursue Evade Wander Flock O Unity 3D por si s n o tem nenhuma biblioteca ou alguns m todos para desenvolver comportamentos inteligentes mas existem v rios plugins que fornecem m todos de intelig ncia artificial como o UniSteer UnitSteer09 As t cnicas de debugging mostram se pouco eficazes quando pret
71. o por uma m quina finita de estados FSM Millington06c Pittman05 Esta consiste num n mero finito de estados definidos pelo programador em que o agente s muda de estado se alguma transi o for activada Cada um destes estados corresponde normalmente a um comportamento que o agente pode executar As FSM s o uma estrutura de decis o de f cil implementa o e apresentam bons resultados A sua principal limita o deve se ao facto de ser muito dif cil cobrir todas as situa es a que o agente pode estar submetido num mundo virtual din mico Uma solu o mais elegante o Goal Oriented Action Planning GOAP Orkin04a Pittman05 que dado um objectivo gerado um plano de ac es para que o agente 17 possa executar de forma a atingir esse objectivo As ac es s o at micas representando comportamentos b sicos como por exemplo saltar As ac es t m pr condi es que precisam de ser satisfeitas e p s condi es que podem despoletar outras ac es Este tipo de t cnica pode originar comportamentos diferentes para objectivos id nticos Em mundos virtuais din micos esta solu o torna se demasiada dispendiosa pois pode haver altera es no cen rio durante o planeamento da sequ ncia de ac es ou durante a sua execu o tornando o plano obsoleto obrigando a um novo planeamento A rede hier rquica de tarefas HTNs oferece uma solu o para este problema consiste em v rias camadas de planeamento caso um
72. ores que pode levar muito tempo para que o bot atinja o estado desejado para se proceder verifica o de erros Para superar esta barreira muitas das vezes os programadores recorrem a programa o extra para colocar o bot no estado pretendido A realiza o de testes de comportamento na DEVELOP FPS mais simples e eficaz visto que a ferramenta oferece m todos para criar cen rios de teste monitorizar e controlar o estado do bot mais simples que os m todos comuns Como exemplo iremos testar se o comportamento do hunter funciona correctamente isto quando v um inimigo dummy come a a disparar O primeiro passo lan ar os dois comportamentos configurando os par metros da experi ncia atrav s da DEVELOP FPS Ap s serem lan ados e com o objectivo de criar um cen rio de teste interrompemos a sua l gica atrav s dos bot es de controlo da consola global e observamos no mapa global as suas posi es para identificar qual o waypoint mais perto do dummy Atrav s do mapa da consola individual do hunter colocamo lo perto do dummy para que possamos testar se ao ver o inimigo come a a disparar Com a chegada do hunter ao destino podemos observar se v o seu inimigo atrav s da informa o sensorial contida na sua consola Caso n o o veja devido a estar de costas para o alvo podemos aplicar pequenas rota es com o controlo manual de modo a obter o estado de visualiza o do inimigo Quando o hunter tem no seu estado
73. processo de decis o da ac o na selec o do caminho pathfinding na an lise t ctica e finalmente na coordena o de um grupo Em seguida ser o apresentadas algumas plataformas de desenvolvimento de videojogos comerciais que s o representativas do que existe no mercado nomeadamente o UDK o Unity 3D e o Panda3D Ser o descritas as suas funcionalidades de monitoriza o e controlo do comportamento dos NPCS bem como os m todos de debugging que disponibilizam Para fechar ser apresentada a plataforma de jogos FPS Unreal Tournament 2004 que foi utilizada neste trabalho bem como a interface de programa o Pogamut que permite a programa o na linguagem Java dos agentes para a Unreal Tournment 2004 O Jess tamb m escrito em Java que a linguagem de programa o baseada em regras e que foi utilizada para escrever os scripts dos agentes ser tamb m objecto de destaque Finalmente ser feita uma descri o da ferramenta AGLIPS que foi uma fonte de inspira o para este trabalho embora para um contexto completamente diferente o desenvolvimento de comportamentos de rob s em grupo 2 1 T cnicas usadas em intelig ncia artificial para videojogos A maioria dos videojogos segue uma arquitectura gen rica ver figura 1 onde tradicionalmente as componentes respons veis pela f sica e gr ficos ocupam a maioria dos recursos quer a n vel de desenvolvimento quer a n vel da execu o do pr prio jogo A componente d
74. quipa de agentes o movimento em forma o diamante existe agora espa o para aplicar a DEVELOP FPS e desenvolver comportamentos mais sofisticados para equipas como o contacto com o inimigo a aquisi o de armas e muni es a resolu o de objectivos como a captura da bandeira inimigo e por a adiante 56 Bibliografia AiGameDev07 Top 10 Most Influential AI Games http aigamedev com open highlights top ai games Last visited 06 2011 AiGameDev10 Todays AI Game Development http aigamedev com open upcoming plus coming shortly Last visited 06 2011 AiGameDev11 Open Challenges in First Person Shooter FPS AI Technology http aigamedev com open editorial open challenges fps Last visited 06 2011 AlGames02 Artificial Intelligence in Games document http www cs rochester edu brown 242 assts termprojs games pdf Last visited 07 2011 Alexander06 Alexander B 2006 Flow Fields for Movement and Obstacle Avoidance In Rabin S ed AlGame ProgrammingWisdom 3 Charles RiverMedia 159 172 Arrabales09 Arrabales R Ledezma A Sanchis A Towards Conscious like Behavior in Computer Game Characters In Proceedings of the IEEE Symposium on Computational Intelligence and Games pp 217 224 2009 Barreiros05 Barreios J Percep o e Ac o perspectivas te ricas e as quest es do desenvolvimento e da aprendizagem Faculdade de Motricidade Humana Universidade T cnica de Lisboa
75. r que cont m esta informa o ter que enviar uma mensagem para que os restantes elementos se possam movimentar Exemplo da mensagem para os elementos se movimentarem 0 0 9 posi oL der rota oL der 47 O l der transmite a mensagem todos os segundos de modo a cada elemento quando recebe esta mensagem tipo zero saber que no conte do ter a posi o e rota o do l der e proceder movimenta o A movimenta o calculada atrav s do sistema que se segue Angulo Posicao a 80 gt Angulo Lider Angulo Desvio X ider Offset x cos Angulo posicao se 90 AngulOprien 270 Ka Offset x cos Angulo posicao Caso contr rio Yo Offset x sin Angulo posicao se O Angulopiie 180 er Offset x sin Angulo posicao Caso contr rio O ngulo de desvio corresponde ao grau de deslocamento a que queremos que o bot esteja perante a direcg o do l der ngulo do l der A partir desta informag o calculamos o ngulo onde supostamente dada uma dist ncia em relac o ao l der Offset o bot ir posicionar se A figura 20 ilustra a rela o dos ngulos ngulo L der ngulo de ngulo de desvio do desvio do elemento 2 elemento 4 Elemento 4 Elemento 2 Elemento 3 ngulo de desvio do elemento 3 Zero Figura 20 Circulo trigonom trico aplicado para realizar a forma o diamante 48 Depois de realizados e aplic
76. rdenadas dos waypoints para as coordenadas do mapa da consola global As posi es dos bots s o obtidas quando estes criam uma liga o com a consola global permitindo assim o envio da sua posi o Os bot es Pause All e Resume All respectivos terceira funcionalidade sempre que pressionados enviam uma mensagem de interrup o ou de retoma a todos os bots conectados interrompendo ou retomando toda a l gica comportamental O acesso consola individual de cada bot obtido atrav s da selec o do id respectivo da lista de bots conectados Ao seleccionar o id enviada uma mensagem para o respectivo bot de modo a tornar a sua consola individual vis vel ao utilizador Este tipo de selec o faz com que apenas possa haver uma consola individual vis vel o que implica que o utilizador para observar v rias consolas ter de seleccion las de forma sequencial satisfazendo assim a quarta e ltima funcionalidade Consola individual A consola individual ver figura 12 oferece funcionalidades para a visualiza o do estado e controlo do bot de modo a proporcionar mecanismos que facilitem o debugging dos comportamentos Estas funcionalidades passam por adquirir e mostrar o estado do bot dados intr nsecos por exemplo n vel de energia dados sensoriais se v algum inimigo e dados sobre os comportamentos realizados que comportamento foi escolhido dado o estado do bot e permitir o controlo do bot atrav s de f
77. riar os comportamentos inteligentes em Jess utilizando os mecanismos dispon veis na linguagem a seguinte e Nos factos a informa o sensorial e intr nseca do agente por exemplo o que v se ouve alguma coisa quantas muni es tem o n vel de energia etc e Nas regras a reac o composta por factos e fun es por exemplo se o agente v um inimigo ent o dispara contra o inimigo 39 e Nas fun es as ac es que o agente pode executar normalmente invocadas quando alguma regra escolhida e Nos m dulos Neste projecto foram usados tr s m dulos Init Perception e Action Os m dulos correspondem a um grupo de regras sempre que um m dulo obt m o foco apenas essas regras podem ser disparadas o Init Este m dulo respons vel por executar todas a fun es necess rias para a inicializa o do bot o Perception Este m dulo respons vel pela cria o dos factos com a informa o sensorial e intr nseca do bot ou por informa o que o utilizador ache relevante para a activa o das ac es o Action Este m dulo respons vel por definir as ac es que o bot pode tomar dependendo dos factos criados pelo m dulo percep o Estas escolhas foram tomadas com base no esquema b sico do funcionamento perceptivo motor Barreiros05 Devido s restri es impostas pela arquitectura Pogamut e com os m dulos definidos Init Perception e Action a classe agent fica obrigator
78. rma o intr nseca e sensorial do bot Para uma boa monitoriza o sobre a execu o de um comportamento fundamental ter acesso informa o interna tais como o n vel de energia do bot a sua posi o e rota o se est parado etc A informa o interna respons vel pela transi o dos comportamentos por exemplo se a energia do bot estiver abaixo de 20 unidades o bot come a a procurar itens que possam recuperar a energia Do mesmo modo igualmente importante aceder informa o sensorial como por exemplo se v um inimigo ou uma arma se ouve alguma coisa etc A janela do estado do bot apresenta o ID e nome do agente seguido da informa o anteriormente descrita Ver figura 14 Bot Sensory Information ID 219 Name ThesisBotWithjess 2 Energy 100 Is moving true Hears anything false Sees enemies false Sees Weapon true Is firing false Ammo 100 Location 121 79 522 1 78 1 Rotation 65556 0 2965 0 0 0 Figura 14 Informa o sensorial sobre o bot Esta foi a informa o que consider mos mais importante para ser exibida mas como iremos explicar existe um m todo para monitorizar outro tipo de informa o usando a mini esta o de comando Monitoriza o do Jess Para que se possam suportar scripts escritos em Jess bastante til poder monitorizar os factos contidos na mem ria de trabalho para ser poss vel consultar o estado da m quina de infer ncia do Jess a
79. rolar um bot num dado instante 4 Disponibilizar o acesso consola individual de cada agente interveniente na experi ncia permitindo o controlo e monitoriza o individual do bot seleccionado a qualquer altura Estas funcionalidades permitem testar comportamentos colectivos porque permitem acompanhar e controlar todos os intervenientes numa experi ncia Para mais detalhes ver a sec o 3 3 4 Aplica o da DEVELOP FPS para comportamentos colectivos De forma a satisfazer a primeira funcionalidade come amos por definir seis par metros nomeadamente o comportamento que o bot deve executar o nome a que o comportamento est associado o n mero de bots intervenientes na experi ncia o estado inicial do bot estes quatro par metros s o recolhidos atrav s de um ficheiro XML ver tabela 6 o n mero de itera es e a dura o de cada itera o Estes dois ltimos par metros s o adquiridos atrav s da interface da consola global Estes par metros permitem realizar v rias itera es sobre uma experi ncia com m ltiplos agentes permitindo uma avalia o probabil stica de v rios comportamentos para uma an lise mais detalhada O par metro estado inicial do bot tem como objectivo definir se o bot deve ou n o come ar parado isto permite que o utilizador possa preparar um cen rio de teste sem que o bot execute os seus comportamentos 32 Tabela 6 Ficheiro XML com os par metros necess rios para a experi n
80. rtamento por exemplo o hunter n o disparava o problema deve se programa o das fun es contidas na mesma Com o problema restringido ac o dessa regra basta ent o executar as suas fun es atrav s da linha de comandos para averiguar qual delas que est a provocar o mau funcionamento do comportamento Utilizando o mesmo exemplo atr s descrito a regra do hunter teria uma fun o do g nero fire to enemy enemy position na parte direita ac o da regra Ao executar esta fun o na linha de comandos poder amos observar se o bot disparava ou n o contra o inimigo detectando assim se o problema da fun o em quest o para proceder ent o repara o da mesma Para que a DEVELOP FPS seja mais eficaz a identificar problemas o desenho dos comportamentos deve ser modular isto aconselh vel existir uma regra para cada ac o uma regra para mover para disparar para comunicar etc Deste modo mais simples restringir o problema para posteriormente proceder sua repara o A DEVELOP FPS al m de permitir o teste dos comportamentos tamb m os avalia Os tr s comportamentos constru dos foram submetidos a uma experi ncia com tr s repeti es de forma a obter os seus desempenhos que podemos consultar na tabela 10 Tabela 10 Output de uma experi ncia decorrida com tr s itera es Allvs Al Moniz_3 hunter clp Died 0 Urbano_4 dodgeBehavior clp Still Alive 72 CTT_5S dummy clp Died 0 Ti
81. s Resumindo tanto o escudo como a energia t m dois limites de pontua o e existem itens para regenerar ambos O jogador tem ent o um imenso leque de estrat gias que pode formar conforme o objectivo proposto 24 2 3 2 Pogamut V 2 O Pogamut uma API uma interface de programa o que permite a programa o de agentes na linguagem Java para o videojogo Unreal Tournament 2004 Usa a interface GameBots para poder comunicar com o jogo Unreal Tournament 2004 O GameBots ver Figura 8 providencia um protocolo de rede baseado em texto que permite conectar com o UT2004 e controlar os agentes em jogo atrav s de mensagens Pogamut09 Gemrot11 O Pogamut al m de facilitar a programag o dos bots para o jogo Unreal Tournament 2004 em JAVA tamb m j foi usada como ferramenta de implementa o de comportamentos inteligentes Burkert Arrabales09 Brom09 considerada como um excelente ponto de partida para a programac o de bots e para pesquisa de comportamentos multiagentes Hindriks11 Kaminka02 LJ Figura 8 Arquitectura Unreal Tournament 2004 Pogamut O IDE Ambiente integrado de desenvolvimento facilita ajuda na programa o em quest o o NetBeans que o requerido pelo Pogamut v2 Pogamut09 2 3 3 Sistemas de regras A maioria das linguagens de programa o que usamos s o imperativas ou orientada a objectos em que dizemos ao computador o que deve fazer como deve fazer e por que ordem N
82. s de desenvolvimento de videojogos do g nero FPS descrevendo as funcionalidades que oferecem para promover o desenvolvimento de comportamentos inteligentes para agentes virtuais e Cap tulo 3 Trabalho realizado Neste cap tulo feita inicialmente a descri o da DEVELOP FS a sua arquitectura as v rias funcionalidades que s o ilustradas com v rios exemplos Fecharemos o cap tulo aplicando a ferramenta que constru mos no desenvolvimento dos comportamentos individuais e um e equipa e Cap tulo 4 Discuss o e trabalho futuro Neste cap tulo s o apresentadas as conclus es do trabalho elaborado referindo os benef cios que a ferramenta desenvolvida traz para o desenvolvimento de comportamentos e prop e etapas para o trabalho futuro e Bibliografia e Ap ndice Manual do utilizador Neste ap ndice apresentado o manual do utilizador da ferramenta desenvolvida as regras de instala o e execu o da ferramenta al m de uma descri o pormenorizada de todas as funcionalidades Capitulo 2 Neste cap tulo apresentaremos um conjunto de t cnicas usadas na componente de intelig ncia artificial em videojogos que se referem a tr s aspectos decisivos dos videojogos 1 a representa o do meio ambiente 11 o controlo da movimenta o dos agentes seja individual ou em grupo e iii a defini o do comportamento No que concerne defini o do comportamento ser o referidas diferentes t cnicas utilizadas no
83. s na mesma equipa nesta situa o a itera o s termina com o tempo estipulado pelo utilizador Estas situa es podem ocorrer caso o utilizador pretenda testar o bot ou bots sem interven o de inimigos por exemplo se quiser testar a movimenta o dos bots Optamos por recolher os seguintes dados provenientes de cada itera o da experi ncia o tipo de jogo All vs All ou TeamMatch para destacar os comportamentos individuais e cooperativos o nome e o comportamento de cada bot interveniente na experi ncia que servem como identifica o o estado final vivo ou morto e o n vel de 33 energia de forma a obter o desempenho do bot e qual o tempo que durou a itera o til para classificar a efic cia dos comportamentos ver tabela 7 Tabela 7 Informa o apresentada sobre cada itera o da experi ncia Type of game Allvs All AgentName File Behavior Urbano_4 dodgeBehavior clp Status EnergyLeft Still Alive 72 Time elapsed Time elapsed 55 s Com o intuito de proporcionar a vista de topo segunda funcionalidade sobre o cen rios e os bots intervenientes a consola global quando inicializada cria uma liga o com o servidor do jogo Unreal Tournament 2004 para obter as coordenadas dos waypoints presentes no cen rio Quando a localiza o dos waypoints obtida e devido diferen a entre os sistemas de eixos do jogo e da consola global realizada uma transla o e uma mudan a de escala das coo
84. un es que realizam deslocamento do bot para qualquer parte do cen rio e de mecanismos que permitem o utilizador executar as suas fun es para um tipo de controlo mais espec fico por exemplo uma fun o que fa a com que o bot salte 34 Facts Activations Deffunctions MAIN initial fact a deffunction get enemy ocation MAIN bot see enemy FALSE hear a Activation ACCAO go to nav point f 17 f 3 time 36 salience 100 deffunction turn to enemy Hide Facts Hide Activations Hide Deffunctions MAIN percepcao X Fired Rule go to nav point deffunction turn to enemy2 m deffunction show deftemplates Manual Control Not seeing weapon generate random nav point Bot Sensory Information TRUE A TRUE ID 218 I frue Name ThesisBotWithJess_7 TRUE Energy 115 TRUE Is moving true s TRUE Hears anything false Sees enemies false TRUE Sees Weapon true 1s firing false Ammo 100 Location 1179 13 750 81 49 9 Clear Window Rotation 65298 0 64275 0 0 0 7 ESCHE RUE WEN Figura 12 Exemplo da consola individual A consola individual composta pelos seguintes componentes os bot es de controlo observ veis na zona inferior da consola a mini esta o de comando ao centro representada por uma linha de comandos uma janela localizada acima da linha de comandos que respons vel pelo output a informa o sensorial sobre o bot localizada n
85. ut vel e basta seguir os passos descritos no instalador 3 Pogamut v 2 4 1 Na instalag o ter que colocar a directoria onde o videojogo Unreal Tournament 2004 foi instalado Instalac o programador Se for para realizar alguma alterac o s consolas como pr pria arquitectura do projecto ent o dever proceder instala o dos seguintes programas 1 Unreal Tournament 2004 a Duplo clique no execut vel e basta seguir os passos descritos no instalador 2 JAVA SDK v6 ou superior Pode fazer o download aqui http www oracle com technetwork java javase downloads index html 63 a Duplo clique no execut vel e basta seguir os passos descritos no instalador 3 NetBeans v6 0 1 vers o Java SE 26MB suffices IDE requerido pelo Pogamut v2 4 1 para programar os bots para o Unreal Tournament 2004 a Para Windows 7 apenas a distribui o ZIP funciona 4 Pogamut v 2 4 1 Biblioteca que disponibiliza o acesso programa o de bots para o videojogo Unreal Tournament 2004 a Na instala o ter que colocar a directoria onde o videojogo Unreal Tournament 2004 foi instalado b Tamb m ter de colocar a directoria onde o NetBeans foi instalado 5 Jess API Incluir as bibliotecas Jess jar e jsr94 jar no projecto do NetBeans Para usufruir do trabalho realizado basta aceder ao projecto este tamb m contido no cd que acompanha esta disserta o Correr a aplica o 1 Executar o Unreal Tournam
86. vidual podendo tamb m faz lo em termos de grupo atrav s de um sistema de envio de mensagens broadcasting Esse acesso permanente aos rob s permite parar e resumir a execu o dos rob s tanto individualmente como em bloco acedendo aos estados dos diversos rob s e permitindo alterar os seus comportamentos em tempo real tanto em bloco como individualmente Por outro lado permite repetir um conjunto de experi ncias partindo de situa es iniciais configur veis e heterog neas e recolher dados importantes para avaliar e comparar posteriormente o desempenho de diversos tipos de comportamentos 27 28 Capitulo 3 Este cap tulo agrega os t picos referentes ao trabalho realizado na investiga o das vantagens de uma ferramenta de desenvolvimento de comportamentos para personagens virtuais especificamente movimenta o em grupo e comportamentos de ataque no g nero FPS Come amos por descrever a ferramenta DEVELOP FPS referindo a sua arquitectura que composta por quatro componentes a consola global a consola individual a componente Jess e o servidor do jogo Unreal Tournament 2004 As funcionalidades da consola global controlo e monitoriza o sobre todos os intervenientes na experi ncia s o descritas na sec o seguinte Na mesma sec o descrita a consola individual e a sua import ncia para manipular individualmente cada agente que interv m na experi ncia No que diz respeito utiliza o da linguagem Jess
87. visited 06 2011 Wikipediall FPS Game description http en wikipedia org wiki First person_shooter Last visited 06 2011 WoW10 Whitehead II J Roe R World of Warcraft Programming A Guide and Reference for Creating WoW Addons Wiley 2010 Woyach08 Immersion through Video Games http illumin usc edu article php articleID 103 Last visited 06 2011 Wright00a Wright L Marshal J RC a rule based language for game Al Sony Computer Entertainment Europe 2000 Wright00b Wright I Marshal J The execution kernel of RC Rete a faster Rete with treat as special case Department of Earth Science and Engineering at Imperial College London 2000 62 Anexo Manual de utilizador Requisitos recomendados Processador Dual Core 3 00GHz Mem ria RAM 4 GB DDR2 Placa Gr fica ATI Radeon HD 4550 Ou equivalente Espa o em disco 7 GB de mem ria livre Instala o utilizador Para poder usufruir tanto da consola individual com da consola global para assistir no desenvolvimento de bots escritos em Jess para o videojogo Unreal Tournament 2004 ter de instalar os seguintes programas todos os ficheiro necess rios est o presentes no cd que acompanha esta disserta o 1 Unreal Tournament 2004 a Duplo clique no execut vel e basta seguir os passos descritos no instalador 2 JAVA Runtime v6 ou superior Pode fazer o download aqui http www java com pt BR download index jsp a Duplo clique no exec
88. waypoints Pathfinding fazendo com que o l der se movimente de waypoint em waypoint evitando a colis o com os objectos da arena mas o mesmo j n o acontece com os restantes elementos pois estes movimentam se fora dos waypoints Existem duas abordagens para contornar as colis es ou realizamos um algoritmo que evita a colis o ou detectamos a colis o e realizamos um comportamento cred vel 49 Existem v rios m todos para evitar as colis es como o Pathfinding mas dificilmente s o aplicados para realizar a forma o em diamante na ntegra Para isso ter amos que ter todos os waypoints numa disposi o de diamante losango Para que se consiga aplicar a forma o em diamante na ntegra detectar a colis o por impacto do bot num obst culo e proceder a um movimento cred vel ser o mais adequado J oe o S a Obst culo Y Dh I u Figura 21 Exemplo de como um bot na formac o se comporta quando detecta um obst culo De forma a proporcionar um comportamento cred vel quando o bot sofre de um impacto com um obst culo este realiza uma rota o de 180 graus ver figura 21 I para proporcionar uma sensa o em que se encostou parede para cobrir os restantes elementos da equipa enquanto estes avan am Para que o bot bloqueado possa retomar a forma o o l der fica respons vel por verificar quando que a posi o na forma o do elemento bloqueado est livre Esta verifica o
89. xa em Cunha e em V Ver figura 6 Caso o sentido de orienta o do agente seja importante por exemplo o agente s reage quando detecta um inimigo na sua linha de vis o ent o existem tr s tipos de forma es linha staggered voltados para o interior ou para o exterior Ver figura 6 Para o caso de haver v rias unidades de tipos diferentes normalmente as unidades mais fracas e de longo alcance s o posicionadas atr s das forma es ou no centro unidades mais velozes nos flancos para que tenham mais liberdade de movimento quando atacam o inimigo ou mesmo algumas forma es podem requerer unidades espec ficas para posi es espec ficas A perda da integridade da forma o durante os movimentos a chave para o sucesso de um bom movimento incluindo as reac es para superar obst culos pontos de estrangulamento e combates Dawson02 AAAAA A A A AMMMA Y A 44 Formacao em Linha A Ar A A A A A A Flanco direito A A A A A A Flanco esquerdo AA AAAAA AA AAAAA A AAA A A a A AA A ata We A A A S A 4 AD AAAAA Forma o em V Forma o em Cunha Forma o em Coluna Voltados para o interior Forma o em Caixa A A Pys Voltados para o exterior Figura 6 Forma es mais comuns 16 Outros desafios em relac o ao movimento Nem sempre os movimentos sobre os waypoints se tornam os mais realistas muitas vezes devido sua deficiente coloca o Uma maneira de fazer com que as curvas entre OS waypoi

Download Pdf Manuals

image

Related Search

Related Contents

Zotac ZBOXHD-ID11  PAA  CABARET SAUVAGNON Vous avez une carte d`adhérent, vous êtes  ワイヤレス赤外線暗視IPネットワークカメラ  Bedienungsanleitung 9122066  Répondre à un appel à projets  La gare de Hombourg, une réaffectation réussie La ligne 38, un  Documentation et spécifications techniques  photokorn - Benutzerhandbuch 1.9.x - Rev61  説明書ダウンロード  

Copyright © All rights reserved.
Failed to retrieve file