Sistema De Recomendação De Processos Para O Desenvolvimento De Jogos Digitais
Total Page:16
File Type:pdf, Size:1020Kb
UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA PROGRAMA DE PÓS-GRADUAÇÃO EM INFORMÁTICA Cristiano Politowski SISTEMA DE RECOMENDAÇÃO DE PROCESSOS PARA O DESENVOLVIMENTO DE JOGOS DIGITAIS Santa Maria, RS 2017 Cristiano Politowski SISTEMA DE RECOMENDAÇÃO DE PROCESSOS PARA O DESENVOLVIMENTO DE JOGOS DIGITAIS Dissertação apresentada ao Curso de Pós- Graduação em Informática, da Universidade Federal de Santa Maria (UFSM, RS), como requisito parcial para obtenção do título de Mestre em Ciência da Computação. Orientadora: Profa. Dra. Lisandra Manzoni Fontoura Santa Maria, RS 2017 À minha mãe. AGRADECIMENTOS À minha mãe, porque ela é incrível. À minha orientadora, professora Dra. Lisandra Manzoni Fontoura, por ter dado a confiança necessária para realizar esta pesquisa. Obrigado por ser essa pessoa querida por todos. Ao professor Dr. Fábio Petrillo, cujo trabalho serviu de inspiração para esta pes- quisa, além de estar sempre à disposição para esclarecimentos, broncas e conselhos. Definitivamente, este trabalho não existiria sem o seu auxílio. Aos colegas e amigos que fiz no grupo de pesquisa, na UFSM e em Santa Maria. São pessoas que levarei para sempre como boas lembranças. À CAPES/CNPQ por ter apoiado financeiramente esta pesquisa. “Don’t be afraid, be ready! (Edward Snowden) RESUMO O mercado de jogos digitais é uma indústria bilionária e que possui problemas na forma pela qual os jogos são desenvolvidos. Uma maneira de combater estes problemas é utilizando ferramentas de auxílio aos desenvolvedores, como Sistemas de Reco- mendação. Estas aplicações possuem um ramo destinado à engenharia de software, auxiliando o desenvolvedor gerando tarefas recomendadas. Este trabalho tem como objetivo mitigar os problemas em projetos de jogos digitais, desenvolvendo um sis- tema de recomendação de processos, utilizando como base o aprendizado por meio de experiências passadas em projetos de jogos similares, encontrados na forma de postmortems. O resultado deste trabalho apresenta três principais contribuições. A primeira delas é uma base de dados contento experiências extraídas de postmortems na forma de processos de desenvolvimento. A segunda é a definição de um contexto para projetos de jogos digitais que caracteriza e categoriza os projetos de jogos. Por fim, um sistema de recomendação para projetos de jogos digitais, que utiliza uma lista de projetos similares e o perfil do time de desenvolvimento para gerar um novo processo, com dicas e orientações sobre tarefas a serem executadas. Os processos recomen- dados auxiliam os desenvolvedores na concepção do processo de desenvolvimento do jogo, listando atividades e práticas de projetos com contexto similar, na forma de um processo de software. Os processos extraídos foram validados diretamente com os desenvolvedores dos jogos. Os elementos dos processos gerados pelo sistema de recomendação foram validados utilizando precision e recall, e também juntamente com os desenvolvedores/autores dos projetos de jogos analisados. Palavras-chave: processo de desenvolvimento de software. desenvolvimento de jogos. sistema de recomendação. ABSTRACT The digital gaming market is a billion dollar industry that faces issues in the way games are developed. One method to easy these issues is to use developer aid tools such as Recommendation Systems. These applications have a branch for software engineering, assisting the developer by generating recommended tasks. This work, therefore, aims to mitigate issues in digital game projects, developing a processes recommendation system, based on learning through past experiences in similar game projects, found in the form of postmortems. Our work brings three main contributions. The first one is a database containing experiences extracted from postmortems in the shape of development processes. The second is the definition of a context for digital gaming projects that characterizes and categorizes gaming projects. The third is a recommendation system for digital game projects that uses a list of similar projects and the development team profile to generate a new process with tips and guidance on tasks to be performed. Recommended processes assist developers in designing the game development process, listing activities and practices of projects with similar context, in the form of a software process. The extracted processes were validated with the game developers. The elements of the processes, generated by the recommendation system, were validated using precision and recall, and also together with the developers / authors of the analyzed game projects. Keywords: software development process. game development. recommendation sys- tem. LISTA DE ILUSTRAÇÕES Figura 1 – Duas abordagens para definir o contexto de projetos de software. 32 Figura 2 – Plotagem de PCs em duas dimensões (JOLLIFFE, 2002). 34 Figura 3 – Etapas do método de desenvolvimento do projeto........... 42 Figura 4 – Processo de leitura e análise dos postmortems utilizando a ferra- menta Mendeley. ............................ 49 Figura 5 – Modelo gráfico padrão, em BPMN, utilizado como template para criação dos processos. ......................... 52 Figura 6 – Processo de desenvolvimento do jogo Slow down bull. 56 Figura 7 – Visão geral do Sistema de recomendação. .............. 64 Figura 8 – Elementos do contexto para projetos de jogos............. 65 Figura 9 – Gráfico PCA com o contexto do jogo “Slow down, Bull” como entrada. 73 Figura 10 – Elemento abstrato testing e as citações dos elementos agrupados. 75 Figura 11 – Fase de pre-produção do processo recomendado pelo algoritmo para o contexto do jogo Slow down, Bull. .................. 78 Figura 12 – Fase de produção do processo recomendado pelo algoritmo para o contexto do jogo Slow down, Bull. ................... 80 Figura 13 – Biplots PCAs dos projetos analisados demonstrando a similaridade. 84 LISTA DE TABELAS Tabela 1 – Problemas mais comums no desenvolvimento de jogos. 37 Tabela 2 – Tabela usada para calcular a precision e recall dos elementos do processo.................................. 45 Tabela 3 – Lista de artigos postmortems analisados................ 50 Tabela 4 – Tabela de validação, precision-recall, para o projeto “Slow Down, Bull”. Falsos negativos: task managements, tasks review, log docu- mentation, engine unity. ........................ 85 Tabela 5 – Resultado total do cálculo Precision e Recall para os elementos dos quatro processos gerados. ....................... 85 SUMÁRIO 1 INTRODUÇÃO .............................. 23 1.1 Motivação ................................. 23 1.2 Objetivo Geral e Objetivos Específicos ................ 25 1.3 Estrutura do Trabalho .......................... 25 2 REFERENCIAL TEÓRICO........................ 27 2.1 Sistemas de Recomendação ...................... 27 2.2 Processo de Software .......................... 28 2.2.1 A abordagem preditiva e o advento dos métodos ágeis ...... 29 2.3 Contexto de Software .......................... 31 2.4 Postmortem de Jogos .......................... 32 2.5 Principal Component Analysis (PCA) ................. 33 2.6 Considerações finais do capítulo ................... 34 3 TRABALHOS RELACIONADOS .................... 37 3.1 Estudos prévios ............................. 39 3.2 Considerações finais do capítulo ................... 40 4 MÉTODO DE PESQUISA ........................ 41 4.1 Extração de processos dos postmortems .............. 41 4.2 Construção do sistema de recomendação .............. 43 4.3 Validação ................................. 44 4.4 Considerações finais do capítulo ................... 45 5 ANÁLISE DE POSTMORTEMS E CONSTRUÇÃO DE PROCESSOS 47 5.1 Coleta dos Postmortems ........................ 47 5.2 Leitura e análise dos Postmortems .................. 48 5.3 Estrutura e exportação dos dados para formato Markdown ... 49 5.4 Criação do diagrama gráfico ...................... 51 5.5 Feedback dos autores dos postmortems .............. 57 5.5.1 Feedback do processo do jogo “Red Skies” ............ 57 5.5.2 Feedback do processo do jogo “Offworld Trading Company” .. 57 5.5.3 Feedback do processo do jogo “Mini Metro” ............ 58 5.5.4 Feedback do processo do jogo “Slow Down, Bull” ........ 58 5.5.5 Feedback do processo do jogo “Prune” ............... 59 5.5.6 Feedback do processo do jogo “Out There” ............ 59 5.5.7 Feedback do processo do jogo “NFL Rush Heroes & rivals” ... 59 5.6 Considerações finais do capítulo ................... 60 5.7 Discussão dos resultados do capítulo ................ 61 6 CONSTRUÇÃO DO SISTEMA DE RECOMENDAÇÃO . 63 6.1 Definição do Contexto de Projetos de Jogos ............ 63 6.1.1 Contexto em nível de Atividades ................... 66 6.1.2 Contexto em nível de Time ....................... 68 6.1.3 Contexto em nível de Gerenciamento ................ 69 6.1.4 Contexto em nível Técnico ....................... 70 6.1.5 Contexto em nível de Plataforma ................... 71 6.1.6 Contexto em nível de Game Design .................. 72 6.2 Algoritmo de Similaridades ...................... 72 6.3 Junção dos Processos Similares ................... 73 6.3.1 Características do time de desenvolvimento no Sistema de Re- comendação ............................... 75 6.4 O Processo resultante ......................... 76 6.5 Considerações finais do Capítulo ................... 81 6.6 Discussão dos resultados do capítulo ................ 81 7 VALIDAÇÃO................................ 83 7.1 Validação “A”: semelhança do processo gerado .......... 83 7.1.1 Análise do fluxo dos elementos do processo ............ 84 7.1.1.1 Prune ...................................