OPÇÕES E OBJETIVOS

EDIÇÃO AGOSTO 2009

Desenvolvimento de Jogos em Pequenas Equipes

Relato de uma experiência real

Este trabalho fala sobre técnicas para o desenvolvimento de jogos, aplicando-as a realidade de pequenas equipes de desenvolvedores. Essas incluem o desenvolvimento do documento de Game Design, a Engenharia de Software no domínio de jogos digitais e algumas práticas para manter a produtividade da equipe. Este artigo foi escrito especialmente para aqueles que desejam começar, ou que já começaram, a se aventurar no mundo dos Jogos, pois sabemos o quanto é difícil encontrar um caminho nesta área

Atualmente, a realidade dos grupos de desenvolvimento de jogos no nosso país é a de pequenos grupos multidisciplinares, onde existem de três a cinco pessoas trabalhando em um projeto. Vimos que muitas das metodologias (um roteiro de atividades que norteiam a equipe durante o processo de desenvolvimento) apresentadas em livros não se aplicam, ou se aplicam apenas parcialmente a pequenos grupos de desenvolvedores.

Em virtude destas observações, decidimos adaptar estas idéias para pequenos times, utilizando-as no desenvolvimento de um jogo feito por nosso grupo, com três pessoas. E, agora, com o objetivo de expandir ainda mais os conhecimentos na área de desenvolvimento de jogos e estimular a produção acadêmica no assunto, apresentamos este trabalho que mostra uma orientação para pequenas equipes desenvolvedoras de jogos. Desse modo, este artigo apresenta um resumo de como projetar e implementar jogos, sem fazer uso de técnicas que demandem uma grande quantidade de pessoas, sendo escrito especialmente para aqueles que desejam começar, ou que já começaram a se aventurar no mundo dos Jogos, pois sabemos o quanto é difícil encontrar um caminho nesta área.

Estratégia de Desenvolvimento

Metodologias mais rigorosas exigem uma maior quantidade de recursos humanos, principalmente para gerenciar a documentação do sistema, requisitando um maior custo e mais tempo ao desenvolvimento do software. Por isso optamos por utilizar uma variação de uma metodologia ágil (Extreme Game Development - XGD), pois é direcionada a pequenos times e possui uma maior facilidade para o gerenciamento de mudanças de requisitos durante o desenvolvimento do projeto.

A principal documentação durante a implementação do sistema é o documento de Game Design. Tal documento é explorado continuamente como fonte de requisitos para o jogo a ser desenvolvido, pois fornece base para todo o projeto, atuando como uma planta baixa que orienta a equipe da apresentação até o teste final. Embora tudo seja descrito nesse documento, naturalmente podem ocorrer modificações neste durante o progresso de implementação, acrescentando ou removendo itens do documento.

Game Design

Apesar de ser o principal documento para implementação de jogos, o Game Design deve sempre estar aberto a mudanças, uma vez que mudanças nos requisitos são comuns. Para tanto o documento deve ser compartilhado por toda a equipe. Especificamente, para a nossa pequena equipe, optamos por manter o documento na internet, gerenciando as suas mudanças através de informes aos integrantes sempre que fosse preciso. Outra alternativa sugerida por [SCHUYTEMA] é de manter o documento como um wiki.

Formas de organizar o documento de Game Design são apresentadas em [SCHUYTEMA] e [BATES]. Particularmente, organizamos o nosso documento com base no que foi apresentado em ambos, mesclando algumas partes e retirando outras de menor importância. A proposta utilizada é descrita a seguir e pode ser modificada de acordo com as necessidades do projeto e da equipe desenvolvedora:

Uma vez concluído estes tópicos, deve-se sempre conferir se o que está sendo produzido está de acordo com o que foi planejado, se atende as expectativas dos clientes e usuários. Com sua conclusão, também é facilitada a construção de requisitos e características do software, estes por sua vez são organizados e apoiados por técnicas de processos de desenvolvimento de software e modelos de ciclo de vida existentes na área da Engenharia de software.

Engenharia de Software

Segundo Friedrich Ludwig Bauer, Engenharia de Software “é a criação e a utilização de sólidos princípios de engenharia a fim de obter software de maneira econômica, confiável (…)”. Algumas das principais deficiências na produção de um software são: o mesmo é produzido por pessoas, os requisitos normalmente são bastante mutáveis e metodologias mais rigorosas necessitam de uma grande quantidade de recursos humanos. Neste contexto, o Extreme Programming (XP) surge com valores de comunicação, simplicidade, feedback e coragem, fornecendo uma abordagem mais ágil e adaptável às dificuldades do desenvolvimento de um software.

De acordo com [PRESSMAN], o processo do XP pode ser resumido em:

Porém o XP visa apenas à parte da programação em si, tratando-se de jogos, temos duas frentes de desenvolvimento: o software e o conteúdo. Baseado nesta diferença, a utilização de uma variação do XP é mais adequada.

Outra opção seria utilizar a metodologia Extreme Game Development (XGD). Embora seja uma metodologia muito recente, o XGD estende o XP para trabalhos com equipes multidisciplinares. Estas diferenças estimulam a especialização de papéis do XP, como:

No XGD há também uma modificação no processo de desenvolvimento, incluindo:

Práticas Ágeis

As metodologias ágeis abrem mão de uma gama de documentação do software a fim de simplificar o processo. Desse modo, boas práticas são utilizadas para manter o controle de qualidade do processo:

Não é incomum, equipes fazendo horas-extras e perdendo a folga para atingir o prazo. Esse é um caminho perigoso, pois à medida que ficamos cansados aumenta a nossa falta de atenção e conseqüentemente os bugs no código. Assim, o XP possui algumas técnicas para manter um ritmo de trabalho constante:

Entretanto, com uma equipe pouco experiente nem sempre práticas e bons princípios fornecem segurança ao desenvolvimento de um jogo. Em contrapartida a esta dificuldade, optamos por utilizar documentações-chave:

Conclusão

Um jogo utilizando essas idéias foi apresentado como projeto de conclusão da disciplina Programação Estruturada e Orientada a Objetos. Ao concluirmos o trabalho, fizemos um apanhado geral das técnicas e de como as adaptamos. Então apresentamos as nossas idéias em forma de uma palestra ao corpo acadêmico do Curso de Ciência da Computação na Universidade Estadual do Ceará.

Este artigo apresentou um resumo de como projetar e implementar jogos, sem fazer uso de técnicas que demandem uma grande quantidade de pessoas. Todas os métodos aqui descritos foram utilizadas por nossa equipe: Marcos, o GameDesigner (Artista e programador auxiliar), Fernando (o “Coach”, Líder Técnico e Designer de Iterações) e Eduardo (Programador Principal, e escritor da história).

Este artigo foi feito especialmente para aqueles que desejam começar, ou que já começaram a se aventurar no mundo dos Jogos, pois sabemos o quanto é difícil encontrar um caminho nesta área.

Recursos

BASTOS, Abelmon de Oliveira. Mapeamento do Processo de Modelagem em Extreme Programming no domínio de jogos: monografia.

BATES, Bob. Game Design, segunda edição.

Improve it, Práticas do XP

PRESSMAN, Roger. Engenharia de Software, 6ª edição

SCHUYTEMA, Paul. Design de Games, uma abordagem prática.

Wikipedia, Engenharia de Software

Wikipedia, Crise do software

Bugzilla

Sobre os autores

Marcos Antonio Moura Brizeno Filho, Graduando em Ciências da Computação pela Universidade Estadual do Ceará – UECE, localizada em Fortaleza, Ceará. Integrante do PET (Programa de Educação Tutorial) de Ciência da Computação e da Célula de Desenvolvimento de Jogos Lemniscata. Experiência em Game Design, Engenharia de software, Programação, Design e Arte Digital 2D.
Fernando Leonardo Martinez Figueiredo, Graduando em Ciências da Computação pela Universidade Estadual do Ceará – UECE, localizada em Fortaleza, Ceará. Integrante Líder da Célula de Desenvolvimento de Jogos Lemniscata. Experiência em Engenharia de software, Programação, Design, Arte Digital 3D e Engenharia de Som.
Paulo Eduardo Santos de Sousa, Graduando em Ciências da Computação pela Universidade Estadual do Ceará – UECE, localizada em Fortaleza, Ceará. Integrante da Célula de Desenvolvimento de Jogos Lemniscata. Experiência em Programação e Design.


Esta é uma publicação eletrônica da Sociedade Brasileira de Computação – SBC. Qualquer opinião pessoal não pode ser atribuída como da SBC. A responsabilidade sobre o seu conteúdo e a sua autoria é inteiramente dos autores de cada artigo.