Desenvolvimento de Jogos Um Processo Criativo de Engenharia de Software Gustavo Henrique [email protected] Nacha Costa [email protected] 13 / 07 / 2005 – CIn – UFPE 13 / 07 / 2005 Jogo: Pacman [1] Plataforma:{ ghpc, Atarincb 2600 (~ $249 – 1977) [9] } @ cin.ufpe.br 2 13 / 07 / 2005 Jogo: Super Mario World [3] Plataforma: Super Nintendo (~ $199 – 1991) [2] [9] { ghpc, ncb } @ cin.ufpe.br 3 Jogo: Need for Speed [4] Plataforma: Playstation I (~ $299 - 1995) [2] [9] 13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 4 13 / 07 / 2005 Jogo: Dead to rights II – Hell to pay [6] Plataforma: Playstation II (~ $299 - 1995) [5] [9] { ghpc, ncb } @ cin.ufpe.br 5 Jogo: Forza Motorsport [8] Plataforma: Xbox (~ $299 - 2001) [7] [9] 13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 6 Jogo: Gears of War [8] Plataforma: Xbox 360 (~ $400 - 2005) [3] [9] 13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 7 Jogo: Killzone 2 [6] Plataforma: Playstation 3 (?? – 2006) [3] [9] 13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 8 13 / 07 / 2005 Jogo: Battlefield 2 [6] Plataforma: PC { ghpc, ncb } @ cin.ufpe.br 9 Algumas Empresas 13 / 07 / 2005 [10] { ghpc, ncb } @ cin.ufpe.br 10 Desenvolvimento de Jogos Annual Salary Faturamento: US$ 17 bilhões em 2003 [14] Obs.: Maior do que a indústria de cinema. 13 / 07 / 2005 [11] 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] { ghpc, ncb } @ cin.ufpe.br 11 Cadeia de Valor [15] Dinheiro Artista Desenvolvedor Animador Subcontratados Designer Arquivos de música / arte / etc. Programador Jogo Testador Eng. de som Marketing Relações Públicas Publisher Produção Distribuição Dados para o jogo Detentor de Licenças 13 / 07 / 2005 Dinheiro = Financiador Dados para marketing = Processo criativo { ghpc, ncb } @ cin.ufpe.br 12 Processo de Desenvolvimento [16] METODOLOGIA DE DESENVOLVIMENTO QUALIDADE PLANEJAMENTO & GERÊNCIA Game Design 13 / 07 / 2005 Desenvolviment o { ghpc, ncb } @ cin.ufpe.br Testes 13 Processo de Desenvolvimento [16] METODOLOGIA DE DESENVOLVIMENTO QUALIDADE PLANEJAMENTO & GERÊNCIA Game Design 13 / 07 / 2005 Desenvolviment o { ghpc, ncb } @ cin.ufpe.br Testes 14 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 15 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 16 XGD [17] Exibir labirinto <<include>> Exibir fantasmas <<include>> <<include>> Exibir imagens na tela Jogador Exibir score <<include>> Exibir quantidade de vidas 13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 17 Processo de Desenvolvimento [16] METODOLOGIA DE DESENVOLVIMENTO QUALIDADE PLANEJAMENTO & GERÊNCIA Game Design 13 / 07 / 2005 Desenvolviment o { ghpc, ncb } @ cin.ufpe.br Testes 18 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 19 Processo de Desenvolvimento [16] METODOLOGIA DE DESENVOLVIMENTO QUALIDADE PLANEJAMENTO & GERÊNCIA Game Design 13 / 07 / 2005 Desenvolviment o { ghpc, ncb } @ cin.ufpe.br Testes 20 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 21 Planejamento & Gerência • Essencial: planejar os riscos • Desenvolver jogos depende de [26] – 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 Atraso da versão experimental do jogo 13 / 07 / 2005 RECURSOS Programação / Design IMPACTO CONTINGÊNCIA MITIGAÇÃO 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 { ghpc, ncb } @ cin.ufpe.br 22 Planejamento & Gerência • [27] Essencial: organizar as interdependências [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 13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 23 Processo de Desenvolvimento [16] METODOLOGIA DE DESENVOLVIMENTO QUALIDADE PLANEJAMENTO & GERÊNCIA Game Design 13 / 07 / 2005 Desenvolviment o { ghpc, ncb } @ cin.ufpe.br Testes 24 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 25 Game Design • [28] [29] [30] Introdução – Motivação do documento – Objetivos do documento – Público-alvo do documento [31] • Concepção do Jogo – – – – – – 13 / 07 / 2005 Introdução do jogo Background do jogo Descrição do jogo Principais características Plataformas (restrições) Arte conceitual { ghpc, ncb } @ cin.ufpe.br [32] 26 Game Design [28] [29] [30] Estágio 1 • 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 Estágio 2a Estágio 2b Estágio Especial • Especificação Funcional – Mecânica do jogo • • • • • 13 / 07 / 2005 Fluxo do jogo Atuação do jogador Física, IA GUI Arte, efeitos sonoros e música Estágio Final Difícil Final { ghpc, ncb } @ cin.ufpe.br Estágio Final Fácil Game Over 27 Processo de Desenvolvimento [16] METODOLOGIA DE DESENVOLVIMENTO QUALIDADE PLANEJAMENTO & GERÊNCIA Game Design 13 / 07 / 2005 Desenvolviment o { ghpc, ncb } @ cin.ufpe.br Testes 28 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 29 Desenvolvimento + Estórias Game Design Design técnico (Planejamento) Obs.: O pessoal de arte também está trabalhando! 13 / 07 / 2005 [35] Design criativo (Planejamento) Design técnico FIM { ghpc, ncb } @ cin.ufpe.br Design criativo Documento de Projeto Implementação Testes 30 Desenvolvimento [35] Overview Temática Design criativo Descrevem tecnicamente como o jogo irá “look, feel, play” Interface Storyboards Protótipos Mecânica do Jogo Análise de requisitos Design técnico Arquitetura do sistema Especificação de módulos 13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 31 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 Boas Práticas - Grau de detalhes de cada jogador • Práticas Equivocadas - Tecnologias vs. Modelos Diablo II [31] 13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 32 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 33 Processo de Desenvolvimento [16] METODOLOGIA DE DESENVOLVIMENTO QUALIDADE PLANEJAMENTO & GERÊNCIA Game Design 13 / 07 / 2005 Desenvolviment o { ghpc, ncb } @ cin.ufpe.br Testes 34 Testes • [38] “Sometimes I think of making a videogame as an endless process of fixing thousands of bugs.” – Jamie Fristom Early Alpha 13 / 07 / 2005 Late Alpha { ghpc, ncb } @ cin.ufpe.br Beta 35 Testes • [39] Jogabilidade + Level Design – Usabilidade • A experiência do jogador está intimamente relacionada com a usabilidade do jogo • Grande gama de jogos dentro de um mesmo estilo – Jogos de corrida 13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br Classificação de problemas de usabilidade [40] 36 Testes [39] Tipo: Severo Descrição: o player se move muito devagar Tipo: Severo Descrição: não há feedback indicando que não é possível pegar algum item Tipo: Severo Descrição: o player pegou uma arma e não notou Tipo: Catastrófico Descrição: uma cor possui vários significados no mapa 13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 37 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 [6] • Mas o processo não pode deixar de ser criativo! 13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 38 A Referência 13 / 07 / 2005 [16] { ghpc, ncb } @ cin.ufpe.br 39 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 40 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 41 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 13 / 07 / 2005 { ghpc, ncb } @ cin.ufpe.br 42 Desenvolvimento de Jogos Um Processo Criativo de Engenharia de Software Gustavo Henrique [email protected] Nacha Costa [email protected] 13 / 07 / 2005 – CIn – UFPE