Desenvolvimento de Jogos Um Processo Criativo de Engenharia de Software Gustavo Henrique...
Transcript of Desenvolvimento de Jogos Um Processo Criativo de Engenharia de Software Gustavo Henrique...
Desenvolvimentode Jogos
Um Processo Criativo de
Engenharia de Software
Gustavo [email protected]
Nacha [email protected]
13 / 07 / 2005 – CIn – UFPE
13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 2
Jogo: Pacman [1]
Plataforma: Atari 2600 (~ $249 – 1977) [9]
13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 3
Jogo: Super Mario World [3]
Plataforma: Super Nintendo (~ $199 – 1991) [2] [9]
13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 4
Jogo: Need for Speed [4]
Plataforma: Playstation I (~ $299 - 1995) [2] [9]
13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 5
Jogo: Dead to rights II – Hell to pay [6]
Plataforma: Playstation II (~ $299 - 1995) [5] [9]
13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 6
Jogo: Forza Motorsport [8]
Plataforma: Xbox (~ $299 - 2001) [7] [9]
13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 7
Jogo: Gears of War [8]
Plataforma: Xbox 360 (~ $400 - 2005) [3] [9]
13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 8
Jogo: Killzone 2 [6]
Plataforma: Playstation 3 (?? – 2006) [3] [9]
13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 9
Jogo: Battlefield 2 [6]
Plataforma: PC
13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 10
Algumas Empresas [10]
13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 11
Desenvolvimento de Jogos [11]
Annual Salary US
Average Salary ($) 36.210 [12]
Computer Programmers 64.510 [12]
Multimedia artists and animators
52.880 [12]
Lead Game Programmer (2-5 years exp.)
79.904 [13]
Lead Game Artists (5 years exp.)
53.636 [13]Faturamento: US$ 17 bilhões em 2003 [14]
Obs.: Maior do que a indústria de cinema.
13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 12
Cadeia de Valor [15]
DesenvolvedorDesenvolvedor
Artista
Animador
Designer
Eng. de som
Programador
Testador
= Processo criativo
Detentor deLicenças
Detentor deLicenças
SubcontratadosSubcontratados
Publisher
= Financiador
Dinheiro
Arquivos de música / arte / etc.
Jogo
DinheiroDados para o jogo
Dados para marketing
MarketingRelaçõesPúblicas
Produção Distribuição
13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 13
Processo de Desenvolvimento [16]
METODOLOGIA DE DESENVOLVIMENTOMETODOLOGIA DE DESENVOLVIMENTO
QUALIDADE
PLANEJAMENTO & GERÊNCIA
Game Design
Game Design
TestesTestesDesenvolvimento
Desenvolvimento
13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 14
Processo de Desenvolvimento [16]
METODOLOGIA DE DESENVOLVIMENTOMETODOLOGIA DE DESENVOLVIMENTO
QUALIDADE
PLANEJAMENTO & GERÊNCIA
Game Design
Game Design
TestesTestesDesenvolvimento
Desenvolvimento
13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 15
XGD [17]
• XGD = Extreme Game Development [21]
– Uma adaptação do XP para jogos
• Foco: criar um produto (jogo) funcional
• Várias empresas já utilizam esta metodologia [18]
• Motivação: elevado índice de atrasos no desenvolvimento de jogos vs. penalidades severas impostas pelos Publishers [19]
• Atrasos [20]
– Tecnologia muda muito rapidamente– Freqüentemente os desenvolvedores querem fazer “O” jogo– Publishers freqüentemente mudam seus anseios
• XGD: uma maneira de minimizar os atrasos
13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 16
XGD [17]
• Os valores do XP precisam ser preservados no XGD– Simplicidade, comunicação, feedback, coragem
• Estórias: ajudam a estimar e identificar requisitos do jogo– Pequenas descrições de funcionalidades do jogo
• Exemplo (PACMAN):– Ao iniciar o jogo, o jogador verá um labirinto, fantasmas dentro deste labirinto,
um score na parte inferior do vídeo e a quantidade de vidas (abaixo do score).
• Algumas estórias específicas podem ser traduzidas em casos de uso– É possível utilizar UML para modelar unidades críticas do jogo (caso de uso,
diagramas de seqüência, diagramas de classes, etc.)
• Dificuldades em traduzir práticas do XP para XGD:– Pair-programming (artistas)
13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 17
XGD [17]
Exibir quantidade de vidas
Exibir score
Exibir fantasmas
Jogador
Exibir labirinto
Exibir imagens na tela
<<include>>
<<include>>
<<include>>
<<include>>
13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 18
Processo de Desenvolvimento [16]
METODOLOGIA DE DESENVOLVIMENTOMETODOLOGIA DE DESENVOLVIMENTO
QUALIDADE
PLANEJAMENTO & GERÊNCIA
Game Design
Game Design
TestesTestesDesenvolvimento
Desenvolvimento
13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 19
Qualidade [22]
• Documentar o que se espera por qualidade (do processo, do produto, das pessoas)
– Utilizar parâmetros mensuráveis
• Qualidade do Processo– Documentar o processo de desenvolvimento de jogos– Estabelecer padrões de documentação
• Qualidade do Produto– Inspecionar o código durante o desenvolvimento– Realizar testes (unitários, funcionais, de jogabilidade, de usabilidade, etc.)
• Qualidade das Pessoas– Prover um ambiente de desenvolvimento confortável– Não deixar o desenvolvedor confundir criar jogos com jogar
13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 20
Processo de Desenvolvimento [16]
METODOLOGIA DE DESENVOLVIMENTOMETODOLOGIA DE DESENVOLVIMENTO
QUALIDADE
PLANEJAMENTO & GERÊNCIA
Game Design
Game Design
TestesTestesDesenvolvimento
Desenvolvimento
13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 21
Planejamento & Gerência [23] [24] [25]
• Gerenciar / Planejar é uma atividade extremamente crítica no desenvolvimento de jogos
• Alto grau de interdependência entre recursos e pessoas– É fácil gerar atrasos
• Prazos rígidos (planejamento de marketing do Publisher)– Multas severas para atrasos
• Programador: implementar movimentação do player– Precisa: do modelo animado do personagem (animador)
• Animador: animar o personagem– Precisa: do modelo estático do personagem (modelador)
• Modelador: modelar o personagem– Precisa: da arte conceitual do personagem (artista)
13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 22
Planejamento & Gerência [26]
• Essencial: planejar os riscos
• Desenvolver jogos depende de– Conhecimento técnico (OpenGL, Processamento Gráfico, etc.)– Alto grau de especialização (Engenheiro de som, etc.)– Subjetividade / intuição (O que irá prover diversão, etc.)
vários fatores que potencializam riscos
RISCO RECURSOS IMPACTO CONTINGÊNCIA MITIGAÇÃO
Atraso da versão experimental do
jogo
Programação / Design
10 dias (2 semanas) para o primeiro demo
Redigir um bom documento de game design e
começar a implementação
em paralelo
Negociar 1 hora extra por dia no
expediente
13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 23
[A] Graphics Engine[B] Sound Engine[C] Music Engine[D] Input Engine[E] Gameplay/general programming[F] Physics [G] 2D Artwork[H] 3D Artwork[I] Sound effects[J] Music recording[K] Level Design
Planejamento & Gerência [27]
• Essencial: organizar asinterdependências
13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 24
Processo de Desenvolvimento [16]
METODOLOGIA DE DESENVOLVIMENTOMETODOLOGIA DE DESENVOLVIMENTO
QUALIDADE
PLANEJAMENTO & GERÊNCIA
Game Design
Game Design
TestesTestesDesenvolvimento
Desenvolvimento
13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 25
Game Design [15] [28] [29]
• Espinha dorsal de projetos de desenvolvimento de jogos
• Descrição das características do produto final (jogo)
• Objetivos– Apresentar o jogo para o publisher– Motivar e dar objetivos à equipe de desenvolvimento– Unificar a visão da equipe– …
• Game design: expressa a visão do jogo, descreve suas características e apresenta um plano de implementação
• Essencial produzir um documento explicativo e bem estruturado
• Documento continuamente atualizado
13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 26
• Introdução– Motivação do documento– Objetivos do documento– Público-alvo do documento
• Concepção do Jogo– Introdução do jogo– Background do jogo– Descrição do jogo– Principais características– Plataformas (restrições)– Arte conceitual
Game Design [28] [29] [30]
[31]
[32]
13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 27
Game Design [28] [29] [30]
• Proposta do Jogo– Análise da concepção do jogo– Análise de mercado– Análise técnica– Análise legal– Custos e projeções de venda
• Especificação Funcional– Mecânica do jogo
• Fluxo do jogo• Atuação do jogador• Física, IA• GUI• Arte, efeitos
sonoros e música
Estágio 1
Estágio 2a Estágio 2b
Estágio Final FácilEstágio Final Difícil
Estágio Especial
GameOver
Final
13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 28
Processo de Desenvolvimento [16]
METODOLOGIA DE DESENVOLVIMENTOMETODOLOGIA DE DESENVOLVIMENTO
QUALIDADE
PLANEJAMENTO & GERÊNCIA
Game Design
Game Design
TestesTestesDesenvolvimento
Desenvolvimento
13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 29
Desenvolvimento [15] [33]
• Diablo II [31]
– Desenvolvedores (full-time): 40 / Tempo de desenvolvimento: 3 anos– Lançamento: 28 de Junho de 2000 / Plataformas: PC e Macintosh
• Tom Clancy's Splinter Cell [34]
– Desenvolvedores (full-time): 76 / Tempo de desenvolvimento: 5 meses– Lançamento: 28 de Março de 2003 / Plataforma: PlayStation 2
• Final Fantasy VII [15]
– Custo: US$ 40 milhões / Tempo de desenvolvimento: 3 anos
• Asheron’s Call [15]
– Tempo de desenvolvimento: 4 anos / Linhas de código: 2 milhões
• Não há mais espaço para romantismo no desenvolvimento.– Especificação técnica: classes, padrões de codificação, etc.
13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 30
Desenvolvimento [35]
Estórias Game Design
+ Design criativo(Planejamento)
Design criativo
Design técnico(Planejamento)
Design técnicoDocumentode Projeto
ImplementaçãoTestesFIMObs.: O pessoal de arte também
está trabalhando!
13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 31
Desenvolvimento [35]
Design criativo
Design técnico
Overview
Temática
Interface Storyboards
Protótipos
Mecânica do Jogo
Descrevem tecnicamente
como o jogo irá “look, feel, play”
Análise de requisitos
Arquitetura do sistema
Especificação de módulos
13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 32
Postmortem [36]
• Realizar uma análise crítica sobre o processo de desenvolvimento do jogo
– Boas práticas vs. Práticas equivocadas
• Propagar acertos e não insistir nos erros
• Definir um formato padrão– Introdução / Processo de Desenvolvimento / Time de Desenvolvimento /
Ferramentas Utilizadas / Práticas certas / Práticas erradas / Dados Numéricos do Projeto / Conclusão
• Diablo II [31]
Boas Práticas Práticas Equivocadas- Grau de detalhes de cada jogador - Tecnologias vs. Modelos
13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 33
Critical Stage Analysis (CSA) [37]
• "What's wrong with the games that are out there today?“– Wolfgang Hamann
• Postmortem– No final do projeto – Não oferece possibilidade de resolver erros no projeto atual– Ninguém é responsável por corrigir os erros apontados pelo postmortem– Costuma lidar com problemas de alto nível
• CSA: busca melhorar o jogo atual examinando o seu progresso em estágios críticos durante o seu ciclo de desenvolvimento
– 5 pontos positivos– 5 pontos negativos– 5 pontos que podem ser melhorados
13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 34
Processo de Desenvolvimento [16]
METODOLOGIA DE DESENVOLVIMENTOMETODOLOGIA DE DESENVOLVIMENTO
QUALIDADE
PLANEJAMENTO & GERÊNCIA
Game Design
Game Design
Desenvolvimento
Desenvolvimento
TestesTestes
13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 35
Testes [38]
• “Sometimes I think of making a videogame as an endless process of fixing thousands of bugs.”
– Jamie Fristom
Early Alpha Late Alpha Beta
13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 36
Testes [39]
• Jogabilidade + Level Design– Usabilidade
• A experiência do jogador está intimamenterelacionada com a usabilidade do jogo
• Grande gama de jogos dentro de ummesmo estilo
– Jogos de corridaClassificação de problemas
de usabilidade [40]
13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 37
Testes [39]
Tipo: SeveroDescrição: o player semove muito devagar
Tipo: SeveroDescrição: não háfeedback indicandoque não é possívelpegar algum item
Tipo: SeveroDescrição: o player pegou uma arma e não notou
Tipo: CatastróficoDescrição: uma cor possui vários significados no mapa
13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 38
Conclusões
• Atualmente o mercado de jogos exige um processo criativo de engenharia de software para possibilitar o desenvolvimento de jogos mais complexos e com melhor qualidade
• Um processo bem definido de desenvolvimento é um diferencial entre consolidar uma empresa de jogos no mercado e a falência
• É difícil enunciar um processo único / geral– Cada empresa precisa adaptar a sua realidade / as suas necessidades
• Mas o processo não pode deixar de ser criativo!
[6]
13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 39
A Referência [16]
13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 40
Referências
• [1] www.answers.com• [2] www.cyberiapc.com• [3] www.gamespot.com• [4] www.vidgames.com/ps/screens/screens.html• [5] www.us.playstation.com• [6] www.finalboss.com• [7] http://xbox-codes.com• [8] http://screenshots.teamxbox.com• [9] www.ps3portal.com/?page=history• [10] http://en.wikipedia.org/wiki/Category:Computer_and_video_game_companies• [11] The State of Game Development in Eastern Europe • [12] U.S. Department of Labor Bureau of Labor Statistics, May 2003 National
Occupational Employment and Wage Estimates• [13] 2003 Game Development Salary Survey, CMP Media Inc.• [14] The Economist 2003• [15] Slides da disciplina de Projeto e Implementação de Jogos 2D do CIn – UFPE• [16] Jeannie Novak, Game Development Essentials: An Introduction
13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 41
Referências
• [17] Thomas Demachy, Extreme Game Development: Right on Time, Every Time• [18] James Fristrom, Treyarch's Spider-Man, Game Developer Magazine, Aug 2002• [19] Jim Charne, Time is of the Essence, Famous Last Words IGDA column, Dec 2001 • [20] Gamasutra PostMortem Collection• [21] http://www.extremegamedev.org/cgi-bin/wiki.pl• [22] Phillip DeRosa, Top 10 Tips on How to Improve a Game Quality Assurance
Department• [23] Jamie Fristrom, Manager In A Strange Land: Dependencies, Part One – Gamasutra
Article • [24] Jamie Fristrom, Manager In A Strange Land: Dependencies, Part Two – Gamasutra
Article• [25] Tim Ryan, Controlling Chaos in the Development Process• [26] Timothy Ryan, Risk Management With Development Schedules • [27] Jack Hoxley, Critical Path Analysis and Scheduling for Game Development• [28] Tim Ryan, The Anatomy of a Design Document, Part 1• [29] Tim Ryan, The Anatomy of a Design Document, Part 2 • [30] Documento de game design do jogo Exordium implementado na disciplina de jogos• [31] Postmortem: Blizzard Entertainment's Diablo II• [32] Postmortem: SWAT3: Close Quarters Battle
13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 42
Referências
• [33] Erik Bethke, Structuring Key Design Elements• [34] Postmortem: Tom Clancy's Splinter Cell• [35] Gordon Walton, Bringing Engineering Discipline to Game Development• [36] Gamasutra Postmortem Guidelines• [37] Wolfgang Hamann, Goodbye Postmortems, Hello Critical Stage Analysis • [38] Jamie Fristrom, Production Testing and Bug Tracking• [39] Sauli Laitinen, Better Games Through Usability Evaluation and Testing
Desenvolvimentode Jogos
Um Processo Criativo de
Engenharia de Software
Gustavo [email protected]
Nacha [email protected]
13 / 07 / 2005 – CIn – UFPE