ROGERYOSHIAKIUEDA - uel.br · content generation. In: Proceedings of the The Third Workshop on...

58
ROGER YOSHIAKI UEDA UTILIZAÇÃO DE TÉCNICAS DE GERAÇÃO PROCEDURAL DE CONTEÚDO PARA CONSTRUÇÃO DE ROTEIRO DE JOGO LONDRINA 2018

Transcript of ROGERYOSHIAKIUEDA - uel.br · content generation. In: Proceedings of the The Third Workshop on...

ROGER YOSHIAKI UEDA

UTILIZAÇÃO DE TÉCNICAS DE GERAÇÃOPROCEDURAL DE CONTEÚDO PARA CONSTRUÇÃO DE

ROTEIRO DE JOGO

LONDRINA2018

ROGER YOSHIAKI UEDA

UTILIZAÇÃO DE TÉCNICAS DE GERAÇÃOPROCEDURAL DE CONTEÚDO PARA CONSTRUÇÃO DE

ROTEIRO DE JOGO

Trabalho de Conclusão de Curso apresentadoao curso de Bacharelado em Ciência da Com-putação da Universidade Estadual de Lon-drina para obtenção do título de Bacharel emCiência da Computação.

Orientador: Prof. Dr. Jacques DuílioBrancher

Coorientador: Yago Henrique Pereira

LONDRINA2018

Ficha de identificação da obra elaborada pelo autor, através do Programa de GeraçãoAutomática do Sistema de Bibliotecas da UEL

Ueda, Roger Yoshiaki.Utilização de técnicas de geração procedural de conteúdo para construção de roteiro dejogo / Roger Yoshiaki Ueda. - Londrina, 2018.56 f.

Orientador: Jacques Duílio Brancher.Coorientador: Yago Henrique Pereira.Trabalho de Conclusão de Curso (Graduação em Ciência da Computação) -

Universidade Estadual de Londrina, Centro de Ciências Exatas, Graduação em Ciência daComputação, 2018.

Inclui bibliografia.

1. GPC - TCC. 2. Geração Procedural de Conteúdo - TCC. 3. Roteiro de Jogos Digitais- TCC. I. Brancher, Jacques Duílio. II. Pereira, Yago Henrique. III. Universidade Estadual deLondrina. Centro de Ciências Exatas. Graduação em Ciência da Computação. IV. Título.

ROGER YOSHIAKI UEDA

UTILIZAÇÃO DE TÉCNICAS DE GERAÇÃOPROCEDURAL DE CONTEÚDO PARA CONSTRUÇÃO DE

ROTEIRO DE JOGO

Trabalho de Conclusão de Curso apresentadoao curso de Bacharelado em Ciência da Com-putação da Universidade Estadual de Lon-drina para obtenção do título de Bacharel emCiência da Computação.

BANCA EXAMINADORA

Orientador: Prof. Dr. Jacques DuílioBrancher

Universidade Estadual de Londrina

Prof. Ms. Fábio Cezar MartinsUniversidade Estadual de Londrina

Prof. Dr. Daniel dos Santos KasterUniversidade Estadual de Londrina

Londrina, 20 de dezembro de 2018.

Este trabalho é dedicado às crianças adultasque, quando pequenas, sonharam em se

tornar cientistas.

AGRADECIMENTOS

Primeiramente os agradecimentos são direcionados à minha família, principalmenteao meu irmão que demonstrou apoio a minha vida acadêmica. Também ao meu orientadorProf. Jacques Duílio Brancher pela paciência e confiança no desenvolver deste trabalho.Por fim, agradeço ao coorientador Yago Henrique Pereira pelo auxílio durante a IniciaçãoCientífica e orientação durante este trabalho.

“Não vos amoldeis às estruturas destemundo, mas transformai-vos pela renovação

da mente, a fim de distinguir qual é avontade de Deus: o que é bom, o que Lhe é

agradável, o que é perfeito.(Bíblia Sagrada, Romanos 12, 2))

UEDA, R. Y.. Utilização de técnicas de geração procedural de conteúdo paraconstrução de roteiro de jogo. 2018. 56f. Trabalho de Conclusão de Curso (Bachare-lado em Ciência da Computação) – Universidade Estadual de Londrina, Londrina, 2018.

RESUMO

Já é sabido que o uso das técnicas de Geração Procedural de Conteúdo (GPC) é co-mumente utilizada na indústria de jogos digitais, devido à sua eficiência em solucionarproblemas e, consequentemente, reduzir custos e tempo de desenvolvimento. Essa téc-nica refere-se a um programa de computador que possui a capacidade de automatizaro processo de criação de conteúdo do jogo, reduzindo o esforço do trabalho manual dosroteiristas, modeladores 3D, designers, entre outros. A geração procedural pode ser útilem outras situações (compactação de dados do jogo, economizar espaço de memória, etc),porém a implementação da técnica de GPC exige um domínio sobre o problema que seráresolvido, pois para cada tipo de problema existe um tipo de algoritmo a ser considerado.A proposta desta pesquisa consiste na aplicação de tal técnica para a automação de cons-trução de personagens e roteiros para um serious game. O objetivo desse jogo é transmitirum conteúdo educativo sobre lesões de pele para os médicos da atenção primária à saúde.Dentro do jogo existem personagens que são pacientes que possuem diversos fenótipos emanchas de pele, e o jogador deve analisar se a mancha contida em um paciente é umcâncer (melanoma), e posteriormente decidir se esse paciente deve ser encaminhado parao setor de dermatologia ou não. Já a implementação da técnica fundamenta-se em geraresses pacientes e os roteiros com diferentes particularidades, levando em consideração onível de conhecimento sobre as lesões de pele que o jogador possui para propiciar educa-ção e diversão adaptada a ele. Os resultados apresentados neste trabalho são apenas ostestes do uso dos algoritmos implementados e não são resultados práticos, uma vez que odesenvolvimento do jogo não foi finalizada durante a escrita deste trabalho.

Palavras-chave: GPC. Geração Procedural de Conteúdo. Roteiro de Jogos Digitais.

UEDA, R. Y.. Use of procedural generation techniques for game script cons-truction. 2018. 56p. Final Project (Bachelor of Science in Computer Science) – StateUniversity of Londrina, Londrina, 2018.

ABSTRACT

It is well known that the use of Procedural Content Generation (PCG) techniques is com-monly used in the digital gaming industry because of its efficiency in solving problems andconsequently reducing development costs and time. This technique refers to a computerprogram that has the ability to automate the game’s content creation process, reducingthe manual effort of writers, 3D modelers, designers, and others. The procedural gener-ation can be useful in other situations (compression of game data, save memory space,etc.), but the implementation of the PCG technique requires a mastery over the problemthat will be solved, because for each type of problem there is a type algorithm to be con-sidered. The proposal of this research consists in the application of such technique for theautomation of construction of characters and scripts for a serious game. The objective ofthis game is to convey educational content about skin lesions to primary care physicians.Within the game there are characters who are patients that have different phenotypesand skin blemishes, and the player must analyze if the stain contained in a patient isa cancer (melanoma), and subsequently decide if that patient should be referred to thedermatology sector or not. The implementation of the technique is based on generatingthese patients and the scripts with different peculiarities, taking into consideration thelevel of knowledge about the skin lesions that the player possesses to provide educationand fun adapted to him. The results presented in this work are only the tests of the useof the implemented algorithms and are not practical results, since the development of thegame was not finalized during the writing of this work.

Keywords: PCG. Procedural Content Generation. Digital Games Script.

LISTA DE ILUSTRAÇÕES

Figura 1 – Três abordagens para geração procedural de conteúdo: construtivo,geração-e-teste e baseado em busca. . . . . . . . . . . . . . . . . . . . . 28

Figura 2 – Operação de crossover. . . . . . . . . . . . . . . . . . . . . . . . . . . . 29Figura 3 – Operação de mutação. . . . . . . . . . . . . . . . . . . . . . . . . . . . 29Figura 4 – Exemplo de uma restrição de vinculação variável. . . . . . . . . . . . . 31Figura 5 – Exemplo de uma ameaça, cujo o operador Sa é o passo ameaçador à

uma ligação causal (Sp, Q, Sc). . . . . . . . . . . . . . . . . . . . . . . 32Figura 6 – Imagem de um melanoma. . . . . . . . . . . . . . . . . . . . . . . . . . 33Figura 7 – Exemplos de fenótipos para a formação de um personagem. . . . . . . 36Figura 8 – Fluxograma do algoritmo para a geração procedural de pacientes. . . . 37Figura 9 – Grafo de ações usadas para a geração do roteiro do jogo. . . . . . . . . 39Figura 10 – Fluxograma do algoritmo para a geração de um roteiro. . . . . . . . . . 41

LISTA DE TABELAS

Tabela 1 – Informação clínico da Figura 6. . . . . . . . . . . . . . . . . . . . . . . 33Tabela 2 – Representação de dados de uma lesão da pele. . . . . . . . . . . . . . . 35Tabela 3 – Representação de dados de modelo de paciente. . . . . . . . . . . . . . 35Tabela 4 – Representação de dados da cor de pele. . . . . . . . . . . . . . . . . . . 35Tabela 5 – Representação de dados de paciente. . . . . . . . . . . . . . . . . . . . 36Tabela 6 – Representação do vértice (ação). . . . . . . . . . . . . . . . . . . . . . 39Tabela 7 – Descrição de cada vértice do grafo de ações. . . . . . . . . . . . . . . . 40Tabela 8 – Amostra de lesões para a realização do teste. . . . . . . . . . . . . . . 46Tabela 9 – Amostra de lesões para a realização do teste (continuação). . . . . . . 47Tabela 10 – Primeira jogada para a entrada do algoritmo. . . . . . . . . . . . . . . 47Tabela 11 – Saída obtida pelo algoritmo com a entrada da Tabela 10. . . . . . . . . 48Tabela 12 – Saída obtida pelo algoritmo com a entrada da Tabela 11. . . . . . . . . 48Tabela 13 – Saída obtida pelo algoritmo com a entrada da Tabela 12. . . . . . . . . 48Tabela 14 – Saída obtida pelo algoritmo com a entrada da Tabela 13. . . . . . . . . 49Tabela 15 – Saída obtida pelo algoritmo com a entrada da Tabela 14. . . . . . . . . 49Tabela 16 – Primeira entrada usada para o algoritmo do experimento 2. . . . . . . 49Tabela 17 – Segunda entrada usada para o algoritmo do experimento 2. . . . . . . . 49Tabela 18 – Primeira solução selecionada do experimento 2 da primeira entrada. . . 50Tabela 19 – Segunda solução selecionada do experimento 2 da primeira entrada. . . 50Tabela 20 – Terceira solução selecionada do experimento 2 da primeira entrada. . . 50Tabela 21 – Primeira solução selecionada do experimento 2 da segunda entrada. . . 51Tabela 22 – Segunda solução selecionada do experimento 2 da segunda entrada. . . 51Tabela 23 – Terceira solução selecionada do experimento 2 da segunda entrada. . . 52

LISTA DE ABREVIATURAS E SIGLAS

GPC Geração Procedural de Conteúdo

GPCB Geração Procedural de Conteúdo baseado em Busca

PNJ Personagem Não Jogável

AE Algoritmo Evolucionária

PPO Planejamento Parcialmente Ordenado

SUMÁRIO

1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2 FUNDAMENTAÇÃO TEÓRICA . . . . . . . . . . . . . . . . . 252.1 Taxonomia de GPC . . . . . . . . . . . . . . . . . . . . . . . . . . 252.1.1 Online e Offline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252.1.2 Conteúdo necessário e opcional . . . . . . . . . . . . . . . . . . . . . . 262.1.3 Seeds aleatórias e vetores de parâmetros . . . . . . . . . . . . . . . . . 262.1.4 Criação de elemento genérico e adaptativo . . . . . . . . . . . . . . . . 262.1.5 Geração estocástica e determinística . . . . . . . . . . . . . . . . . . . 272.1.6 Construtivo e Geração-e-teste . . . . . . . . . . . . . . . . . . . . . . . 272.2 Geração Procedural de Conteúdo baseado em Busca (GPCB) 272.2.1 Algoritmo de busca . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282.2.2 Representação de conteúdo . . . . . . . . . . . . . . . . . . . . . . . . 292.2.3 Função de avaliação . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292.3 Planejamento Parcialmente Ordenado (PPO) . . . . . . . . . . 302.3.1 Metodologia de PPO . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3 METODOLOGIA . . . . . . . . . . . . . . . . . . . . . . . . . . . 333.1 Criação de personagens . . . . . . . . . . . . . . . . . . . . . . . . 343.1.1 Genótipo e fenótipo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343.1.2 Processo de criação de PNJs . . . . . . . . . . . . . . . . . . . . . . . 353.1.2.1 Entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363.1.2.2 Filtragem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373.2 Criação de roteiro . . . . . . . . . . . . . . . . . . . . . . . . . . . 383.2.1 Grafo de ações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383.2.2 Entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393.2.3 Criação de planos parciais . . . . . . . . . . . . . . . . . . . . . . . . . 403.2.4 Criação de plano completo . . . . . . . . . . . . . . . . . . . . . . . . 41

4 TESTES, RESULTADOS E ANÁLISE . . . . . . . . . . . . . . 454.1 Experimento 1: Criação de personagens . . . . . . . . . . . . . 454.1.1 Resultados do experimento 1 . . . . . . . . . . . . . . . . . . . . . . . 454.1.2 Análise do experimento 1 . . . . . . . . . . . . . . . . . . . . . . . . . 464.2 Experimento 2: Criação de roteiro . . . . . . . . . . . . . . . . . 494.2.1 Resultados do experimento 2 . . . . . . . . . . . . . . . . . . . . . . . 504.2.2 Análise do experimento 2 . . . . . . . . . . . . . . . . . . . . . . . . . 51

5 CONCLUSÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

23

1 INTRODUÇÃO

Diante do aumento de consumo de jogos digitais [1] também fica evidente o cres-cimento das expectativas dos jogadores pela diversão e desafio, o que resulta em umacomplexidade maior de entretenimento e desenvolvimento para um mercado de larga es-cala que atenda essa demanda. Tendo em vista a ambição pelo lazer do usuário, destaca-seo possível engajamento proporcionado pelo ambiente de jogo, o qual é utilizado pela áreada educação como serious game, visando promover a obtenção de conteúdo ou treinamentoda capacidade do usuário de forma lúdica e agradável [2].

Devido a complexidade do desenvolvimento de um jogo que necessita de diversosrecursos humanos assim como roteiristas, desenhistas, modeladores 3D, programadores,engenheiros de som, entre outros, faz com que envolvam equipes grandes e multidiscipli-nares, exigindo maior custo [3] e tempo de produção [4] de um jogo digital.

Para automatizar o processo de criação de conteúdos de jogo, visando resolverquestões de tempo e custo, o uso da técnica de geração procedural de conteúdo pode serapontada como uma das soluções. Essa técnica, que está sendo investigada na indústriade jogos [5], refere-se à criação automática de conteúdos usando-se algoritmos [6]. Nestecontexto, chamamos de elementos de jogo os itens como mapas [7], veículos [8], armas [9],níveis [10], regras [11], entre outros que façam parte de um determinado jogo.

A geração procedural de conteúdo possui diversas taxonomias: o momento que ageração ocorre dentro do jogo; a maneira de controle do algoritmo; os tipos de conteúdosque podem ser gerados; quais aspectos devem ser considerados; e a forma de avaliação doconteúdo criado. As análises das taxonomias são importantes para a seleção dos métodosmais adaptados à resolução do problema.

A proposta desta pesquisa consiste na aplicação dessa técnica para a automaçãode construção de personagens e roteiros para um desenvolvimento de um serious game, oqual simula um ambiente de atendimento em uma clínica onde o jogador atua como mé-dico. Nesse cenário, o jogador terá como objetivo a decisão de diagnósticos de pacientes,cujo cada um desses pacientes é um personagem não jogável (PNJ). Os pacientes pos-suem diferentes fenótipos (aparência que caracteriza o personagem, como a idade, sexo evestuário), problema (lesão na pele) e missões (objetivos) que o jogador deverá enfrentar.

O trabalho toma como objetivo o uso da técnica de geração procedural de conteúdopara geração de PNJs e roteiros com diversas características, considerando a criação dessesa partir do nível de conhecimento a respeito de lesões de pele do jogador, promovendoum treinamento adequado a sua experiência. Evidentemente, a produção dos conteúdostambém deverá manter a jogabilidade, de tal forma que não atrapalhe a diversão.

24

A seguir é descrita a organização desta proposta: na seção 2 são apresentadasas teorias e conceitos fundamentais para o entendimento do assunto que esta pesquisatrata, igualmente com os trabalhos correlacionados. A seção 3 contém a metodologia paraatingir o propósito desta pesquisa. Na seção 4 são ostentados os resultados da execuçãodos métodos mencionados no capítulo 3. Por fim, na seção 5, a conclusão adquirida diantedesses processos.

25

2 FUNDAMENTAÇÃO TEÓRICA

Segundo os autores de [12], GPC refere-se a uma técnica que envolve algoritmospara a criação de conteúdo ou elemento do jogo com entrada de usuário limitada ouindireta. O termo conteúdo ou elemento em um jogo, como já apresentado alguns exemplosna Capítulo 1, são todos os aspectos que afetam a jogabilidade, estes podem ser terrenos,mapas, níveis, histórias, diálogos, missões, personagens, conjuntos de regras, dinâmicas earmas [6].

Para o bom funcionamento desse método, é importante considerar as restriçõesdo jogo para o qual está sendo gerado [12]. Particularmente, o elemento criado não devecontrariar com o que foi planejado; um exemplo de contradição é a geração da mapa deuma caverna que não existe a saída, por conseguinte o jogador que deveria explorar e saira caverna acaba ficando preso.

2.1 Taxonomia de GPC

Há diversas finalidades e maneiras de gerar conteúdo em jogos. Para o melhorentendimento e consequentemente seleção de algoritmo mais adaptado a um problemaespecífico, fazer uma estrutura é uma forma útil para acentuar as distinções entre aborda-gens: especificar o momento em que a aplicação de GPC será realizada (online e offline); otipo de elemento a ser gerado (conteúdo necessário e opcional); maneira de controlar a ge-ração (seeds aleatórias e vetores de parâmetros); critérios de geração (criação de elementogenérico e adaptativo); se existe a aleatoriedade (geração estocástica e determinística); eo algoritmo a ser usado (construtivo e geração-e-teste).

Uma observação que a taxonomia de GPC baseada nos que autores de [6, 12, 13]estabeleceram originalmente é sujeita a mudança, à medida que o campo da indústria dejogos crescem e introduzem novas técnicas e tecnologias.

2.1.1 Online e Offline

As aplicações de GPC podem ser realizadas online, durante o tempo de execuçãodo jogo (ou seja, enquanto o usuário está jogando), ou offline, durante o desenvolvimentodo jogo ou antes do início de uma sessão. Uma observação que, neste contexto, os termosonline e offline não estão relacionados com estudo de redes de computadores, apesar dessefator também pode causar impacto na implementação da técnica.

O primeiro caso permite a adaptação dinâmica do nível da fase de um jogo baseadona jogada [14]. Para o último caso, é vantajoso para gerar instâncias complexas como

26

ambientes e mapas [12] que pode resultar em um tempo de resposta mais demorado edifícil de processar durante a jogada.

2.1.2 Conteúdo necessário e opcional

Em um contexto de jogo, é possível categorizar o conteúdo em duas classes: neces-sário e opcional. O primeiro caso é requerido pelo jogador para a progressão no jogo ouconclusão de uma fase e o conteúdo obrigatoriamente deve estar correto [13]. Em um jogode corrida, por exemplo, é indispensável a existência do ponto de chegada para concluira jogada.

Diferentemente da primeira categoria, em opcional é permitido o uso de algoritmoque possivelmente gera elementos que não são necessários para a progressão, oferecendoassim mais diversidade no jogo e a liberdade para o usuário escolher em interagir com oconteúdo ou ignorá-lo.

2.1.3 Seeds aleatórias e vetores de parâmetros

Existem diferentes maneiras de controlar a geração de conteúdo. O uso de umaseed, que em termos computacionais é um valor que especifica a forma de gerar númerosaleatórios, é uma maneira de obter controle sobre o domínio de geração. A sequência denúmeros aleatórios geradas a partir de uma seed é sempre fixa, logo é útil para ter padrãoao produzir elementos.

Uma outra forma é usar como entrada do algoritmo um vetor multidimensional deparâmetros reais para ter o controle da produção da instância. Como exemplo, para criaruma masmorra pode ser usado como entrada parâmetros como o número de salas, ramifi-cações dos corredores, localização de itens, entre outras propriedades [6] que determinamum mapeamento de uma masmorra.

2.1.4 Criação de elemento genérico e adaptativo

Criação de elemento genérico é um modelo de GPC que não leva em consideraçãoo comportamento e a ação do jogador para a geração, cujo é o modelo que a maioria dosjogos comerciais adotam para usar a técnica de GPC pois não é necessário de implementarum mecanismo possivelmente complexo que coleta, armazena e processa informações dasjogadas do usuário.

O padrão adaptativo, pelo contrário, considera a interação do usuário com o jogocom a finalidade de criar conteúdo personalizado para ele. Para esse fim deve existiruma mecânica dentro do jogo que colete dados específicos durante a jogada, que serãoposteriormente usados como parâmetros para a geração de novos elementos.

27

2.1.5 Geração estocástica e determinística

A principal característica que difere o modelo determinístico do modelo estocásticoé de sempre produzir o mesmo resultado, considerando os mesmos parâmetros. Além desseaspecto, esse tipo de algoritmo também pode ser visto como uma forma de compactação dedados [6], pois é possível gerar elementos que desejar apenas especificando os parâmetros,ocupando o espaço de memória somente quando necessário.

Em oposição à determinística, em geral GPC estocástica não permite a recriaçãodo mesmo conteúdo, uma vez que esse modelo envolve aleatoriedade e não é possívelter controle dos acasos. Esse modelo pode ser útil para diversificar as características decada novo elemento gerado, porém ao mesmo tempo é impraticável para gerar conteúdosrepetitivos.

2.1.6 Construtivo e Geração-e-teste

A última distinção de características dentre os algoritmos utilizados é de constru-tivo e geração-e-teste. A primeira deve se certificar de que o conteúdo esteja correto ouaceitável durante a construção do mesmo, ou seja, o processo de geração deve garantirque não irá produzir elemento que corrompe o progresso do jogo.

Diferente do algoritmo anterior, em Geração-e-teste inicialmente é gerada umainstância de conteúdo como candidata, é testada de acordo com determinados critériospreestabelecidos de acordo com o que se deseja no jogo. Se o teste resultar em falha, ainstância é descartada e uma outra é gerada. Esse processo é repetido até que atinga umasolução satisfatória [13].

2.2 Geração Procedural de Conteúdo baseado em Busca (GPCB)

Geração Procedural de Conteúdo baseado em Busca é uma extensão de GPCque funciona como algoritmo de geração-e-teste [15], também podendo ser utilizado umalgoritmo evolucionário ou algoritmo de busca estocástica para encontrar conteúdo comas características que se espera obtê-las.

O processo de busca é realizado da seguinte forma: considere uma solução aceitá-vel para resolver o problema; repetindo e aprimorando uma ou mais soluções possíveis,mantendo as modificações que constitui a solução como melhor e descartando aqueles queprejudicam, eventualmente alcança o resultado desejado. A Figura 1 representa o fluxodos três modelos, GPCB, algoritmo construtivo e geração-e-teste simples.

Conforme [12], os componentes principais de GPCB são as seguintes: algoritmo debusca, representação de conteúdo e função de avaliação. Em seguida serão apresentadosde forma detalhada cada um desses.

28

Figura 1 – Três abordagens para geração procedural de conteúdo: construtivo, geração-e-teste e baseado em busca.

2.2.1 Algoritmo de busca

Em um algoritmo de busca é introduzida um algoritmo evolucionário (AE) que éinspirada na teoria da evolução darwiniana, consistida em seleção natural [12] que sele-ciona os indivíduos que possuem características mais adaptados a determinada condição,eliminando aqueles que são menos apropriados.

Mais especificamente, é usada um algoritmo genético que é uma derivação de AE,cujo a ideia principal baseia-se em fazer um melhoramento genético a partir das repro-duções dos indivíduos, mantendo a população com características para serem soluçõescandidatas ao problema, chamadas de cromossomos [16].

Todos os indivíduos podem sofrer alguma mutação na sua estrutura e são avaliadose testados a cada geração a capacidade para a resolução do problema, através da função deavaliação que concede um valor que indica o quanto o indivíduo está adequado para solu-cionar um problema específico. Os cromossomos que possuem maior aptidão (maior valor)tem a chance alta de reprodução, ao contrário que os menos adaptados serão eliminadosda população.

A formação dos cromossomos é dividida em duas fases, seleção e reprodução. In-divíduos de um grupo podem estar sujeitos a seleção por um determinado critério. Ospares de cromossomos são misturados (crossover) ou cada um pode ser alterada compequenas mudanças aleatórias (mutação). A Figura 2 e Figura 3 representam as duasoperações citadas, respectivamente. Esses procedimentos são realizados com a finalidadede um melhoramento genético.

29

Figura 2 – Operação de crossover. Figura 3 – Operação de mutação.

O processo de busca funciona mesmo que no início os indivíduos são gerados arbi-trariamente e impróprio como solução candidata ao problema, pois uma função de avalia-ção bem projetada será capaz de eliminar os cromossomos e perdurar aqueles que possuemcaracterísticas úteis.

2.2.2 Representação de conteúdo

A representação do conteúdo é uma questão importante em GPCB, pois a escolhada representação afeta a eficiência do algoritmo de busca [12]. Comumente, as soluçõescandidatas ao problema são codificadas como genótipos, que são utilizadas para busca eavaliações eficientes. Posteriormente, os genótipos são convertidos em fenótipos, os indi-víduos reais que foram evoluídos.

Existem diversificadas formas de codificação do genótipo, como o uso de vetor devalores inteiros ou sequencia de bits, e deve conter informações necessárias para realizara busca o qual se pretende obter como resultado.

2.2.3 Função de avaliação

Os cromossomos codificados são avaliados por uma função de avaliação que atribuiuma pontuação que representa um valor de adequação para cada indivíduo da população.O valor obtido é usado para fazer a comparação com outros cromossomos a fim de decidirquais indivíduos serão eliminados ou permanecidos como parte da solução candidata aoproblema.

A projeção dessa etapa é essencial para o funcionamento do GPCB, pois um cri-tério mal elaborado não consegue valorizar corretamente o conteúdo gerado o quão estáapropriado para solucionar um determinado problema. Em consequência, o processo deevolução não funcionará como esperado e não produzirá um resultado adequado. Essedeve ser modelado de tal forma que atenda a necessidade do designer, como a jogabili-dade, regularidade, entretenimento, entre outros aspectos [12].

30

2.3 Planejamento Parcialmente Ordenado (PPO)

O roteiro do jogo desenvolvido se resume à uma sequência de ações que o jogadordeve executar para atingir um determinado objetivo no jogo. Assim como os personagens,o roteiro também é gerado de forma automatizada.

O planejamento significa uma busca por uma sequência de operadores ou açõesque transformam um estado inicial do mundo em um estado de objetivo desejado [17] nocampo da inteligencia artificial. [18] define que um algoritmo de planejamento tem trêsentradas:

∙ uma descrição do mundo em alguma linguagem formal;

∙ uma descrição do objetivo do agente (ou seja, qual comportamento é desejado) emalguma linguagem formal; e

∙ uma descrição das possíveis ações ou operações que podem ser realizadas.

Dada estas entradas, a saída do planejador é uma sequência de ações que, quandoexecutadas em qualquer mundo que satisfaça a descrição do estado inicial, atingirá oobjetivo.

Planejamento parcialmente ordenado é qualquer algoritmo de planejamento quedefine duas ações em um plano sem descrever qual deve ser executada primeiro [19]. Dadoum problema no qual uma sequencia de operações é necessária para atingir uma meta,esse especifica todos os passos que precisam ser tomados, mas estabelece uma ordenaçãodeles somente quando é preciso.

2.3.1 Metodologia de PPO

Planejamento parcialmente ordenado explora um espaço de planos parcialmenteespecificados, cada um emparelhado com uma agenda de metas a serem satisfeitas eameaças a serem evitadas [20]. Inicialmente, o plano contém uma ação fictícia (ponto departida) cujo os efeitos são as condições iniciais dadas, e uma outra operação tambéminventada (chegada) cuja as precondições são os propósitos dados.

Os planos consistem em uma coleção de passos, juntamente com um conjunto deligações causais (que estabelece quais efeitos das operações estão sendo utilizados para ascondições prévias de outras ações), um conjunto de restrições de vinculação variável (v =x, onde v é uma variável em alguma etapa e x é uma constante ou outra variável) e umconjunto de restrições de ordenação (que determina quais etapas tem que ser antes queoutros, e estes devem ser consistentes).

Cada vez que uma meta aberta (precondição) é escolhida na agenda, ela é esta-belecida adicionando uma etapa com um efeito que conecta à essa meta ou usando um

31

operador existente com um efeito que se unifica à essa meta. Quando uma etapa novaou existente é usada para atingir um objetivo, autor de [20] estabelece tópicos que sãoconsideradas como “efeitos colaterais”:

∙ Uma ligação causal (Sp, Q, Sc) é adicionado, sendo que Sp indica a ação que possuio efeito Q, e Sc indica a ação que possui Q como a precondição. Esta conexão servepara detectar uma ameaça que pode interferir nas decisões anteriores quando umoperador é incorporada como parte da solução;

∙ Restrições de vinculação são adicionadas, correspondendo ao unificador do efeito dooperador em questão e ao objetivo alcançado por ele;

∙ Uma restrição de ordenação é adicionada, colocando o passo em questão antes daetapa o qual a precondição é atingida;

∙ As precondições de uma ação são adicionadas à agenda como novos objetivos aserem alcançadas, desde que esta seja nova;

∙ Novas ameaças são determinadas. Para um novo operador e sua ligação causal,outros passos ameaçam o nexo se esses negam a proposição do novo elo. Do mesmomodo há também a possibilidade dos efeitos da nova etapa ameaçar outras ligações,e as novas ameaças são adicionadas na agenda em ambos os casos.

Restrições de vinculação estabelece a identidade entre duas variáveis ou uma va-riável e uma constante no momento em que unificam as metas abertas com os efeitos daação. Um exemplo pode ser visto na Figura 4 que demonstra uma ação “go(school)” querequisita “At” como precondição, e o operador “start” que possui “At(Home)” como efeito.Sendo assim é observável que é possível de unir essa meta com o passo “start”, atribuindoa constante “Home” à variável x (x = Home) e adicionando na restrição de vinculação.

Figura 4 – Exemplo de uma restrição de vinculação variável.

A ideia do PPO baseia-se em selecionar um plano da lista atual de planos (noinício existe apenas o plano baseado nas ações “start” e “end”), selecionar uma meta ouameaça de sua agenda e substituir o plano pelo planos refinados correspondentes. Se oitem selecionado da agenda é uma meta, os planos refinados são aqueles que correspondem

32

a todas as formas de estabelecer a meta usando uma etapa nova ou existente. Caso sejaescolhida uma ameaça à uma ligação causal (Sp, Q, Sc), então deve fazer a ordenação dasetapas para evitar a ameaça. Para isso, o passo ameaçador deve ser posicionada antes deSp (rebaixamento) ou após o Sc (promoção). Um exemplo de ameaça pode ser visto naFigura 5.

(a) Ameaça (b) Rebaixamento (c) Promoção

Figura 5 – Exemplo de uma ameaça, cujo o operador Sa é o passo ameaçador à umaligação causal (Sp, Q, Sc).

Quando são encontradas as inconsistências nas restrições de vinculação e de or-denação, os planos coincidentes são descartados. Uma incoerência na primeira restriçãoocorre quando uma variável possui dois valores ao mesmo tempo, e no segundo caso acon-tece quando surge um ciclo entre as ordenações. O algoritmo de planejamento terminacom sucesso quando consegue criar um plano com restrições consistentes de vinculaçãoe ordenação, e com uma agenda vazia. Ao contrário, o método resulta em falha, ou seja,não encontra solução para atingir o objetivo se nenhum plano permanecer.

33

3 METODOLOGIA

O principal foco do trabalho consiste na criação de roteiros com a inclusão dospersonagens de diversas características e aparências usando GPC. Porém, no período emque este trabalho foi escrito o desenvolvimento do jogo estava em andamento e aindanão tinha definido completamente as mecânicas do aplicativo, portanto nessa seção sãoapresentadas as metodologias para a geração de roteiros e PNJs separadamente.

Com intenção de minimizar o processamento do dispositivo durante a execuçãodo aplicativo, fazendo que a geração procedural ocorra em um servidor e depois o celularrecebe o resultado, foi integrada o NodeJS, uma plataforma JavaScript para o desenvol-vimento em um ambiente server-side.

Os personagens serão gerados a partir das informações das amostras obtidas dobanco de lesões de livre acesso ISIC Archive [21] (a Figura 6 e Tabela 1 apresentam umexemplo de uma imagem e características, respectivamente). Usando o nível de conheci-mento sobre a melanoma e as últimas jogadas do jogador como parâmetros são filtradosos dados das lesões, eliminando aqueles que não satisfazem os critérios. Os dados querestaram serão a base para a formação dos genótipos dos pacientes, e posteriormentetransformadas em indivíduos reais (fenótipos) dentro do jogo. O detalhe do algoritmoserá apresentada na Subseção 3.1.2.

Figura 6 – Imagem de um melanoma.

age_approx 55anatom_site_general lower extremitybenign_malignant malignantdiagnosis melanomadiagnosis_confirm_type histopathologymelanocytic truesex female

Tabela 1 – Informação clínico da Figura 6.

A aplicação de GPCB é considerada como inviável para o problema da proposta,pois os pacientes são gerados baseado no conjunto de lesões que são informações imu-táveis. Deste modo, procurar indivíduos que contêm propriedades desejadas é capaz deresolver a questão de gerar PNJs adequado ao nível de sabedoria do usuário. Não hánecessidade do processo iterativo para fazer a evolução dos indivíduos usando crossovere mutação para aproximar em uma solução satisfeita, pois além de necessitar de maisrecurso computacional, não trará grande diferença ou vantagem para o ambiente do jogo.

Sobre o roteiro existe um determinado operador que uma vez escolhida como parte

34

da solução, essa ação deve aparecer uma quantidade específica no plano, e esse parâmetronão é possível de definir no PPO convencional, uma vez que esse planejamento estabeleceas ligações entre as ações usando as precondições e efeitos de cada etapa.

Dada as descrições das circunstâncias inicial e os propósitos a serem conquistadas,para a formação de sequência de ações primeiramente criou-se um grafo que cada vérticerepresenta um operador, e percorre as arestas de um modo que cria um caminho entreo operador que possui o estado inicial como precondição e outro operador que tem oefeito que atinge a meta, e salva esse percurso como um plano parcial. Ao obter todasas soluções parciais, as mesmas são ordenadas para eliminar as ameaças (caso existir)e une para formar um plano completo que é um roteiro. A explicação aprofundada dametodologia é exibida na Seção 3.2.

3.1 Criação de personagens

3.1.1 Genótipo e fenótipo

Para o caso desta proposta, o genótipo é necessário para fazer a busca de elementosque satisfaçam determinadas condições para a formação de um PNJ. A seguir são apre-sentadas as classes que representam os atributos de um personagem a ser diagnosticado:

∙ Lesão: A lesão possui dados fundamentais que caracteriza a doença e o perfil dapessoa. A partir das características deste item, serão definidas os outros atributos,conforme o detalhe do processo será ostentado na Subseção 3.1.2. O conjunto deatributos que forma esta classe está descrita na Tabela 2.

∙ Modelo de paciente: Este serve para a definição da base da aparência do personagem.O modelo é composto por valor de identificação, sexo e faixa de idade conforme aTabela 3.

∙ Tronco, perna, calçado e cabelo: além do modelo para a determinação da basedo visual, cada PNJ possui partes do corpo que também devem ser definidas. Aestrutura do genótipo dessas classes são idênticas ao item anterior, e a Figura 7representa os possíveis fenótipos.

∙ Cor da pele: A pele possui a conformação da Tabela 4. O atributo “race” possui trêstipos de valores, e a partir dele é selecionado um número hexadecimal e atribuído aoatributo “hexa”. o qual contém um código hexadecimal de 6 dígitos que representauma cor.

Por fim, o paciente é formado por junção desses itens. O resultado final da re-presentação pode ser vista na Tabela 5. É possível observar que alguns atributos não

35

foram herdados, uma vez que determinados objetos são usadas apenas como parâmetrode filtragem.

Tabela 2 – Representação de dados de uma lesão da pele.

Atributo Descriçãoid Valor único que identifica a lesão.sex Sexo da pessoa.age Idade da pessoa.benign_malignant Identificação se a lesão é benigno ou maligno.diagnosis Diagnóstico da lesão.diagnosisType Forma de diagnóstico.melanocytic Identificação se a lesão é melanocítico.

type

Caracteres que confirma se o personagem é criança, adulto ou idoso.Este atributo é valorado automaticamente quando existir idade.

(’child’ para idade menor que 18, ’adult’ para idade entre 18 e 64,e ’old’ para maior que 64)

race Raça da pessoa.member Parte do corpo com a lesão.level Nível de conhecimento necessário para diagnosticar a lesão.

Tabela 3 – Representação de dados de modelo de paciente.

Atributo Descriçãoid Valor único que identifica o modelo.sex Caractere que indica o sexo do personagem.type Caracteres que indica se o modelo pertence a criança, adulto ou idoso.

Tabela 4 – Representação de dados da cor de pele.

Atributo Descriçãorace Caracteres que indica a raça do personagem.hexa Valor hexadecimal que representa uma cor.

3.1.2 Processo de criação de PNJs

Nesta subseção será mostrado o algoritmo implementado para criar personagens ea descrição das suas etapas, o qual a Figura 8 apresenta o fluxograma do processo.

36

Tabela 5 – Representação de dados de paciente.

Atributo Descriçãoname Nome do personagem.age Idade do personagem.lesion Classe idêntica à Tabela 2.model Valor de identificação do modelo.torso Valor de identificação do torso.legs Valor de identificação da perna.shoes Valor de identificação do calçado.hair Valor de identificação do cabelo.skin Valor hexadecimal que representa a cor da pele.

(a) Modelo (b) Cabelo (c) Tronco

(d) Perna (e) Calçado

Figura 7 – Exemplos de fenótipos para a formação de um personagem.

3.1.2.1 Entrada

O algoritmo de busca possui quatro valores de entrada. A função semelhante dessesparâmetros são o controle e limitação das lesões, e consequentemente dos personagens agerar. A seguir são apresentadas os detalhes de cada item:

∙ Última jogada: é constituída de vetor de PNJs que o jogador fez o diagnóstico pelaúltima vez.

∙ Nível de conhecimento: este é um valor inteiro que indica o grau de compreensãoque o usuário possui sobre as manchas na pele. Quanto maior é o valor, maior a

37

Figura 8 – Fluxograma do algoritmo para a geração procedural de pacientes.

dificuldade dos problemas a serem resolvidas.

∙ Quantidade de lesões que não são câncer: este parâmetro enumera a quantidade dePNJs que deve ser criada com nevo (pinta).

∙ Quantidade de lesões que são melanoma: semelhante ao item anterior, porém esterefere-se ao melanoma.

3.1.2.2 Filtragem

A filtragem é uma etapa imprescindível para o funcionamento da operação. Ofundamento desta fase baseia-se em eliminar os casos em que os sintomas se tornamrepetidos, em comparação aos que o usuário examinou na jogada recente. Dada umalesão, o critério para rejeição desse indivíduo é:

∙ possui valor de identificação igual ou todos os atributos são iguais, exceto a idade,em comparação ao um dos indivíduos da jogada anterior, ou;

∙ o valor do atributo “level” é diferente da entrada fornecida.

38

Se pelo menos uma condição acima for satisfeita, logo a lesão não pode ser selecionada;contrariamente, todos os indivíduos que não satisfazem à nenhuma condições acima, pos-suirá a possibilidade de ser escolhida para a geração do personagem.

Após a filtragem restam apenas as lesões que são candidatas a escolha. Neste passo,basta escolher aleatoriamente, porém a quantidade correta, os elementos que pertencemao conjunto filtrado e armazenar em uma listapara que a seleção do modelo, partes docorpo (torso, perna, calçado e cabelo) e cor da pele para determinar a aparência do PNJseja executada baseando-se nesses elementos. O visual dele é definido pelos dados de cadaobjeto da lista.

Inicialmente é utilizado como referência os atributos “type” e “sex” da lesão parafiltrar e unir os modelos que possuem o mesmo valor. Deste conjunto é selecionado apenasum, de modo aleatório. O equivalente ocorre com as partes do corpo e a cor da pele,porém no segundo caso é referenciado e comparado os valores de “race”.

Em seguida, é estabelecida o nome do paciente. Existem três vetores para nomes:uma que contêm nomes masculino, uma com nomes femininos e outra com conjunto desobrenomes. Se a lesão é de uma pessoa de sexo masculino então extrai eventualmenteum nome do primeiro vetor; caso negativo, deve retirar do segundo vetor. Seguidamente,deve concatenar o nome com o sobrenome, que por sua vez também é selecionado aleato-riamente.

Finalmente todos os objetos que foram escolhidas no processo são unidos, formandoum novo conteúdo que é o paciente, com a estrutura da Tabela 5 (Subseção 3.1.1). Esteprocedimento é repetido até que crie todos os personagens com suas respectivas lesões.Em conclusão, o algoritmo gera uma lista de pacientes.

3.2 Criação de roteiro

3.2.1 Grafo de ações

Grafo de ações é um grafo orientado cujo as arestas entre os nós indicam os passosque são possíveis de serem executados em sequência, conforme a Figura 9 apresenta.Cada vértice é uma classe que representa uma ação no jogo, constituída de acordo com aTabela 6, e Tabela 7 descreve os detalhes de cada operadores.

As strings contidas nos atributos “precond” e “effect” designa o estado do jogadorou ambiente que ele reside dentro do jogo. Tendo como exemplo de um estado, a cadeia decaracteres “openSMS” descreve que o usuário abriu a tela de mensagens, e “¬openSMS”é o seu oposto, ou seja, o jogador não está nessa tela.

Dado dois vetor de caracteres, um que representa estado inicial e outra o objetivo,o grafo exerce para encontrar a maneira de alcançar esse intuito, percorrendo os vértices

39

Figura 9 – Grafo de ações usadas para a geração do roteiro do jogo.

Tabela 6 – Representação do vértice (ação).

Atributo Descriçãoname Nome da ação.id Valor de identificação da ação.

preAction Vetor de valores de identificação de ações quedevem ser realizadas para poder executar a ação do nó atual.

edges Vetor de números para estabelecer as arestas entre dois nós.precond Vetor de strings que indica as precondições necessárias para executar a ação.effect Vetor de strings que indica os efeitos ao executar a ação.

através das arestas. Para obter a sequência de passos é empregada o método bottom-up,isto é, primeiramente procura um nó que possui “effect” igual a meta (esse será a ultimaação para atingir o objetivo), e a partir desse ponto persegue o grafo usando “preAction”até encontrar a primeira ação que possui “precond” similar à condição de inicio.

3.2.2 Entrada

O algoritmo implementado possui três entradas: o estado inicial do jogador dentrodo jogo, as metas que ele precisa alcançar para prosseguir para próxima fase e o grafode ações para selecionar os passos necessários para atingir o objetivo. Os dois primeirosparâmetros são vetores de string que servem para a seleção de planos parciais e por fim

40

Tabela 7 – Descrição de cada vértice do grafo de ações.

name id preAction edges precond effectopenSMS 0 - 2 ¬atSMS atSMSopenEmail 1 - 2 ¬atEmail atEmail

help 2 0, 1, 16 3,4 - -cutCost 3 2 - - cutCost

gainTrust 4 2 - - gainTrustgoClinic 5 - 6, 7, 8, 9 ¬atClinic atClinic

met1 6 5 10 atClinic, ¬metP1 metP1met2 7 5 11 atClinic, ¬metP2 metP2met3 8 5 12 atClinic, ¬metP3 metP3

specialPatient 9 5 13 atClinic, ¬metSP metSPdiagnose1 10 6 - metP1 diagnosed1diagnose2 11 7 - metP2 diagnosed2diagnose3 12 8 - metP3 diagnosed3dismiss 13 9 - metSP dismissSPevent 14 0, 1 15 event doEvent

goEventPlace 15 14 16 doEvent, ¬atEventPlace atEventPlacedo 16 15 - atEventPlace doAction

unir esses planos e criar um único plano geral que atenda todas as metas a partir doestado inicial.

Para a criação de cada plano parcial deve ser referenciada as condições finaiscontidas na segunda entrada do algoritmo, iterando o vetor de metas e gerando a sequênciade ações para respectiva meta.

3.2.3 Criação de planos parciais

No contexto desta proposta, um plano parcial é a sequência de ações para atingiruma das metas de um plano maior, o qual possui um estado inicial e final mais complexo.O objetivo final é unir todos os planos parciais para formar um único plano, e para issoé necessário fazer planejamento de todas as metas. Pelo contrário, se existe pelo menosum caso que não seja possível de criar um caminho entre o estado inicial e uma meta doplano parcial, resulta na falha do algoritmo.

Primeiramente seleciona uma meta do estado final, escolhe uma ação no grafo cujoo efeito desse possui a mesma string da meta e insere o identificador desse passo no vetorde plano parcial inicialmente vazia. A partir desse ponto, percorre o grafo de baixo paracima (bottom-up), seletando e adicionando ações no mesmo vetor, até encontrar uma açãocuja a precondição da mesma exista no estado inicial. O procedimento da criação do vetoré repetido até encontrar os caminhos de todas as metas.

41

Figura 10 – Fluxograma do algoritmo para a geração de um roteiro.

Ação com a identidade ‘2’ é um caso especial para a criação do roteiro; somentepara esse operador é estabelecida uma quantidade de vezes que deve ser executada, e paragerar aleatoriedade nas sequências é produzida um número real arbritário entre 0 e 1 paratestar se o valor produzido é maior que 0,55. Se a condição anterior é verdadeira entãoseleciona uma das ações contidas no atributo “preAction”; caso oposto então escolhe ooperador ‘2’ como parte do plano parcial, desde que a quantidade especificada não foiatingida. O fluxograma desse algoritmo juntamente com o caso especial é apresentada naFigura 10.

3.2.4 Criação de plano completo

Após a criação dos planos parciais de cada meta, os mesmos devem ser juntadospara formar uma única sequência de passos que satisfazem todas as condições do estadofinal. Para isso, primeiramente deve fazer a ordenação das soluções obtidas de tal formaque evite as ameaças.

A lista de ordenações criada no início do algoritmo é uma tabela hash que estabe-lece a ordem entre as ações que causam ameaças, ou seja, indica um rebaixamento parao passo ameaçador do qual o efeito produzido por este é uma negação da precondição

42

das outras ações. Cada índice da lista está associado ao identificador único da ação, edentro esta tabela existem valores numéricos que determinam as ações que devem serposicionadas depois desse identificador.

Para o preenchimento da tabela hash, inicialmente percorre os planos parciais naordem em que foram geradas e escolhe cada ação (consideramos cada ação como A) queestá contido no mesmo. Usando o efeito dessa ação A, obtêm todas as outras ações queestão nos outros planos parciais cujo possuem a precondição como a negação desse efeito.Esse conjunto indica quais ações dos planos parciais provocam ameaças com o operadorA, e que devem ser estabelecidas as ordens para impedir estas ameaças.

A cada iteração no conjunto obtido, é verificada se o operador A está contida nalista de ordenações do índice da ação atual do conjunto (ação C). Se o resultado é falso,então ou o identificador da ação A é inserida na tabela do índice da ação C, ou o valorda ação C é inserida na tabela do índice da ação A. Caso contrário, então a hash não éatualizada. O processo de preenchimento da tabela ocorre até percorrer todos os planosparciais.

Após o preenchimento da lista de ordenações, os planos parciais são ordenadoscom a base nessa lista. Considerando que esses planos estão armazenados em um outrovetor, o método da ordenação é:

1. Pega uma solução contida no vetor de planos parciais (seja este o plano P);

2. Para cada número composta nela, obtem o conjunto de identificadores contidos nahash usando esse número como íncide, e procura nos outros planos se pelo menosuma das ações pertence ao conjunto obtido;

3. Para aqueles planos que a condição anterior são verdadeiras, são posicionadas noíndice do vetor de planos parciais que seja depois do índice do plano P;

4. Volta para a etapa 1 até iterar todos os planos parciais.

Finalmente, mantendo a ordem das soluções e das ações após o processo acima, unetodos esses em apenas um vetor e elimina os valores repetidos (exceto alguns), gerandoum plano completo.

A saída do programa é uma sequência de números inteiros cujo indica um roteiro,ou seja, as ações necessárias que o jogador deve executar em ordem para avançar de fase.Cada valor desse conjunto é um identificador único que descreve a ação que o usuáriopode realizar dentro do jogo.

O resultado obtido pelo algoritmo é enviado para o aplicativo, porém o jogadornunca saberá previamente os passos exigidos, uma vez que este será oculto (exceto aprimeira ação) e a próxima etapa será visível somente após a execução da etapa atual. Ao

43

exercer todas as ações em sequência definida não sobrará mais passos a seguir, significandoque o objetivo foi cumprido e poderá prosseguir para a próxima fase.

45

4 TESTES, RESULTADOS E ANÁLISE

No capítulo atual apresentaremos a metodologia dos experimentos e seus respecti-vos resultados, primeiramente mostrando as entradas que foram utilizadas para a execu-ção de GPC para a criação dos PNJs e roteiros. Em seguida, o efeito produzido por esseexperimento, em formas de tabelas, e finalmente são discutidas as análises.

4.1 Experimento 1: Criação de personagens

Para o funcionamento do algoritmo de criação de pacientes é fundamental o con-junto de dados que representam as lesões. Desse modo inicialmente criou-se uma listacom 23 amostras baseadas em [21], conforme a Tabela 8 e Tabela 9 exibem. A primeiralinha e os significados dos dados dessas tabelas são idênticas aos atributos da Tabela 2(Subseção 3.1.1). Juntamente instanciou-se vetores que representam nomes, modelos epartes do corpo.

O programa de criação de pacientes foi executado diversas vezes. A cada execuçãoo algoritmo foi aplicado cinco vezes em sequência. A primeira saída é usada como entradada segunda aplicação, e o resultado gerado por esse é utilizada na terceira vez, e sucessiva-mente. Para todos os casos foi parametrizado para escolher conteúdos com “level” (nívelde conhecimento para o diagnóstico) igual a ‘3’.

Com relação a todos os testes, a primeira entrada do algoritmo fez o uso de co-leção de indivíduos descritos na Tabela 10, especificando para gerar três pacientes commelanoma e três pacientes sem câncer. Os demais quatro casos são detalhados na próximaseção, ligadamente com os respectivos resultados.

4.1.1 Resultados do experimento 1

A seção atual apresenta os resultados que foram obtidas com os testes. Das diversassoluções geradas pelo programa, foi selecionada aleatoriamente uma sequência de cincoconjunto de PNJs para serem analisadas.

A Tabela 11 exibe a primeira solução criada pelo algoritmo. Este conjunto foi usadaposteriormente para a geração da Tabela 12, com entrada para criar seis personagens semcâncer. Do mesmo modo, com esta última tabela criou-se a Tabela 13, porém desta vez oparâmetro foi seis personagens com melanoma. Da maneira semelhante, a Tabela 14 foigerada a partir da Tabela 13, com três PNJs com câncer e outros três sem a sintoma.

Por fim, gerou-se a Tabela 15, usando-se o resultado e os mesmos parâmetros doteste anterior. Uma observação que, para a melhor visualização, a coluna “lesion” de todas

46

Tabela 8 – Amostra de lesões para a realização do teste.

id age member benign_malignant diagnosis diagnosisType0 30 lower extremity benign nevus null1 60 upper extremity malignant melanoma histopathology2 70 lower extremity benign nevus null3 25 lower extremity malignant melanoma histopathology4 65 lower extremity malignant melanoma histopathology5 30 posterior torso benign nevus null6 35 posterior torso malignant melanoma histopathology7 45 posterior torso benign nevus null8 70 anterior torso malignant melanoma histopathology9 65 anterior torso malignant melanoma histopathology10 15 posterior torso benign nevus null11 30 lower extremity benign nevus histopathology12 20 anterior torso benign nevus histopathology13 15 anterior torso benign nevus histopathology14 85 upper extremity malignant melanoma histopathology15 50 anterior torso malignant melanoma histopathology16 50 posterior torso benign nevus histopathology17 65 head/neck benign solar lentigo histopathology18 80 head/neck malignant melanoma histopathology19 50 anterior torso benign nevus null20 17 head/neck malignant melanoma histopathology21 77 upper extremity malignant melanoma histopathology22 10 lower extremity malignant melanoma histopathology

as tabelas possui apenas o valor de identidade, e não a estrutura toda da representaçãode uma lesão.

4.1.2 Análise do experimento 1

Ao analisar as populações de indivíduos gerados, primeiramente é possível cons-tatar que o valor do atributo “lesion” nunca repete em um mesmo conjunto. Simultane-amente, é perceptível que a cada execução do processo, em nenhum momento ocorre aescolha de conteúdos iguais sucessivamente.

Para todos os testes requisitou a geração no total de seis indivíduos. No entanto,a Tabela 12 e Tabela 14 possui cinco e quatro elementos, respectivamente. Isto ocorreudevido a filtragem que eliminou as lesões que não satisfizeram a condição estabelecidapela entrada.

No primeiro caso, além de desconsiderar os indivíduos selecionados no teste ante-rior, invalidou aqueles que possuem o valor do nível diferente de três. Sobre o segundo

47

Tabela 9 – Amostra de lesões para a realização do teste (continuação).

id melanocytic sex race level0 true m white 31 true f white 32 true m white 33 true f white 34 true f white 35 true f brown 36 true f brown 17 true m brown 38 true m brown 39 true m brown 310 true m black 311 true f black 212 true m black 313 true f black 114 true f brown 315 true m white 316 true m white 217 false m white 318 true m white 319 true f white 320 true m brown 221 true f brown 322 true m white 1

Tabela 10 – Primeira jogada para a entrada do algoritmo.

name age lesion model torso legs shoes hair skinName 1 65 4 14 24 20 22 24 E6C7ABName 2 65 17 15 29 26 29 25 D9A47AName 3 30 0 11 16 18 15 18 E6C6BBName 4 85 14 12 23 24 23 22 BB8666Name 5 25 3 8 11 12 13 14 DCAD9B

caso, ademais à esse fenômeno, o algoritmo obteve apenas uma lesão com melanoma,uma vez que a identidade ‘8’ possui características iguais à ‘9’, e ‘14’ é equivalente à ‘21’,restando apenas a ‘3’ como candidata.

48

Tabela 11 – Saída obtida pelo algoritmo com a entrada da Tabela 10.

name age lesion model torso legs shoes hair skinHenrique Gonçalves 45 7 10 15 16 16 17 BB8666

Enzo JesusRodrigues 70 2 15 28 26 26 29 E6C6BB

Mariana CostaCarvalho 50 19 8 10 11 13 14 D9A47A

Antônio AlmeidaMarques 70 8 17 25 28 26 27 C0966C

Daniel Santos 65 9 16 25 28 26 25 B97754Maria Sousa 60 1 14 24 24 20 23 E6C6BB

Tabela 12 – Saída obtida pelo algoritmo com a entrada da Tabela 11.

name age lesion model torso legs shoes hair skinMatheusda Silva 15 10 4 5 9 9 8 713920

BenjamimGonçalvesCarvalho

30 0 10 17 15 19 16 D9A47A

Alice Jesus 30 5 6 10 12 13 10 C0966CLucas Lopes

Moreira 65 17 17 25 25 26 26 F3CBB1

Daniel Martins 20 12 11 19 17 16 15 713920

Tabela 13 – Saída obtida pelo algoritmo com a entrada da Tabela 12.

name age lesion model torso legs shoes hair skinJosé

Oliveira Pinto 65 9 16 26 26 26 27 C0966C

RodrigoCarvalho Costa 80 18 15 25 29 25 27 D9A485

ValentinaCorreia Pinto 77 21 14 23 23 23 22 BB8666

Lívia Santos 60 1 13 23 23 22 21 E8C4ACAline

Moreira Pinto 65 4 14 24 24 23 20 E8C4AC

Guilherme Teixeira 50 15 10 18 19 15 19 F3CBB1

49

Tabela 14 – Saída obtida pelo algoritmo com a entrada da Tabela 13.

name age lesion model torso legs shoes hair skinArthur Almeida 30 0 10 18 17 16 18 D9A47ABruno da Fraga 70 2 15 27 25 25 28 F3CBB1

Lucas Santos 15 10 4 5 7 8 7 713920Maria Pereira 25 3 8 13 11 10 11 E6C7AB

Tabela 15 – Saída obtida pelo algoritmo com a entrada da Tabela 14.

name age lesion model torso legs shoes hair skinAline Gonçalves

da Silva 50 19 8 13 10 13 10 D9A47A

Manuela Gonçalves 30 5 8 14 10 13 11 B97754Rafael Santos 45 7 11 19 16 19 16 BB8666

Rodrigo Carvalho 70 8 16 29 29 25 25 BB8666Júlia

Marques Jesus 60 1 14 24 22 22 21 D9A47A

Gustavo Jesus 50 15 11 16 19 19 18 DCAD9B

4.2 Experimento 2: Criação de roteiro

Como foi mencionado na Subseção 3.2.2, é necessário de circunstâncias introdutivo,propósitos a obter, e o conjunto de ações permitidas para fazer um roteiro. Ao realizaro experimento foram usadas duas combinações de entradas, consoante a Tabela 16 eTabela 17.

Tabela 16 – Primeira entrada usada para o algoritmo do experimento 2.

Strings do estado inicial Strings da condição final¬atSMS ¬atEmail cutCost

Tabela 17 – Segunda entrada usada para o algoritmo do experimento 2.

Strings do estado inicial Strings da condição final¬atSMS ¬atEmail ¬atClinic ¬metP1 cutCost gainTrust diagnosed1

A coleção de passos utilizada no algoritmo é o grafo descrito pela Figura 9, e aquantidade de vezes que deve ser executada a ação com valor de identificação igual a ‘2’foi fixada para duas vezes para as ambas entradas.

50

4.2.1 Resultados do experimento 2

Igualmente ao experimento anterior, das diferentes soluções geradas pelo métodoforam contingentemente seletadas três planos completos para cada uma das entradas como intuito de examinação. Entre as tabelas 18 e 20 representam as soluções geradas pelaprimeira entrada, e as tabelas entre 21 e 23 são os resultados da segunda entrada.

Tabela 18 – Primeira solução selecionada do experimento 2 da primeira entrada.

Valor de identificação Nome da ação0 openSMS2 help14 event15 goEventPlace16 do2 help3 cutCost

Tabela 19 – Segunda solução selecionada do experimento 2 da primeira entrada.

Valor de identificação Nome da ação0 openSMS2 help2 help3 cutCost

Tabela 20 – Terceira solução selecionada do experimento 2 da primeira entrada.

Valor de identificação Nome da ação0 openSMS14 event15 goEventPlace16 do2 help2 help3 cutCost

Deve ser destacado que a solução originalmente gerada não possui a coluna denomes, porém para a melhor interpretação das sequências de valores fez-se a adição dosnomes das ações correspondentes a cada número.

51

Tabela 21 – Primeira solução selecionada do experimento 2 da segunda entrada.

Valor de identificação Nome da ação0 openSMS14 event15 goEventPlace16 do2 help2 help3 cutCost1 openEmail2 help14 event15 goEventPlace16 do2 help4 gainTrust5 goClinic6 met110 diagnosed1

Tabela 22 – Segunda solução selecionada do experimento 2 da segunda entrada.

Valor de identificação Nome da ação1 openEmail2 help1 openEmail2 help3 cutCost0 openSMS2 help1 openEmail2 help4 gainTrust5 goClinic6 met110 diagnosed1

4.2.2 Análise do experimento 2

Para as ambas entradas foram obtidas diferentes sequências de valores inteiros,dado um mesmo conjunto de strings do estado inicial. Na primeira circunstância semprehá a ocorrência de dois “help” antes de chegar à última ação, o que foi estabelecido emconformidade com a Seção 4.2.

52

Tabela 23 – Terceira solução selecionada do experimento 2 da segunda entrada.

Valor de identificação Nome da ação1 openEmail2 help2 help3 cutCost1 openEmail14 event15 goEventPlace16 do2 help2 help4 gainTrust5 goClinic6 met110 diagnosed1

Já nas soluções da segunda condição ocorre o similar ao caso anterior (distintassucessões de números e quantidade da ação de identificador ‘2’), porém para todas astrês saídas é conspícuo que as três últimas ações são idênticas, condigno ao grafo possuirapenas um único caminho (a ordem dos números ‘5’, ‘6’ e ‘10’) para criar o plano parcialque atinge a meta “diagnosed1”. Além disso, o algoritmo resolve os objetivos em ordemque está no vetor da condição final, logo o “diagnosed1” que situa na última posiçãopermaneceu como a última etapa do roteiro.

53

5 CONCLUSÃO

Ao analisar os resultados obtidos é possível afirmar que o funcionamento da técnicade GPC é suficiente para a criação de pacientes do jogo com variedade em fenótipos esintomas na pele, minimizando a interferência do programador e designer para pensar eproduzir em personagens diversificados manualmente.

Os cuidados que devem ser tomados é a garantia de que uma solução existirá.Conforme foi observada em Capítulo 4, teve casos em que a resolução foi incompleta, ouseja, de não produzir indivíduos com a quantidade completa. Nesse caso deve aumentarsuficientemente o número de amostras de lesões com variedades nas características paraevitar este fenômeno.

Dado que o desenvolvimento do jogo ainda está em progressão no momento daescrita desse trabalho não teve o grafo completo com as demais ações que podem serexecutadas durante o jogo, logo o teste de planejamento de roteiro foi visto que geradiferentes planos porém com pouca variedade nas sequências de passos.

No momento há melhorias e alterações a serem feitas nas implementações duranteo processo de criação do jogo, mas a junção dos dois algoritmos de GPC irá contribuirpara a consecução do objetivo do serious game.

55

REFERÊNCIAS

[1] KAIDAN, M. et al. Procedural generation of angry birds levels that adapt tothe player’s skills using genetic algorithm. 2015 IEEE 4th Global Conference onConsumer Electronics (GCCE), p. 535–536, Oct 2015.

[2] WATTANASOONTORN, V. et al. Serious games for health. EntertainmentComputing, v. 4, n. 4, p. 231–247, 2013. ISSN 1875-9521. Disponível em:<http://www.sciencedirect.com/science/article/pii/S1875952113000153>.

[3] OLIVEIRA, S.; MAGALHãES, L. Adaptive content generation for games. 2017 24o

Encontro Português de Computação Gráfica e Interação (EPCGI), p. 1–8, Oct 2017.

[4] FERREIRA, L.; TOLEDO, C. A search-based approach for generating angry birdslevels. In: 2014 IEEE Conference on Computational Intelligence and Games. [S.l.:s.n.], 2014. p. 1–8. ISSN 2325-4289.

[5] STEPHENSON, M.; RENZ, J. Procedural generation of complex stable structuresfor angry birds levels. 2016 IEEE Conference on Computational Intelligence andGames (CIG), p. 1–8, Sept 2016.

[6] TOGELIUS, J. et al. Search-based procedural content generation: A taxonomy andsurvey. IEEE Transactions on Computational Intelligence and AI in Games, v. 3,n. 3, p. 172–186, Sept 2011. ISSN 1943-068X.

[7] TOGELIUS, J.; JUSTINUSSEN, T.; HARTZEN, A. Compositional proceduralcontent generation. In: Proceedings of the The Third Workshop on ProceduralContent Generation in Games. New York, NY, USA: ACM, 2012. (PCG’12), p.16:1–16:4. ISBN 978-1-4503-1447-3. Disponível em: <http://doi.acm.org/10.1145/2538528.2538541>.

[8] LIAPIS, A.; YANNAKAKIS, G. N.; TOGELIUS, J. Optimizing visual propertiesof game content through neuroevolution. In: Proceedings of the AAAI ArtificialIntelligence for Interactive Digital Entertainment Conference. [S.l.: s.n.], 2011.

[9] HASTINGS, E. J.; GUHA, R. K.; STANLEY, K. O. Evolving content in the galacticarms race video game. In: 2009 IEEE Symposium on Computational Intelligenceand Games. [S.l.: s.n.], 2009. p. 241–248. ISSN 2325-4270.

[10] VALTCHANOV, V.; BROWN, J. A. Evolving dungeon crawler levels withrelative placement. ACM, New York, NY, USA, p. 27–35, 2012. Disponível em:<http://doi.acm.org/10.1145/2347583.2347587>.

[11] BROWNE, C. B. Automatic generation and evaluation of recombination games.Tese (Doutorado) — Queensland University of Technology, 2008. Disponível em:<https://eprints.qut.edu.au/17025/>.

[12] SHAKER, N.; TOGELIUS, J.; NELSON, M. J. Procedural Content Generation inGames. 1. ed. [S.l.]: Springer, 2016.

56

[13] TOGELIUS, J. et al. Search-based procedural content generation. In: CHIO, C. D.et al. (Ed.). Applications of Evolutionary Computation. Berlin, Heidelberg: SpringerBerlin Heidelberg, 2010. p. 141–150. ISBN 978-3-642-12239-2.

[14] SHAKER, N.; YANNAKAKIS, G.; TOGELIUS, J. Towards automatic personalizedcontent generation for platform games. 12 2010.

[15] ZAFAR, A.; MUJTABA, H. Identifying catastrophic failures in offline levelgeneration for mario. 2012 10th International Conference on Frontiers ofInformation Technology, p. 62–67, Dec 2012.

[16] BROWN, J. A.; LUTFULLIN, B.; ORESHIN, P. Procedural content generationof level layouts for hotline miami. 2017 9th Computer Science and ElectronicEngineering (CEEC), p. 106–111, Sept 2017.

[17] LAVALLE, S. M. Planning Algorithms. [S.l.]: Cambridge University Press, 2006.

[18] WELD, D. S. An introduction to least commitment planning. AI magazine, v. 15,n. 4, p. 27, 1994.

[19] BRANQUINHO, A. A. B.; LOPES, C. R. Planning for resource production inreal-time strategy games based on partial order planning, search and learning. In:2010 IEEE International Conference on Systems, Man and Cybernetics. [S.l.: s.n.],2010. p. 4205–4211. ISSN 1062-922X.

[20] SCHUBERT, L.; GEREVINI, A. Accelerating partial order planners by improvingplan and goal choices. In: Proceedings of 7th IEEE International Conference onTools with Artificial Intelligence. [S.l.: s.n.], 1995. p. 442–450. ISSN 1082-3409.

[21] ISIC. ISIC Archive. Disponível em: <https://www.isic-archive.com/#!/onlyHeaderTop/gallery>.