Lean Game Development: Desenvolvimento enxuto de jogos
()
About this ebook
Neste livro, Julia Naomi apresenta o Lean Game Development, de modo que se compreenda que o jogo digital é também um software, e que o desenvolvimento de software pode ser visto como um jogo cooperativo de invenção e comunicação na qual todas as peças são importantes. Você aprenderá sobre diversos aspectos do desenvolvimento lean aplicados a jogos, como Inceptions e MVPs, desenvolvimento guiado a testes, integração contínua, geração de hipóteses, medições e análises.
Read more from Julia Naomi Boeira
TDD para Games: Desenvolvimento guiado a testes para jogos digitais Rating: 0 out of 5 stars0 ratingsProgramação Funcional e Concorrente em Rust Rating: 0 out of 5 stars0 ratings
Related to Lean Game Development
Related ebooks
eXtreme Programming: Práticas para o dia a dia no desenvolvimento ágil de software Rating: 0 out of 5 stars0 ratingsAgile: Desenvolvimento de software com entregas frequentes e foco no valor de negócio Rating: 5 out of 5 stars5/5Scrum 360: Um guia completo e prático de agilidade Rating: 5 out of 5 stars5/5Construct 2: Crie o seu primeiro jogo multiplataforma Rating: 5 out of 5 stars5/5Arquitetura de software distribuído: Boas práticas para um mundo de microsserviços Rating: 0 out of 5 stars0 ratingsTest-driven development: Teste e design no mundo real com Ruby Rating: 0 out of 5 stars0 ratingsCodeIgniter: Produtividade na criação de aplicações web em PHP Rating: 0 out of 5 stars0 ratingsThoughtworks antologia Brasil: Histórias de aprendizado e inovação Rating: 0 out of 5 stars0 ratingsScrum: Gestão ágil para produtos de sucesso Rating: 0 out of 5 stars0 ratingsGestão de produtos de software: Como aumentar as chances de sucesso do seu software Rating: 0 out of 5 stars0 ratingsDSL: Quebre a barreira entre desenvolvimento e negócios Rating: 0 out of 5 stars0 ratingsDesign Patterns com C#: Aprenda padrões de projeto com os games Rating: 0 out of 5 stars0 ratingsTest-Driven Development: Teste e Design no Mundo Real com .NET Rating: 5 out of 5 stars5/5RSpec: Crie especificações executáveis em Ruby Rating: 0 out of 5 stars0 ratingsMétricas Ágeis: Obtenha melhores resultados em sua equipe Rating: 0 out of 5 stars0 ratingsTest-Driven Development: Teste e Design no Mundo Real Rating: 0 out of 5 stars0 ratingsOrientação a Objetos e SOLID para Ninjas: Projetando classes flexíveis Rating: 5 out of 5 stars5/5Fragmentos de um programador: Artigos e insights da carreira de um profissional Rating: 5 out of 5 stars5/5Liderança de produtos digitais: A ciência e a arte da gestão de times de produto Rating: 0 out of 5 stars0 ratingsDescomplicando o Docker Rating: 1 out of 5 stars1/5Desenvolvimento efetivo na plataforma Microsoft: Como desenvolver e suportar software que funciona Rating: 0 out of 5 stars0 ratingsDeixe seu código limpo e brilhante: Desmistificando Clean Code com Java e Python Rating: 0 out of 5 stars0 ratingsEntrega contínua em Android: Como automatizar a distribuição de apps Rating: 0 out of 5 stars0 ratingsDesign Patterns com PHP 7: Desenvolva com as melhores soluções Rating: 5 out of 5 stars5/5Test-Driven Development: Teste e Design no Mundo Real com PHP Rating: 0 out of 5 stars0 ratingsModernização de Aplicação no Microsoft Azure: Explorando o potencial da nuvem Rating: 0 out of 5 stars0 ratingsAgile Think Canvas Rating: 5 out of 5 stars5/5Scrum e Agile em Projetos 2a edição Rating: 0 out of 5 stars0 ratingsO Programador Apaixonado: Construindo uma carreira notável em desenvolvimento de software Rating: 5 out of 5 stars5/5Iniciando com Flutter Framework: Desenvolva aplicações móveis no Dart Side! Rating: 0 out of 5 stars0 ratings
Programming For You
Arduino: Guia para colocar suas ideias em prática Rating: 5 out of 5 stars5/5Python e mercado financeiro: Programação para estudantes, investidores e analistas Rating: 5 out of 5 stars5/5O universo da programação: Um guia de carreira em desenvolvimento de software Rating: 5 out of 5 stars5/5Lógica de Programação: Crie seus primeiros programas usando Javascript e HTML Rating: 3 out of 5 stars3/5Python: Escreva seus primeiros programas Rating: 4 out of 5 stars4/5Introdução à programação em C: Os primeiros passos de um desenvolvedor Rating: 4 out of 5 stars4/5PostgreSQL: Banco de dados para aplicações web modernas Rating: 5 out of 5 stars5/5Aprenda a programar com Python: Descomplicando o desenvolvimento de software Rating: 5 out of 5 stars5/5HTML5 e CSS3: Domine a web do futuro Rating: 4 out of 5 stars4/5Desenvolvimento web com PHP e MySQL Rating: 3 out of 5 stars3/5Kotlin com Android: Crie aplicativos de maneira fácil e divertida Rating: 4 out of 5 stars4/5Lógica de programação com Portugol: Mais de 80 exemplos, 55 exercícios com gabarito e vídeos complementares Rating: 0 out of 5 stars0 ratingsOrientação a Objetos: Aprenda seus conceitos e suas aplicabilidades de forma efetiva Rating: 5 out of 5 stars5/5MySQL: Comece com o principal banco de dados open source do mercado Rating: 4 out of 5 stars4/5Certificação Linux Essentials Rating: 4 out of 5 stars4/5Introdução a Data Science: Algoritmos de Machine Learning e métodos de análise Rating: 0 out of 5 stars0 ratingsTrilhas Python: Programação multiparadigma e desenvolvimento Web com Flask Rating: 4 out of 5 stars4/5Orientação a Objetos em C#: Conceitos e implementações em .NET Rating: 5 out of 5 stars5/5O Programador Apaixonado: Construindo uma carreira notável em desenvolvimento de software Rating: 5 out of 5 stars5/5PHP e Laravel: Crie aplicações web como um verdadeiro artesão Rating: 0 out of 5 stars0 ratingsColetânea Front-end: Uma antologia da comunidade front-end brasileira Rating: 0 out of 5 stars0 ratingsDjango de A a Z: Crie aplicações web rápidas, seguras e escaláveis com Python Rating: 0 out of 5 stars0 ratingsEstruturas de Dados: Domine as práticas essenciais em C, Java, C#, Python e JavaScript Rating: 0 out of 5 stars0 ratingsProgramação Funcional: Uma introdução em Clojure Rating: 4 out of 5 stars4/5Consultoria Especializada e Estratégias De Trade De Forex Rating: 0 out of 5 stars0 ratingsMachine Learning: Introdução à classificação Rating: 0 out of 5 stars0 ratingsArduino prático: 10 projetos para executar, aprender, modificar e dominar o mundo Rating: 3 out of 5 stars3/5Desbravando Java e Orientação a Objetos: Um guia para o iniciante da linguagem Rating: 5 out of 5 stars5/5React Native: Desenvolvimento de aplicativos mobile com React Rating: 5 out of 5 stars5/5Business Intelligence: Implementar do jeito certo e a custo zero Rating: 4 out of 5 stars4/5
Reviews for Lean Game Development
0 ratings0 reviews
Book preview
Lean Game Development - Julia Naomi Boeira
Sumário
ISBN
Agradecimentos
Sobre a autora
Sobre o livro
Prefácio
1. Introdução
2. Primeiros passos no Lean
3. Uma inception na prática!
4. MVPs: realmente necessários?
5. MVGs na prática
6. Como gerar hipóteses?
7. Desenvolvimento guiado a testes
8. Integração contínua
9. O mundo entre o design e o build
10. Testar, codar, testar
11. Medir e analisar
12. Gerar ideias para iterar
13. Resumo
14. Mais sobre games
15. Anexo A — Técnicas e ferramentas lean e ágeis
16. Anexo B — Engines
17. Anexo C — Plataformas de distribuição
18. Referências
ISBN
Impresso e PDF: 978-85-5519-264-7
EPUB: 978-85-5519-265-4
MOBI: 978-85-5519-266-1
Caso você deseje submeter alguma errata ou sugestão, acesse http://erratas.casadocodigo.com.br.
Agradecimentos
Primeiro, gostaria de agradecer à minha família por estar sempre comigo e me apoiando. Obrigada, Diego e Kinjo, e obrigada aos pequenos sempre alegres e contentes Fluffy, Ffonxio e Highlander. Além disso, devo agradecer a Ada Lovelance e Alan Turing por terem sido os grandes cabeças na fundação da ciência da computação.
Tenho também de agradecer ao meu pai, por ter me comprado aquele primeiro livro de C++ para ver se eu calava a boca, e a todas as revisões de texto que ele já fez na minha vida. À minha mãe, por todo incentivo na educação. Também à Ubisoft, à Microsoft, à Nintendo, à Sony e à Sega, por terem me permitido centenas de milhares de horas de entretenimento com videogames.
Tenho de agradecer a Universidade Federal do Rio Grande do Sul (UFRGS), especialmente à professora Vania e ao professor Luis Alberto, pois sempre me deram espaço para explorar a minha criatividade, apesar de ela às vezes ir para terras inimagináveis. Aos professores da especialização em desenvolvimento de jogos digitais da Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS), em especial o Vitor Severo Leães e o Christian Lykawka, por terem me ajudado a desenvolver o conhecimento em games.
A todo o pessoal da Thoughtworks, especialmente ao Rodolfo e ao Marcelo, que levaram as empreitadas de games comigo, e a todos que me ajudaram lá — a lista é muito grande, mas citarei as seis pessoas mais importantes: Aneliz, Enzo (várias palestras sobre CI, CD, TDD e muitas horas de diversão), Renata, Otávio, Ana Daros e Braga. E um agradecimento especial ao Paulo Caroli, por ter me dito que o Lean Game Development deveria ser muito mais do que uma palestra de 25 minutos e, também, por todo o material que ele disponibilizou na internet para que as pessoas pudessem consultar.
Ao meu time na Ubisoft, por me ajudar a evoluir cada vez mais.
E, claro, agradecer à Vivian, à Bianca e à Casa do Código, por acreditarem no Lean Game Development e por me ajudarem no desenvolvimento do livro.
Um agradecimento especial à Lenora Lerrer Rosenfield, pela ideia da arte para a capa do livro.
Sobre a autora
Julia Naomi Boeira é team lead programmer na Ubisoft Winnipeg, onde prega o desenvolvimento lean, mas já atuou como engenheira de software no Nubank e na Thoughtworks Brasil. Atualmente, atua como evangelista Rust na Ubisoft e produz bastante conteúdo voltado ao desenvolvimento de jogos em Rust e Unity. É autora dos livros TDD para Games e Programação Funcional e Concorrente em Rust, publicados pela Casa do Código.
Já trabalhou com as engines Snowdrop, Unity, Unreal Engine, CryEngine. Ao perceber que a indústria de games havia interpretado errado os métodos ágeis, buscou uma solução que pudesse ser utilizada de forma mais convergente com o mundo dos games.
A autora teve a colaboração de Rodolfo Pereira, desenvolvedor de software da Thoughtworks, e de Jay Kim, UX Designer, no desenvolvimento e adaptações dos conceitos já existentes para a criação do Lean Game Development. A revisão técnica foi feita por Vitor Severo Leães — Diretor de Operações da Hermit Crab Game Studio e professor convidado da pós-graduação em Jogos Digitais e, também, do MBA em Liderança, Inovação e Gestão 4.0, ambos pela PUCRS — e por Jay Kim.
Sobre o livro
A indústria de jogos parece ter alguma resistência aos métodos ágeis. Entretanto, grande parte dessa resistência se dá por tentativas frustradas de implementar algumas ferramentas propostas pelos métodos ágeis, em especial, Scrum. Sempre acreditei que os métodos e ferramentas ágeis aplicados não podem nunca se sobrepor ao que é proposto no Manifesto Ágil (disponível em: http://agilemanifesto.org/iso/ptbr/manifesto.html):
Indivíduos e interações mais que processos e ferramentas;
Software em funcionamento mais que documentação abrangente;
Colaboração com o cliente mais que negociação de contratos;
Responder a mudanças mais que seguir um plano.
O que mais percebo é o peso que tem o primeiro item, pois raramente vejo um local em que processos e ferramentas não sejam superiores a indivíduos e interações. Sempre que vejo empresas de jogos falando de suas tentativas frustradas com métodos ágeis, vejo-as falando sobre como utilizaram os processos e a ferramenta de forma rígida, o que me dá muita pena.
Além disso, creio que o desenvolvimento guiado por testes tenha nascido do segundo item, já que, a meu ver, testes extensivos podem ser interpretados como documentação e, ainda, ajudam no software em funcionamento. Penso que, no mundo dos jogos, a colaboração com o cliente seja a etapa fundamental no desenvolvimento, já que o software serve, principalmente, para o entretenimento. Outro aspecto importante é que o mercado e a vida mudam, e é preciso se adaptar às necessidades atuais. Jogos podem levar muitos anos para ficarem prontos, e é preciso levar em consideração as tendências atuais do mercado em um processo possivelmente tão longo.
Uma empresa que é exemplo do ponto de vista de engenharia do desenvolvimento de jogos é Riot, pois ela, ao meu ver, já superou, em muitos aspectos, os métodos ágeis. Infelizmente, no fator diversidade e comunidade, ela falha (ROUSSEAU, 2021). Ela está em um estágio lean de desenvolvimento. Veja mais informações sobre a Riot em seu blog de engenharia, disponível em https://engineering.riotgames.com/.
Veja, também, alguns links de vídeos interessantes sobre desenvolvimento ágil de games (em inglês):
Common mistakes in Agile SCRUM game dev — Arch Creatives (ARCH CREATIVES, 2016), disponível em https://youtu.be/epWidgZ259M;
WGDS13 — Emil Harmsen — Agile Game Development (WGDSUMMIT, 2013), disponível em https://youtu.be/OSjytjjFYsE.
Creio que este livro seja focado principalmente em equipes de desenvolvimento de jogos dos mais diversos tipos de empresas — pessoas que, de certa forma, já enfrentaram os desafios expostos no livro, mas, principalmente, fazem parte daquelas equipes que sofrem com a pressão da entrega, com requerimentos que mudam constantemente e que queiram desenvolver jogos com cada vez mais qualidade.
Gosto de acreditar que este livro é focado em empresas indie e pequenas de desenvolvimento de jogos — isso é, talvez, o mais importante de tudo. Evidentemente, empresas de grande porte também podem tirar proveito das metodologias aqui apresentadas, porém, empresas maiores possuem muito mais dificuldades de adaptação, já que contam com processos mais burocráticos e opiniões mais verticais; além disso, elas geralmente precisam de ajuda externa para identificar seus pontos fortes e fracos, assim como identificar os pontos do processo que estão bons ou ruins. Sendo assim, este livro pode ser uma ferramenta para grandes empresas em projetos de middlewares, features específicas, arte e ferramental.
Creio também que a leitora ocasional, que tenha interesse em desenvolvimento de jogos, terá, nas estratégias apresentadas neste livro, um bom ponto de partida para começar a desenvolver seus jogos. Porém, o mais importante de tudo, creio que ela poderá levar o desenvolvimento para qualquer ambiente de trabalho, seja no desenvolvimento de software, ambiente artístico ou governamental.
Espero que o livro possibilite boas horas de entretenimento e muito conhecimento. Não há necessidade de saber programar para ler o livro. Todas as etapas que envolvem programação são focadas no ponto de vista dos testes. Além do mais, artistas e designers podem aproveitar muito para desenvolver suas técnicas de desenvolvimento em equipes de games.
Por último, mas não menos importante, analistas de negócio e gerentes de projeto — talvez as pessoas com mais interesse em garantir que as metodologias apresentadas funcionem e as responsáveis por forçar as outras pessoas para fora de suas zonas de conforto — são o principal público-alvo do livro.
Muitos dos links do livro estão em inglês, pois, infelizmente, não há materiais com a qualidade pretendida em português para alguns tópicos.
Quando o texto do livro está no plural, refere-se ao pensamento da equipe que desenvolveu o jogo. Já no singular, refere-se somente à opinião da autora.
Você pode notar, talvez com um certo estranhamento, que, ao longo do livro, optamos por usar o feminino quando há menção de um grupo genérico de pessoas. É uma forma de exercitar a conscientização da inclusão de mulheres em tais atividades, dando representatividade às desenvolvedoras e jogadoras de games, que ainda sofrem bastante discriminação neste mercado.
Prefácio
Você já percebeu a felicidade das crianças enquanto jogam? Amarelinha, esconde-esconde, adoleta, pique-bandeira, Minecraft, Halo etc.
Pois é. Crianças se divertem jogando, mas logo passam de fase: crianças, adolescentes, jovens adultos, adultos, adultos mais velhos, adultos adolescentes e, por fim, adultos crianças. Porém, existem muitas pessoas que não param de jogar (e se divertir) a vida toda! E ainda tem aquela turma que trabalha criando jogos. Não fique com inveja, essa é a indústria de desenvolvimento de jogos.
Mas você já sabe disso. Você está com este magnífico livro em suas mãos, porque admira software e jogos — e quer continuar jogando, se divertindo, colaborando, criando e fazendo os jogos evoluírem.
Pois bem, a Julia é como você. Ela também gosta e trabalha com desenvolvimento de jogos, mas queria mais. Ela queria melhorar a vida de quem faz esses jogos. Para isso, ela buscou aprimorar a eficácia e a eficiência na criação deles. Julia explorou e combinou práticas e técnicas (Lean, Agile, Design Thinking, Lean UX, Lean StartUp, entre outras) e alcançou excelentes resultados.
As pessoas mais próximas tiveram a oportunidade de aprender com ela e diziam: Nossa, mas essa forma de trabalhar é muito show!
. Todavia, muitos outros — aqueles que ouviam os relatos de como a Julia estava arrebentando, mas não tinham a oportunidade de trabalhar diretamente com ela — pediam a ela referências sobre essa nova forma de criar jogos.
Julia atendeu ao pedido e escreveu de forma simples e efetiva como ela guia o desenvolvimento de jogos, por exemplo: comece com um workshop colaborativo para decidir o direcionamento do jogo; faça entregas frequentes do MVG (Minimum Viable Game); desenvolva com base em testes e integre o código continuamente.
Neste excelente livro, Julia compartilha todas as etapas da criação do jogo Super Jujuba Sisters, em plataforma 2D, desde a sua concepção às entregas incrementais do MVG.
Aproveite e divirta-se aprendendo.
Boa leitura!
Paulo Caroli
Capítulo 1
Introdução
Este livro foi pensado de forma a apresentar uma nova maneira de desenvolver jogos para equipes com pouca, ou nenhuma, experiência em metodologias ágeis e/ou lean. Além disso, o livro utiliza um jogo fictício, que é a combinação de três outros jogos, anônimos, que foram produzidos com as técnicas apresentadas neste livro. Infelizmente, não é possível entrar em mais detalhes sobre esses jogos devido a NDAs (acordos de segredo).
Lean production (ou apenas Lean, termo em inglês que pode ser traduzido para enxuto) deriva do sistema de produção toyotista, que tem como objetivo principal reduzir o