desenvolvimento de jogos um processo criativo de engenharia de software gustavo henrique...
TRANSCRIPT
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