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
Download

Desenvolvimento de Jogos