Sei sulla pagina 1di 4

Desenvolvimento de NPCs para o Jogo Estrada Real Digital

Carlcio S. Cordeiro, Carlos Augusto P. de Sousa, Diogo S. Sampaio, Luiz Gustavo Teixeira, Bernardo F. Domingues, Vincius M. Terra, Luiz Chaimowicz Departamento de Cincia da Computao Universidade Federal de Minas Gerais Abstract
The development of Non-Player Characters (NPCs) in modern games requires the use of complex design and programming techniques. This paper presents the methodology used in the creation of realistic NPCs for the game Estrada Real Digital, a first person adventure game in which the player is immersed in the beautiful scenarios of the Kings Road. roteiro, design, arte e programao. Nesse artigo, ser descrita a metodologia utilizada no desenvolvimento dos NPCs do jogo Estrada Real Digital (ERD). O Estrada Real Digital um jogo em primeira pessoa no qual o jogador estar imerso dentro de vrios dos cenrios da Estrada Real. A idia geral que o jogador navegue pelas vrias cidades e caminhos que compem a Estrada Real e tenha que resolver mistrios relacionados sua histria e patrimnio cultural [Oliveira et al. 2005]. Atravs de conjuntos de perguntas e respostas e da interao com personagens, o jogador ir conhecer cenrios e aprender sobre a histria, cultura, meio ambiente, gastronomia e turismo da Estrada Real. O jogo ainda est em desenvolvimento, mas um demo jogvel contemplando a cidade de Ouro Preto j foi finalizado. O objetivo principal desse artigo descrever as tcnicas utilizadas na modelagem e implementao dos personagens do Estrada Real Digital. Diferentemente de outros artigos que focam em tcnicas especficas de modelagem ou inteligncia artificial (IA) (por exemplo [Gruenwoldt et al. 2006, Pinto and Oliveira 2006, Pivazyan 2004] entre outros) a inteno aqui e dar uma viso da metodologia como um todo, desde a fase de design at a programao propriamente dita. Por ser um jogo desenvolvido em plataforma livre e conter um enredo, personagens e cenrios realsticos, o ERD possui caractersticas particulares que fazem com que a apresentao dessa metodologia seja vlida para a comunidade de desenvolvimento de jogos Esse artigo est organizado da seguinte forma: na prxima seo so discutidas as tcnicas utilizadas na criao e modelagem dos personagens. A Seo 3 foca na programao dos personagens, incluindo o arcabouo de programao construdo e as tcnicas de IA utilizadas. Por fim, a Seo 4 traz a concluso e possibilidades para trabalhos futuros.

Resumo
O desenvolvimento de personagens no jogveis (NPCs) exige cada vez mais a utilizao de tcnicas complexas de design e programao. Esse artigo apresenta a metodologia utilizada para a criao de personagens realsticos para o jogo Estrada Real Digital um jogo de aventura em primeira pessoa no qual o jogador est imerso em cenrios da Estrada Real. Palavras Chave: NPCs, Modelagem e Programao de Personagens, Estrada Real Digital. Contato:
{carlucio,capsbr,undeadb}@gmail.com {luigus,bfd,allonman,chaimo}@dcc.ufmg.br

1. Introduo
Nos ltimos anos, os NPCs (Non-Player Characters) tm se tornado um diferencial nos jogos modernos. Com o desenvolvimento de jogos com cenrios e grficos extremamente elaborados, tem surgido a necessidade de criao de personagens cada vez mais realsticos. Em especial, nos jogos de aventura, os NPCs so de grande importncia para o desenrolar do jogo. Em geral, os jogadores interagem com os NPCs e obtm dicas que permitem a descoberta de novos caminhos, desafios, etc. Eles so fundamentais para manter a integridade do jogo e fazer com que a histria avance [Byl 2004]. O desenvolvimento de NPCs para tais tipos de jogos um trabalho multidisciplinar. Primeiramente necessrio fazer um levantamento do perfil desejado para os NPCs, tanto em termos de identidade e aparncia como em termos de comportamento. Esses personagens devero ento ser modelados e implementados utilizando-se tcnicas adequadas de

2. Design e Modelagem
A criao dos personagens do jogo Estrada Real Digital feita atravs de procedimentos que tm como objetivo criar personagens com nvel de detalhamento suficiente para atingir os quesitos estticos e manter, ao mesmo tempo, a funcionalidade desejada com um bom desempenho computacional. Basicamente, o processo de construo de personagens pode ser dividido em duas etapas principais.

A primeira etapa consiste no design dos personagens, fase esta em que os perfis so definidos a partir de uma srie de atributos e caractersticas prprias extradas do roteiro e posteriormente ganham as primeiras formas e cores atravs das ilustraes como arte conceitual. importante mencionar que no ERD essas caractersticas foram levantadas atravs de pesquisa histrica, visitas de campo e entrevistas com pessoas que seriam representadas no jogo. A segunda etapa consiste na produo: modelagem tridimensional, rigging e animao dos personagens usando-se um software 3D. Basicamente, a modelagem 3D do personagem deve seguir o visual estabelecido na primeira etapa do design. Em seqncia modelagem, tem-se a fase de rigging (skinning / setup) onde criado um esqueleto a ser usado na fase das animaes. Na fase de animaes que so produzidos os movimentos que o personagem desempenhar no jogo com base no seu perfil e na lista de suas aes pr-definidas no roteiro. 2.1 Design de personagem A fase de design dos personagens tem incio na extrao de informao necessria para fundamentar a construo dos mesmos. A anlise do roteiro do jogo, sua descrio e ambientao, a definio de como so e quais so os personagens, bem como suas funes e como estes interagem no jogo so as primeiras informaes coletadas para criao. Seguindo o modelo utilizado em [Comparato 2000] nas criaes de roteiro, as caractersticas dos personagens (ou perfil) podem ser divididas em trs principais: caractersticas fsicas, caractersticas psicolgicas e caractersticas sociais. As caractersticas fsicas do personagem so uma descrio de sua aparncia como um todo, tendo em vista os atributos corporais e estticos de vesturio. As caractersticas fsicas descrevem a altura, o peso aproximado, a cor de pele, a cor dos olhos, a cor dos cabelos, as propores corporais alm do vesturio do personagem. Esta informao necessria para arte conceitual. As caractersticas psicolgicas do personagem definem seu estado de humor, suas maneiras, atitudes e gestos. Alm de serem importantes para diferenciar o comportamento entre os personagens e dar maior variao ao jogo, so cruciais para definio do estilo do personagem, que incorporado s animaes, dando-lhes personalidade nos movimentos. As caractersticas sociais definem como o personagem interage no meio, sua histria e acontecimentos, no caso do jogo, como interage com outros NPCs, no cenrio ou mesmo com o jogador. Esta informao adicional importante para estabelecer uma teia de relaes entre os personagens e o jogador, podendo tambm ser utilizado para a mecnica de jogo como observado em [Rouse 2001]. A partir do perfil levantado, elaborada a arte conceitual do personagem. Na arte conceitual so

representados os personagens com o respectivo visual estabelecido atravs de sketches, rascunhos, estudo de cores e ilustraes. A Figura 1 mostra um exemplo da arte conceitual para um personagem do ERD.

Figura 1: Arte conceitual para um dos personagens do jogo: o guia turstico Raul.

2.2 Modelagem 3D A modelagem 3D consiste em criar uma malha que aproxima a superfcie contnua 3D do personagem atravs de polgonos. Um fator importante na modelagem 3D o desempenho [Luebke et al. 2002], uma vez que os personagens devero ser renderizados em tempo real. No caso da modelagem, devem ser observados o nvel de detalhamento e a contagem de polgonos. A figura 2 mostra uma imagem do ERD com o guia turstico Raul no centro.

Figura 2: Guia turstico Raul inserido no jogo.

A fase de animao consiste na criao dos movimentos que o personagem realizar no jogo. As animaes so produzidas com base na definio do estilo do personagem e na lista de animaes demandadas. A movimentao do modelo feita atravs de keyframes (quadros-chave).

3. Comportamentos / IA
O comportamento de um NPC uma caracterstica to importante quanto o aspecto visual, pois se o visual o que chama a ateno em um primeiro momento, o comportamento que ir manter o interesse do jogador pelo NPC. Para tornar o comportamento de um NPC interessante, vrias tcnicas de inteligncia artificial so utilizadas e desenvolvidas por pesquisadores e equipes de desenvolvimento. 3.1 Arcabouo de Programao A Crystal Space 3D o motor (ou engine) 3D que foi escolhida pela equipe do ERD. Esta escolha se deveu a dois motivos principais: primeiramente, a necessidade de um sistema de renderizao por software que rodasse em qualquer adaptador grfico. E segundo, o interesse em se utilizar apenas software livre no desenvolvimento do ERD. Apesar da Crystal Space cuidar de vrios aspectos de baixo-nvel do jogo, como a visualizao 3D, coliso, entrada / sada, gerenciamento de memria e outros, ela no oferece nenhuma funcionalidade de alto-nvel como o gerenciamento dos personagens, gerenciamento dos desafios e, principalmente, o comportamento dos personagens. A CEL, ou Crystal Entity Layer, um plug-in para a Crystal Space que prov vrias das funcionalidades de alto-nvel mencionadas no pargrafo anterior, simplificando a criao de jogos. Para isso a CEL introduz trs novos conceitos: Entidades, Propriedades e Comportamentos. Para a CEL, todo objeto no mundo do jogo representado por uma entidade, incluindo o prprio mundo e todos os objetos associados, como o jogador, os NPCs, itens e cmeras. Propriedades so usadas para prover atributos especficos, funcionalidades e restries s entidades, e tambm fornecer a interface com a Crystal Space. Os comportamentos so os responsveis pela lgica do jogo. Cada entidade deve ter um comportamento que podem ser implementados em Python e XML, alm do padro que C++. A Figura 3 mostra a arquitetura do ERD.

bastante freqentes. As maiores dificuldades com o uso da CEL e da Crystal Space encontradas pela equipe do ERD so: a falta de uma documentao detalhada, tanto da Crystal Space, mas principalmente da CEL, a modificao de partes da API e interfaces quando uma nova verso lanada e, principalmente, a falta de algumas caractersticas essenciais, como um sistema para o controle e movimentao dos NPCs e tambm um sistema de gerenciamento de seqncia de objetivos. Tais caractersticas j esto previstas na documentao da CEL e, teoricamente, sero implementadas como as Classes de Comportamento pcnpcmove e pcquest. De forma a sanar essa deficincia temporariamente, decidiu-se implementar um Sistema de Gerenciamento dos NPCs e mecanismos de movimentao e controle de objetivos alternativos. Assim que as Classes de Propriedades responsveis j estiverem em algum estado de uso, a equipe do ERD pretende comear a us-las e focar seus esforos em solues que sejam mais slidas. 3.2 Gerenciamento dos NPCs O sistema de gerenciamento dos NPCs do ERD responsvel por gerenciar e fornecer as funcionalidades para cada NPC ativo. Isso inclui a movimentao e o controle dos estados, dilogos e caractersticas dos NPCs. Grande parte da funcionalidade e do controle dos estados dos NPCs realizado com a prpria CEL. Com isso, o sistema de gerenciamento de NPCs basicamente um wrapper para as funcionalidades que a CEL oferece e que so usadas pelos NPCs, incrementado com as funcionalidades que a CEL no oferece (por exemplo a movimentao e gerenciamento de objetivos). O sistema de gerenciamento de NPCs e implementado como um Singleton [Gama et al. 1994]. O sistema composto por uma lista de objetos responsveis por gerenciar cada NPC e cada objeto possui uma mquina de estados finitos (finite state machine - FSM). A Figura 4 mostra a estrutura do sistema de gerenciamento dos NPCs. A partir do sistema de gerenciamento possvel saber exatamente qual a atividade de cada NPC num exato momento do jogo, se ele est caminhando, parado ou interagindo com o jogador. Dessa forma pode-se sincronizar a ao do personagem com a animao da malha. Atualmente no ERD, o personagem tem duas aes bsicas que so a movimentao pelo cenrio e o dilogo com o jogador. Os dilogos fornecem informaes essenciais para o jogador conseguir resolver os desafios que surgem com o desenrolar do jogo. Alm disso, existem tambm muitos dilogos que fornecem informaes interessantes, com contedo histrico-cultural, que no esto diretamente relacionados com a resoluo dos desafios propostos, mas reforam o carter educacional do jogo.

Figura 3: Integrao entre ERD, Crystal Space e CEL.

Apesar da CEL ter uma arquitetura bastante simples e enxuta, o seu projeto ainda est em forte desenvolvimento e alguns problemas comuns so

Figura 4: Sistema de gerenciamento de NPCs.

3.3 Movimentao Para a movimentao, inicialmente foi testada uma metodologia presente na prpria Crystal Space em que o caminho do personagem previamente definido em um arquivo XML. Nesse arquivo so especificados a malha e os arquivos de animao do NPC, uma seqncia de pontos do cenrio que marcam o caminho a ser percorrido pelo NPC, o tempo gasto para percorrer a distncia entre dois pontos do caminho e a orientao do personagem em cada ponto do caminho. Apesar de facilmente implementvel, esse mtodo no se mostrou adequado para os personagens no ERD. O principal problema que esse mtodo movimenta o personagem mas no movimenta a entidade que, como mencionado, responsvel pelos triggers de iterao. Portanto no era possvel fazer a iterao com o NPC aps o movimento. Alm disso, ele no permite que a movimentao seja alterada dinamicamente durante o jogo, o que restringe a sua aplicabilidade. Devido a essas restries, foi implementado um mtodo clssico de movimentao baseado em grafos. Basicamente foi criado um grafo em que os nodos so pontos estratgicos do cenrio e as arestas so caminhos livres de obstculos conectando os pontos. Para navegar de um ponto a outro do grafo feita uma busca usando algoritmos heursticos como o A* para obter o menor caminho entre o nodo que mais se aproxima do da posio do NPC e o nodo que mais se aproxima do ponto destino, fornecendo um caminho livre de obstculos.

Os prximos passos no ERD incluem a criao de novos NPCs e a implementao de novos desafios e algoritmos de movimentao mais complexos. O jogo tambm ser estendido com a criao de novos cenrios, abrangendo outras cidades da Estrada Real.

Agradecimentos
O Estrada Real Digital um projeto multidisciplinar que envolve a participao de diversas pessoas alm dos autores. Portanto, importante ressaltar a participao dos Profs. Regina Helena Silva e Wagner Meira Jr. na coordenao do projeto, alm de outros professores alunos e funcionrios da UFMG que colaboraram diretamente no levantamento histrico, elaborao de roteiro e pesquisa de campo para o jogo.

Referncias
BYL, P., 2004. Programming Believable Characters for Computer Games. Charles River Media, 2004. COMPARATO, D., 2000. Da Criao ao Roteiro. Rocco, 2000 GAMA, E., HELM, R., JOHNSON, R., VLISSIDES, J., 1994. Design Patterns: Elements of Reusable Object-Oriented Software. Addison Wesley, 2004. GRUENWOLDT, L., DANTON, S., KATCHABAW, M., 2005. Creating Reactive Non Player Character Artificial Intelligence in Modern Video Games. In Proceedings of the 2005 GameOn North America Conference, 2005. LUEBKE, D., REDDY, M., COHEN D. J., VARSHNEY, A., WATSON, B., HUEBNER, R., 2002. Level of Detail For 3D Graphics. Morgan Kaufman Publishers, 2002. OLIVEIRA, A., CARDOSO, A., DOMINGUES, B., SAMPAIO, D., TEIXEIRA, L., MOREIRA, R., CHAIMOWICZ, L., FERREIRA, R., CARCERONI, R., MEIRA JNIOR, W., 2005. "Estrada Real Digital". Anais do WJogos - IV Workshop Brasileiro de Jogos e Entretenimento Digital, pp. 242-246. 2005. PINTO, H. AND ALVARES, L.,2006. Constructing a GoalOriented Robot for Unreal Tournament Using Fuzzy Sensors, Finite-State Machines and Extended Behavior Networks. In Game Programming Gems VI. 2006. PIVAZYAN, K., 2004. NPC Decision Making: Dealing with Randomness. In Game Programming Gems IV. 2004. ROUSE, R., 2001. Game Design: Theory & Practice. Worldware Publishing, 2001.

4. Concluso
Esse artigo apresentou a metodologia utilizada para a criao e implementao de NPCs para o jogo Estrada Real Digital, um jogo de aventura em primeira pessoa no qual o jogador viaja pelos cenrios e interage com personagens na Estrada Real. Apesar das restries impostas em termos de detalhamento grfico e das dificuldades encontradas na utilizao do motor escolhido, a metodologia apresentada permitiu a criao de personagens realsticos, tanto em termos visuais quando em termos de comportamento. Isso de muita importncia para esse tipo de jogo, no qual a histria depende fortemente da interao com os NPCs.

Potrebbero piacerti anche