Академический Документы
Профессиональный Документы
Культура Документы
1. Introdução
A crescente busca por entretenimento digital tem sido o motor que impulsiona a rápida
expansão da indústria dos jogos eletrônicos, ou games. Segundo pesquisa da DFC
Intelligente, a receita global da indústria dos games, que foi de US$60,4 bilhões em
2009, passará a valer aproximadamente US$ 77,1 bilhões em 2015 [Reuters 2010].
Tamanho investimento tem tornado o desenvolvimento de jogos cada vez mais
complexo e custoso, fazendo com que jogos modernos e rentáveis necessitem de um
processo de produção que envolva uma equipe especializada para cada área do projeto.
O processo de desenvolvimento de um jogo pode ser segmentado em etapas bem
definidas, como propõe os modelos prescritivos, de análise, projeto, implementação e
teste [Reis 2002]. Por outro lado, os modelos ágeis afirmam que um processo rígido não
se adéqua à natureza subjetiva dos jogos, especialmente os requisitosdo projeto. Assim,
este artigo tem como objetivo realizar uma análise de como tais modelos podem se
aplicar no processo de desenvolvimento de jogos eletrônicos, e com base nesta análise
realizar uma comparação entre os modelos a fim de se estabelecer qual se aplica de
forma mais eficiente ao contexto dos jogos eletrônicos.
O restante do artigo encontra-se organizado como segue. No tópico 2 são
mostradas as principais fases no desenvolvimento de jogos eletrônicos. Os tópicos 3 e 4
enfocam como tais fases podem ser modeladas de formas prescritivas e ágeis
respectivamente, e o tópico 5, por sua vez, realiza uma comparação entre tais modelos.
2.1. Design
Semelhante à fase de análise nos processos prescritivos, a fase de design de um jogo
eletrônico tem como objetivo elucidar as características e requisitos do produto, mas
sem se aprofundar em questões técnicas e de implementação. A grande dificuldade no
levantamento de requisitos para um jogo eletrônico é o problema de constante
volatilidade, ou seja, constantes mudanças e adaptações nos requisitos causadas pelo
avanço tecnológico ou pelo lançamento de outros jogos.
2.2. Projeto
Nesta fase de desenvolvimento a implementação é detalhada e são estabelecidos os
algoritmos, estruturas de dados e tecnologias que serão utilizados no software. A
escolha da tecnologia é uma característica que diferencia os games, pois os seus tipos de
requisitos fazem com que os desenvolvedores busquem constantemente por tecnologias
muito novas.
2.3. Codificação
Geralmente, em todos os projetos de software a fase de codificação exige do
programador conhecimento e capacidade técnica. No caso do programador de jogos
eletrônicos são necessárias algumas características adicionais como: fácil adaptação com
novas tecnologias e saber lidar bem com outros profissionais do projeto como designers,
artistas e escritores.
A utilização de tecnologia de ponta faz com que o desenvolvimento de jogos se
torne um verdadeiro laboratório, onde o programador pode ser obrigado a eliminar
grande parte do seu trabalho devido a não obtenção de um resultado satisfatório.
2.4. Teste
A fase de teste de um game não se limita à busca por erros, mas envolve também testar a
jogabilidade e verificar a aceitação do jogo por parte dos usuários. Para tal, são
utilizadas técnicas de teste como o playtest, onde testadores previamente selecionados
são utilizados. Uma vantagem dessa técnica é que os testadores, além de apontarem os
erros, podem dar informações detalhadas e sugestões de como solucionar o problema.
2.5. Manutenção
Muitas vezes são necessárias atualizações do game, já comercializado, para que defeitos
sejam reparados. Nos jogos para console são poucas as alternativas de atualização; mas
como essas plataformas apresentam poucas variações de hardware e software, uma
extensa fase de testes pode evitar inconvenientes no lançamento de um game. No caso
de jogos para computadores pessoais, mesmo com uma intensa fase de testes, problemas
de compatibilidade acabam aparecendo devido à grande variedade de dispositivos de
hardware e software, fazendo com que seja comum o lançamento de atualizações para
correção neste ambiente.
3.1. Prototipagem
Muitas vezes o cliente tem uma idéia geral das características e funcionalidades do jogo,
mas muitos requisitos ou detalhes ainda estão incertos ou vagos. O modelo de
prototipagem então, a partir de uma iteração rápida do processo, cria um protótipo do
game que então é avaliado pelo cliente para que os demais requisitos sejam esclarecidos.
O modelo de prototipagem, apesar de ser considerado como outro modelo, pode ser
adaptado a outros modelos.
Os desenvolvedores devem ter conhecimento de que um protótipo tem como
finalidade definir os requisitos, e deve ser descartado logo que seu objetivo tiver sido
alcançado. O que muitas vezes ocorre é a tentativa de fazer com que um protótipo
malfeito se torne um software executável, fazendo com que a qualidade do produto
sofra.
3.2. Rapid Application Development (RAD)
O modelo RAD enfatiza a programação em componentes e permite a uma equipe
desenvolver um sistema dentro de pouco tempo (30-90 dias) [Pressman 2010]. Como os
outros modelos, o processo RAD engloba as fases de desenvolvimento já citadas, sendo
que a fase de implementação utiliza-se de componentes pré-existentes e geração de
código automático.
A fim de que tal modelo seja aplicado no desenvolvimento de um jogo, o game
deve ser modularizado; assim, cada componente do sistema pode ser implementado por
diferentes equipes de programadores; no final deve ser feita a integração de todos os
componentes implementados no sistema. Equipes trabalhando em vários componentes
ao mesmo tempo diminuem o tempo de implementação, possibilitando uma rápida
entrega do software.
3.3. Espiral
O modelo em espiral combina uma natureza iterativa com as fases sistemáticas dos
modelos prescritivos, fornecendo uma base para o desenvolvimento rápido de versões
cada vez mais completas [Pressman 2010].
Utilizando o modelo espiral, uma equipe desenvolve uma versão do software a
cada iteração. Nas primeiras iterações, as versões desenvolvidas podem ser modelos no
papel ou protótipos. Nas últimas iterações já são produzidas versões mais completas e
próximas da versão final. O modelo espiral é uma abordagem mais realista do
comportamento evolucionário do software; ele mantém as fases sistemáticas dos
modelos prescritivos clássicos e os incorpora em uma abordagem iterativa
evolucionária.
Uma boa aplicação desse modelo são os jogos eletrônicos que ao longo de sua
vida irão possuir diversas versões, onde cada volta (ou mais de uma) na espiral poderia
ter como produto uma nova versão do game. A natureza evolucionária do modelo
também facilita na criação de protótipos que podem, na fase de testes, trazer
rapidamente um feedback sobre a jogabilidade e aceitação do jogo que direcionaria o
projeto.
6. Considerações Finais
Diante da problemática envolvendo o desenvolvimento de jogos eletrônicos em curto
prazo e que satisfaçam requisitos não bem definidos, percebe-se que tal problema
necessita de modelos de desenvolvimento diferentes dos tradicionalmente empregados.
A partir do raciocínio adotado foi possível estabelecer uma relação entre metodologias
ágeis e prescritivas, indicando que uma possível melhor solução seria uma mescla de
qualidades presentes em ambas as metodologias. Muitas pesquisas voltadas para a área
de engenharia de software têm sido realizadas a fim de estabelecer novos métodos de
desenvolvimento mais eficientes, e espera-se que venham a solucionar os problemas
relacionados ao desenvolvimento de jogos eletrônicos.
7. Referências
Kasperavicius, L. et al. (2008) “Ensino de Desenvolvimento de Jogos Digitais Baseado
em Metodologias Ágeis: o Projeto Primeira Habilitação”. In XXVIII Congresso da
Sociedade Brasileira de Computação – Belém, PA
Jacobson, I. (2002) “A Resounding „Yes‟ to Agile Processes – But Also More”. Cutter
IT Journal, vol .15, n. 1, jan.
Pressman, R. S. (2010), Engenharia de Software, tradução Rosângela Ap. D. Penteado,
6ª edição, Porto Alegre: AMGH.
Reis, A. S., Nassu, B. T. e Jonack, M. A. (2002) “Um Estudo Sobre os Processos de
Desenvolvimento de Jogos Eletrônicos (Games)”. Universidade Federal do Paraná –
Departamento de Informática.
Beck, K. et al. (1999) “Manifesto for Agile Software Development”, disponível em:
<http://agilemanifesto.org>, último acesso em: 16 de Junho de 2010
Nogueira, J., Jones, C. e Luqi (2000) “Surfing the Edge of Chaos: Applications to
Software Engineering”. Command and Control Research and Technology
Symposium, Naval Post Graduate School, Monterey, CA. Disponível em:
http://www.dodccrp.org/events/2000_CCRTS/html/pdf_papers/Track_4/075.pdf
Reuters (2010) “Indústria mundial de games movimenta US$ 60 bi por ano”, disponível
em: <http://br.reuters.com/article/internetNews/idBRSPE65E08R20100615>, último
acesso em: 13 de Junho de 2010.
Standish Group (2009) “Chaos Report 2009”, disponível em:
<http://standishgroup.com/newsroom/chaos_2009.php>, último acesso em: 16 de
Junho de 2010.