Você está na página 1de 4

Sistema de partculas para engine de jogos

Abelmon de Oliveira Bastos1


1

Ceppev Centro de P s-graduacao e Pesquisa o Fundacao Visconde de Cairu 40226-900 Salvador, BA


abelmon@gmail.com

Abstract. Game development is a complex task and demands a high quality work. When it refers to 3d games, this complexity is even bigger, involving mathematical calculus to render the objects and to simulate phisical conditions more realistics. So, to increase the efciency in game development its necessary the constant code reuse, what is made generally through engines. Every engine owns various modules with distinct functions like the particle system that is responsable for creating special effects like re and smoke. This paper presents a proposal to add a partcile system into the InGE, a GPL engine. Keywords: engine, particle system, games, 3D Resumo. O desenvolvimento de jogos e uma tarefa complexa por exigir alto grau de qualidade. Quando nos referimos a jogos 3D, esta complexidade e ainda maior por envolver c lculos matem ticos para a visualizacao gr ca dos a a a objetos ou para simular condicoes fsicas mais realistas. Desta forma, para se conseguir aumentar a eci ncia no desenvolvimento de jogos, e necess rio o e a constante reuso de c digo, o que e feito geralmente atrav s do uso de um motor o e de jogos ou game engine. Cada game engine possui diversos m dulos com o funcoes distintas como o sistema de partculas que e respons vel pela criacao a de efeitos especiais como fogo ou fumaca. Este artigo apresenta uma proposta para a adicao de um sistema de partculas para a InGE, um motor de jogos GPL. Palavras-chave: engine, sistema de partculas, jogos, 3D

1. Introducao
A producao de um software e uma atividade complexa, especialmente quando nos re ferimos a jogos 3D, pois envolve c lculos matem ticos para a visualizacao gr ca dos a a a objetos ou para simular condicoes fsicas do ambiente mais realistas. Desta forma, para se conseguir aumentar a eci ncia no desenvolvimento de jogos, e necess rio o constante e a reuso de c digo, o que e feito geralmente atrav s do uso de um motor de jogos ou game o e engine. Este trabalho visa abordar uma implementacao de um sistema de partculas para uma game engine. Antes da explicacao da justicativa e da metodologia, e necess ria uma breve a ` introducao dos conceitos abordados neste trabalho que deram origem a abordagem pro posta. 1.1. Motor de jogos Um motor de jogos, ou engine, e um sistema de funcionamento de um jogo, atrav s do e qual pode-se desenvolver outros jogos usando o c digo e bibliotecas originais. Segundo o [1], os motores oferecem uma s rie de vantagens quando aplicados ao desenvolvimento e de jogos, principalmente por agilizarem o processo de implementacao, devendo oferecer

todo um conjunto de recursos que permite ao programador especicar o comportamento do seu jogo, sem necessariamente saber como esse ele est implementado.[...] Uma das a principais funcoes que est inerente a um motor e a renderizacao. Cada game engine a possui diversos m dulos com funcoes distintas como o sistema de partculas. o 1.2. Sistema de Partculas Em computacao gr ca, um sistema de partculas e denido como t cnias de modelagem, a e t cnicas de renderizacao e at tipos de animacao, por isso pode-se considerar que sua e e denicao depende da aplicacao em que o termo e usado [2]. Num motor de jogos, um sistema de partculas e sistema que gerencia partculas, partculas essas que devem obedecer alguma forma de se comportar, usados para simular efeitos que podem ser facilmente descritos como um grupo de partculas [3] agindo em conjunto para simular fogos de artifcio, neve, fascas, lquidos, entre outros como na gura 1.

Figura 1: Fogo e fumaca simulados por sistema de partculas

1.3. Application Programming Interface Application Programming Interface (API) e um conjunto de rotinas e padr es estabelecio dos por um software para utilizacao de suas funcionalidades por programas aplicativos. Geralmente uma API se encontra como uma biblioteca de funcoes destinadas a facilitar o desenvolvimento de aplicacoes [4].

2. Justicativa
O objetivo inicial deste projeto e o de implementar um m dulo de sistema de partculas o numa game engine para jogos 3D. Logo, foram pesquisados motores de jogos sob a lincenca General Public License[5] de prefer ncia, por permitirem acesso ao c digo e o fonte, modic -lo e redistribu-lo. Alguns motores de jogos se enquadraram nestes a crit rios como o Crystal Space [6] e a Indigente Game Engine (InGE) [7], um motor e de jogos em desenvolvimento pelo grupo Indigente da UFBA [7]. Desta forma, a InGE foi escolhida como forma de incentivar as iniciativas locais no desenvolvimento de jogos.

O projeto apresentado neste artigo se enquadra como parte do trabalho de desen volvimento da game engine InGe. A InGE e Software Livre, distribudo sob a GPL. No caso deste motor, n o existe ainda um m dulo de sistema de partculas. Esta engine e a o destinada a jogos 3D e est sendo desenvolvida em C++, que e muito similar a linguagem a de programacao C, por m com a grande vantagem de ser orientado a objetos [8]. e Durante uma pesquisa preliminar sobre sistemas de partculas foi encontrada a Particle System API, uma API j desenvolvida em C++ que pode ser reaproveitada para a o uso no projeto. Dessa forma, pretende-se vericar o ajuste desta API ao mecanismo de renderizacao da InGE. E considerando-se que o trabalho de desenvolvimento de um sistema de partculas cou um pouco minimizado, pode-se estender o trabalho para mo delar novos efeitos de partculas ainda n o disponveis na API integrados com a InGE, a como recursos de animacao de partculas. Assim, o desenvolvimento deste projeto busca agregar valor a um importante projeto GPL, na area de computacao gr ca e jogos. a

3. Metodologia
Nesta secao, ser descrita a abordagem proposta para o desenvolvimento do projeto. a 3.1. Abordagem geral Inicialmente foi feita uma revis o de literatura para cobrir os conceitos abordados pelo a trabalho. Pode-se vericar esta lista na bibliograa referenciada neste trabalho. Ap s esta o etapa, seguem-se: Ajuste do ambiente: Corresponde a etapa de conguracao do ambiente. Como o desenvolvimento da InGE e colaborativo, e neces rio o uso de um sistema de a controle de vers o como o Concurrent Version System [9]. No caso, est sendo a a utilizado o Subversion (SVN). Adicao da API: E a etapa atual do projeto. Neste ponto, algum refactoring[10] pode ser necess rio tanto no c digo da API quanto na da game engine. Dua o rante o desenvolvimento, ser usada uma abordagem orientada a testes (Test a Driven-Development), usando-se cppUnit [11]. No ambiente de desenvolvimento, tamb m est o disponveis as seguintes ferramentas e IDEs: Eclipse[12], KDevee a loper. ` Testes: Etapa paralela a etapa anterior, onde ser o executados testes para vericar a ` a adicao da API do sistema de partculas a InGE, atrav s de prot tipos de jogos e o que usem funcionalidades especcas deste sitema. Funcionalidades extras: A depender do tempo de implementacao, outras funci ` onalidades podem ser acrescentadas a InGE, utilizando o sistema de partculas, como suporte a animacao para partculas. As animacoes de partculas e um com ponente fundamental em jogos para representar por exemplo o fogo consumindo um objeto e a fumaca produzida por ele.

4. Resultados Esperados
O resultado principal deste projeto e a adicao de um sistema de partculas para a InGE, um motor de jogos GPL. Um resultado indireto ser a producao de um artigo sobre o a trabalho e resultados gerados a partir da implementacao proposta.

Refer ncias e
[1] Jacques Dulio Brancher Silvano Maneck Malfatti, Landro Lorenzet Dihl. J3dtool um motor para o desenvolvimento de jogos educacionais em java3d. In Proceedings of

WJogos 2004, Brazilian Workshop of Games and Digital Entertainment. Sociedade Brasileira de Computacao, 2004. [2] Allen Martin. Particle systems. Disponvel em http://web.cs.wpi.edu/matt/ courses/cs563/talks/psys.html, 1997. Ultimo acesso em 7 de abril de 2006. [3] Marcos Emmanuel. Sistema de partculas. Disponvel em http://www.unidev. com.br/artigos/SistPartckillocan0001.asp, 2006. Ultimo acesso em 8 de abril de 2006. [4] NTE PUC-PR. Gloss rio de novas tecnologias educacionais. Disponvel em http: a //www.lami.pucpr.br/nte/glossario.htm, 2006. Ultimo acesso em 23 de abril de 2006. [5] Gnu general public license. Disponvel em http://www.gnu.org/copyleft/ gpl.html. Ultimo acesso em 07 de janeiro de 2004. [6] Crystal space 3d. Disponvel em http://www.crystalspace3d.org. Ultimo acesso em 22 de abril de 2006. [7] Ivan Monteiro Humberto Bandeira. Indigente game engine. Disponvel em http:// twiki.im.ufba.br/bin/view/Indigente/EngineIndigente, 2006. Ultimo acesso em 7 de abril de 2006. [8] Steven Holzner. C++ Black Book. Makron Books, 2001. [9] Cvs. Disponvel em https://www.cvshome.org. Ultimo acesso em 25 de julho de 2005. [10] Martin Fowler, Kent Beck, John Brant, William Opdyke, and Don Roberts. Refactoring: Improving the Design of Existing Code. Addison-Wesley, 2000. [11] John Whitlock, Andrey Melnikov, and Baptiste Lepilleur. Cppunit wiki. Disponvel em http://cppunit.sourceforge.net/cgi-bin/moin.cgi, 2005. Ultimo acesso em 25 de julho de 2005. [12] Eclipse.org - development resources. Disponvel em https://www.eclipse.org. Ultimo acesso em 25 de julho de 2005.