Desenvolvimento com grandes equipes:
desafios e soluções
Charles Marcel de Barros
(Lead Game Programmer)
O desafio
• Desenvolver jogos em equipe:
– Prazo
– Qualidade para o jogador
– Qualidade de sistema
Por que é um desafio?
• Processo iterativo
• Numero de pessoas
• Variedade de expertise
• Mercado competitivo
• Prazo
Resultado desejado
• Crunch Time pequeno e próximo do fim do projeto
• Ambiente de trabalho agradável
• Entrega no prazo
• Atender nível de qualidade
• $$$
Resultado comum
• Crunch extenso
• Stress
• Desanimo
• Impossibilidade de entregar no prazo
• Qualidade insatisfatória
• Sistema insustentável
Time de desenvolvimento
Producer
Game Designers Context
Game Mechanics Balance
Level Designer
Artists 2d 3d
Técnico/FX Animador
User Interface
Programmers Gameplay
Sound IA UI
Tools Backend
Sound Sound Engineer
Musician
QA (Testers)
Time de desenvolvimento
Producer
Game Designers Context
Game Mechanics Balance
Level Designer
Artists 2d 3d
Técnico/FX Animador
User Interface
Programmers Gameplay
Sound IA UI
Tools Backend
Sound Sound Engineer
Musician
QA (Testers)
Time de desenvolvimento
Producer
Game Designers Context
Game Mechanics Balance
Level Designer
Artists 2d 3d
Técnico/FX Animador
User Interface
Programmers Gameplay
Sound IA UI
Tools Backend
Sound Sound Engineer
Musician
QA (Testers)
Time de desenvolvimento
Producer
Game Designers Context
Game Mechanics Balance
Level Designer
Artists 2d 3d
Técnico/FX Animador
User Interface
Programmers Gameplay
Sound IA UI
Tools Backend
Sound Sound Engineer
Musician
QA (Testers)
Time de desenvolvimento
Producer
Game Designers Context
Game Mechanics Balance
Level Designer
Artists 2d 3d
Técnico/FX Animador
User Interface
Programmers Gameplay
Sound IA UI
Tools Backend
Sound Sound Engineer
Musician
QA (Testers)
Time de desenvolvimento
Producer
Game Designers Context
Game Mechanics Balance
Level Designer
Artists 2d 3d
Técnico/FX Animador
User Interface
Programmers Gameplay
Sound IA UI
Tools Backend
Sound Sound Engineer
Musician
QA (Testers)
Time de desenvolvimento
Producer
Game Designers Context
Game Mechanics Balance
Level Designer
Artists 2d 3d
Técnico/FX Animador
User Interface
Programmers Gameplay
Sound IA UI
Tools Backend
Sound Sound Engineer
Musician
QA (Testers)
Solução?!
ORGANIZAÇÃO
Solução?!
ORGANIZAÇÃO
Solução?!
ORGANIZAÇÃO
Organização HTTP
• Hierarchy
• Tecnology
• Team Play
• Process
Hierarchy
Product Owner
Producer
Director
Lead
Dev (1..8)
Tecnology
• Qual escolher?
Engine
• Flash • Unity 3D • Unreal • CryEngine • In-house engine
Backend
• Nodes • SQL • MongoDB • PHP • ASP • Ruby
Tools
• Maya • 3D Studio • Z-Brush • Topogen • Cinema4D • Blender • Photoshop • Gimp
Management
• Jira • Bugzilla • Confluence • Project • Wiki • TeamBox • GreenHopper • HipChat • Google Docs
Tecnology
• Escolha baseada em:
– Plataforma
– Experiência da equipe
– Prazo
– Casos de sucesso
– Preço
– Estilo de jogo
– Expectativa de qualidade
Team Play
• Paixão pelo o que faz
• Não aceitar nada menos que o melhor possível
• Esforço
• Intersecção de jornada (4 a 6 horas)
• Comunicação
Team Play
• Comunicação
– Sugerir melhorias
– Reconhecer boas ideias
– Alertar perigos
– Ajudar e ensinar
– Aprender a conviver com diferenças
Process
• Metodologias
• Guidelines e documentação
• Cultura
Process
• Metodologias
Process
• Guidelines e documentação – Padronização de codigo
– Documento de design técnico
– Documento de game design
– Planilhas de balanceamento
– Limitações e guias artisticos
– Cronogramas e planejamento
– Nomenclatura, estrutura de diretorios e repositórios
Process
• Padronização de codigo – Identação, estilo – Nomenclatura – Arquitetura – Boas praticas – Más praticas
• Resultado – Uniformidade – Qualidade – Performance – Leitura
Process
• Padronização artística – Estilo
– Nomenclatura
– Limitações
– Boas praticas
– Más praticas
• Resultado – Uniformidade
– Qualidade
– Performance
Process
• Padronização gamedesign – Descrição
– Diagramas
– Imagens
– Apresentações
– Planilhas de balanceamento
– Casos de uso
• Resultado – Tarefas bem definidas
– Balanceamento adequado
Process
• Planejamento – Cronogramas
– Lista de tarefas
– Dependências
– Riscos
• Resultado – Paralelismo de tarefas
– Divisão otimizada de trabalho
– Explicitar caminhos críticos
– Visão de Escopo X Prazo
Process - Programação
• CodeStandard
• High level architecture Doc
• Code Review
• Build Machine (TeamCity, Jenkins)
• Continuous Integration
Process - Arte
• Art Bible (Estilo, cores, clima, referências)
• Art Constrain Doc
• Export Checklist
• Review
Estagios de desenvolvimento
• Cada estagio deve conter objetivos bem definidos
• Reavaliar destino do projeto a cada transição de estagio
• Não pressupunha que uma ideia ruim ficará bom com o andamento do projeto.
Estagios de desenvolvimento
• Prototipagem
– Encontrar a diversão
– Medir esforço
– Diminuir riscos
– Validar ideias
– Identificar necessidades e obstáculos cedo
– Melhora qualidade do produto final
– Possibilita estimativas mais precisas
Estagios de desenvolvimento
Pitch Conceito Pré-produção Produção Pós-Produção
Prototipo Pesquisa Audiência
Tema
Estilo Design
Prototype
First playable Alpha Beta
Code-Freeze Final
Atualizações Vendas
Comunidade
Crunch Time
• Cenário ideal
Estagios de desenvolvimento
Pitch Conceito Pré-produção Produção Pós-Produção
Prototipo Pesquisa Audiência
Tema
Estilo Design
Prototype
First playable Alpha Beta
Code-Freeze Final
Atualizações Vendas
Comunidade
Crunch Time
• Cenário comum