Desenvolvimento com grandes equipes: desafios e...

42
Desenvolvimento com grandes equipes: desafios e soluções Charles Marcel de Barros (Lead Game Programmer)

Transcript of Desenvolvimento com grandes equipes: desafios e...

Page 1: Desenvolvimento com grandes equipes: desafios e soluçõesbase.gamux.com.br/events/2013.01.25-global.game.jam.2013/palestr…O desafio •Desenvolver jogos em equipe: –Prazo –Qualidade

Desenvolvimento com grandes equipes:

desafios e soluções

Charles Marcel de Barros

(Lead Game Programmer)

Page 2: Desenvolvimento com grandes equipes: desafios e soluçõesbase.gamux.com.br/events/2013.01.25-global.game.jam.2013/palestr…O desafio •Desenvolver jogos em equipe: –Prazo –Qualidade

O desafio

• Desenvolver jogos em equipe:

– Prazo

– Qualidade para o jogador

– Qualidade de sistema

Page 3: Desenvolvimento com grandes equipes: desafios e soluçõesbase.gamux.com.br/events/2013.01.25-global.game.jam.2013/palestr…O desafio •Desenvolver jogos em equipe: –Prazo –Qualidade

Por que é um desafio?

• Processo iterativo

• Numero de pessoas

• Variedade de expertise

• Mercado competitivo

• Prazo

Page 4: Desenvolvimento com grandes equipes: desafios e soluçõesbase.gamux.com.br/events/2013.01.25-global.game.jam.2013/palestr…O desafio •Desenvolver jogos em equipe: –Prazo –Qualidade

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

• $$$

Page 5: Desenvolvimento com grandes equipes: desafios e soluçõesbase.gamux.com.br/events/2013.01.25-global.game.jam.2013/palestr…O desafio •Desenvolver jogos em equipe: –Prazo –Qualidade

Resultado comum

• Crunch extenso

• Stress

• Desanimo

• Impossibilidade de entregar no prazo

• Qualidade insatisfatória

• Sistema insustentável

Page 6: Desenvolvimento com grandes equipes: desafios e soluçõesbase.gamux.com.br/events/2013.01.25-global.game.jam.2013/palestr…O desafio •Desenvolver jogos em equipe: –Prazo –Qualidade

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)

Page 7: Desenvolvimento com grandes equipes: desafios e soluçõesbase.gamux.com.br/events/2013.01.25-global.game.jam.2013/palestr…O desafio •Desenvolver jogos em equipe: –Prazo –Qualidade

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)

Page 8: Desenvolvimento com grandes equipes: desafios e soluçõesbase.gamux.com.br/events/2013.01.25-global.game.jam.2013/palestr…O desafio •Desenvolver jogos em equipe: –Prazo –Qualidade

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)

Page 9: Desenvolvimento com grandes equipes: desafios e soluçõesbase.gamux.com.br/events/2013.01.25-global.game.jam.2013/palestr…O desafio •Desenvolver jogos em equipe: –Prazo –Qualidade

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)

Page 10: Desenvolvimento com grandes equipes: desafios e soluçõesbase.gamux.com.br/events/2013.01.25-global.game.jam.2013/palestr…O desafio •Desenvolver jogos em equipe: –Prazo –Qualidade

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)

Page 11: Desenvolvimento com grandes equipes: desafios e soluçõesbase.gamux.com.br/events/2013.01.25-global.game.jam.2013/palestr…O desafio •Desenvolver jogos em equipe: –Prazo –Qualidade

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)

Page 12: Desenvolvimento com grandes equipes: desafios e soluçõesbase.gamux.com.br/events/2013.01.25-global.game.jam.2013/palestr…O desafio •Desenvolver jogos em equipe: –Prazo –Qualidade

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)

Page 13: Desenvolvimento com grandes equipes: desafios e soluçõesbase.gamux.com.br/events/2013.01.25-global.game.jam.2013/palestr…O desafio •Desenvolver jogos em equipe: –Prazo –Qualidade

Solução?!

ORGANIZAÇÃO

Page 14: Desenvolvimento com grandes equipes: desafios e soluçõesbase.gamux.com.br/events/2013.01.25-global.game.jam.2013/palestr…O desafio •Desenvolver jogos em equipe: –Prazo –Qualidade

Solução?!

ORGANIZAÇÃO

Page 15: Desenvolvimento com grandes equipes: desafios e soluçõesbase.gamux.com.br/events/2013.01.25-global.game.jam.2013/palestr…O desafio •Desenvolver jogos em equipe: –Prazo –Qualidade

Solução?!

ORGANIZAÇÃO

Page 16: Desenvolvimento com grandes equipes: desafios e soluçõesbase.gamux.com.br/events/2013.01.25-global.game.jam.2013/palestr…O desafio •Desenvolver jogos em equipe: –Prazo –Qualidade

Organização HTTP

• Hierarchy

• Tecnology

• Team Play

• Process

Page 17: Desenvolvimento com grandes equipes: desafios e soluçõesbase.gamux.com.br/events/2013.01.25-global.game.jam.2013/palestr…O desafio •Desenvolver jogos em equipe: –Prazo –Qualidade

Hierarchy

Product Owner

Producer

Director

Lead

Dev (1..8)

Page 18: Desenvolvimento com grandes equipes: desafios e soluçõesbase.gamux.com.br/events/2013.01.25-global.game.jam.2013/palestr…O desafio •Desenvolver jogos em equipe: –Prazo –Qualidade

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

Page 19: Desenvolvimento com grandes equipes: desafios e soluçõesbase.gamux.com.br/events/2013.01.25-global.game.jam.2013/palestr…O desafio •Desenvolver jogos em equipe: –Prazo –Qualidade

Tecnology

• Escolha baseada em:

– Plataforma

– Experiência da equipe

– Prazo

– Casos de sucesso

– Preço

– Estilo de jogo

– Expectativa de qualidade

Page 20: Desenvolvimento com grandes equipes: desafios e soluçõesbase.gamux.com.br/events/2013.01.25-global.game.jam.2013/palestr…O desafio •Desenvolver jogos em equipe: –Prazo –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

Page 21: Desenvolvimento com grandes equipes: desafios e soluçõesbase.gamux.com.br/events/2013.01.25-global.game.jam.2013/palestr…O desafio •Desenvolver jogos em equipe: –Prazo –Qualidade

Team Play

• Comunicação

– Sugerir melhorias

– Reconhecer boas ideias

– Alertar perigos

– Ajudar e ensinar

– Aprender a conviver com diferenças

Page 22: Desenvolvimento com grandes equipes: desafios e soluçõesbase.gamux.com.br/events/2013.01.25-global.game.jam.2013/palestr…O desafio •Desenvolver jogos em equipe: –Prazo –Qualidade

Process

• Metodologias

• Guidelines e documentação

• Cultura

Page 23: Desenvolvimento com grandes equipes: desafios e soluçõesbase.gamux.com.br/events/2013.01.25-global.game.jam.2013/palestr…O desafio •Desenvolver jogos em equipe: –Prazo –Qualidade

Process

• Metodologias

Page 24: Desenvolvimento com grandes equipes: desafios e soluçõesbase.gamux.com.br/events/2013.01.25-global.game.jam.2013/palestr…O desafio •Desenvolver jogos em equipe: –Prazo –Qualidade

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

Page 25: Desenvolvimento com grandes equipes: desafios e soluçõesbase.gamux.com.br/events/2013.01.25-global.game.jam.2013/palestr…O desafio •Desenvolver jogos em equipe: –Prazo –Qualidade

Process

• Padronização de codigo – Identação, estilo – Nomenclatura – Arquitetura – Boas praticas – Más praticas

• Resultado – Uniformidade – Qualidade – Performance – Leitura

Page 26: Desenvolvimento com grandes equipes: desafios e soluçõesbase.gamux.com.br/events/2013.01.25-global.game.jam.2013/palestr…O desafio •Desenvolver jogos em equipe: –Prazo –Qualidade

Process

• Padronização artística – Estilo

– Nomenclatura

– Limitações

– Boas praticas

– Más praticas

• Resultado – Uniformidade

– Qualidade

– Performance

Page 27: Desenvolvimento com grandes equipes: desafios e soluçõesbase.gamux.com.br/events/2013.01.25-global.game.jam.2013/palestr…O desafio •Desenvolver jogos em equipe: –Prazo –Qualidade

Process

• Padronização gamedesign – Descrição

– Diagramas

– Imagens

– Apresentações

– Planilhas de balanceamento

– Casos de uso

• Resultado – Tarefas bem definidas

– Balanceamento adequado

Page 28: Desenvolvimento com grandes equipes: desafios e soluçõesbase.gamux.com.br/events/2013.01.25-global.game.jam.2013/palestr…O desafio •Desenvolver jogos em equipe: –Prazo –Qualidade

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

Page 29: Desenvolvimento com grandes equipes: desafios e soluçõesbase.gamux.com.br/events/2013.01.25-global.game.jam.2013/palestr…O desafio •Desenvolver jogos em equipe: –Prazo –Qualidade

Process - Programação

• CodeStandard

• High level architecture Doc

• Code Review

• Build Machine (TeamCity, Jenkins)

• Continuous Integration

Page 30: Desenvolvimento com grandes equipes: desafios e soluçõesbase.gamux.com.br/events/2013.01.25-global.game.jam.2013/palestr…O desafio •Desenvolver jogos em equipe: –Prazo –Qualidade

Process - Arte

• Art Bible (Estilo, cores, clima, referências)

• Art Constrain Doc

• Export Checklist

• Review

Page 31: Desenvolvimento com grandes equipes: desafios e soluçõesbase.gamux.com.br/events/2013.01.25-global.game.jam.2013/palestr…O desafio •Desenvolver jogos em equipe: –Prazo –Qualidade

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.

Page 32: Desenvolvimento com grandes equipes: desafios e soluçõesbase.gamux.com.br/events/2013.01.25-global.game.jam.2013/palestr…O desafio •Desenvolver jogos em equipe: –Prazo –Qualidade

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

Page 33: Desenvolvimento com grandes equipes: desafios e soluçõesbase.gamux.com.br/events/2013.01.25-global.game.jam.2013/palestr…O desafio •Desenvolver jogos em equipe: –Prazo –Qualidade

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

Page 34: Desenvolvimento com grandes equipes: desafios e soluçõesbase.gamux.com.br/events/2013.01.25-global.game.jam.2013/palestr…O desafio •Desenvolver jogos em equipe: –Prazo –Qualidade

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

Page 35: Desenvolvimento com grandes equipes: desafios e soluçõesbase.gamux.com.br/events/2013.01.25-global.game.jam.2013/palestr…O desafio •Desenvolver jogos em equipe: –Prazo –Qualidade

Charles Marcel de Barros

[email protected]

Contato

Page 36: Desenvolvimento com grandes equipes: desafios e soluçõesbase.gamux.com.br/events/2013.01.25-global.game.jam.2013/palestr…O desafio •Desenvolver jogos em equipe: –Prazo –Qualidade
Page 37: Desenvolvimento com grandes equipes: desafios e soluçõesbase.gamux.com.br/events/2013.01.25-global.game.jam.2013/palestr…O desafio •Desenvolver jogos em equipe: –Prazo –Qualidade
Page 38: Desenvolvimento com grandes equipes: desafios e soluçõesbase.gamux.com.br/events/2013.01.25-global.game.jam.2013/palestr…O desafio •Desenvolver jogos em equipe: –Prazo –Qualidade
Page 39: Desenvolvimento com grandes equipes: desafios e soluçõesbase.gamux.com.br/events/2013.01.25-global.game.jam.2013/palestr…O desafio •Desenvolver jogos em equipe: –Prazo –Qualidade
Page 40: Desenvolvimento com grandes equipes: desafios e soluçõesbase.gamux.com.br/events/2013.01.25-global.game.jam.2013/palestr…O desafio •Desenvolver jogos em equipe: –Prazo –Qualidade
Page 41: Desenvolvimento com grandes equipes: desafios e soluçõesbase.gamux.com.br/events/2013.01.25-global.game.jam.2013/palestr…O desafio •Desenvolver jogos em equipe: –Prazo –Qualidade
Page 42: Desenvolvimento com grandes equipes: desafios e soluçõesbase.gamux.com.br/events/2013.01.25-global.game.jam.2013/palestr…O desafio •Desenvolver jogos em equipe: –Prazo –Qualidade