quarta-feira, 30 de abril de 2014

upGAME Group - Progresso



Ontem o par 3 concluiu o mini-game 4.1 (Gabriel Poesia e Guilherme Cordeiro), fez alguns testes (Testes de caixa branca). O próximo passo a serem realizados nesse mini-game será a revisão de código e os testes de Caixa Preta. Testes de caixa cinza, serão realizados quando este mini-game for integrado ao restante do projeto.

Várias funções foram criadas usando JQuery e usando o MelonJs para controle do fluxo.

Neste mini-game temos 5 métricas que o jogador deve definir:


  • Número de bugs por ponto de função
  • Fração do código coberto por testes automatizados
  • Fração do código revisado por um desenvolvedor que não escreveu o código
  • Horas por ponto de função
  • Fração dos requisitos que precisaram de revisão


Depois de definir isso, ele clica em um botão que "simula" o uso dessas métricas em um projeto. Com isso, ele obtém uma mensagem de resultado, do tipo:


  • "Que pena! O número de horas máximo por ponto de função que você determinou fez com que os programadores corressem demais. O número de bugs por ponto de função no projeto foi absurdo, e isso fez com que o custo fosse alto demais!"
  • "Que pena! Sem uma meta alta, seus programadores não escreveram suficientes testes automatizados. Com isso, muitos bugs foram reintroduzidos depois de corrigidos, por não haver testes de regressão. Quem confiará no projeto entregue?"
  • "Que triste. Como você não permitiu que os requisitos fossem alterados algumas vezes, os analistas medrosos realizaram dezenas de reuniões de levantamento e consolidação de requisitos com os clientes. Isso atrasou muito o início do desenvolvimento e os clientes reclamaram do tempo que gastaram com isso, além do custo alto do projeto."
  • "É... como você permitiu que os requisitos fossem muito alterados, eles foram muito mal escritos no início do projeto. Com isso, somente em reuniões de apresentação de entregas parciais é que vocês descobriram que o cliente queria funcionalidades muito diferentes! Isso atrasou o projeto e aumentou muito seu custo, por causa das mudanças tardias em requisitos."


Ou...


  • - "O projeto foi um sucesso! Os bugs registrados durante os testes foram corrigidos a tempo e o cliente ficou satisfeito com o produto entregue. O custo ficou dentro do esperado, e toda a equipe ficou muito motivada por ter um projeto de tanto sucesso. Ninguém imaginou que a definição de metas quantitativas, quando bem aplicada, pudesse ser tão efetiva! Parabéns!"


Quando ele obtém essa última mensagem, passa para o próximo mini-game.

Estamos discutindo mensagens de retorno mais legais para melhorar a experiência de usuário, além de tentar aumentar a dificuldade, pois o mini-game pode ser resolvido através de tentativa e erro, o que não está alinhado aos nossos objetivos, que é ensinar os princípios do CMMI e não se aprende muito realizando um processo de tentativa e erro para resolver problemas.

Veja abaixo alguns screenshots relativos ao mini-game 4.1:



quinta-feira, 24 de abril de 2014

CF70 - Logo e novas decisões

Definimos uma logomarca para nossa empresa:
 








 
Decidiu-se utilizar uma textura metálica para mostrar a força e a resistência do grupo como um todo.

Além disso, pensamos também no nome do jogo e no nome do personagem principal.

O nome do personagem principal foi decidido como Renan C. Milgram.

Seu sobrenome é uma referência ao psicólogo Stanley Milgram, responsável por conduzir o famoso estudo sobre a obediência à autoridade (cujo resultado pretendemos usar na implementação do sistema de alinhamento dos personagens do jogo).

O título do jogo será: Renan Milgram e a Aula Perdida.

As tarefas na planilha continuam a serem executadas por seus respectivos membros.
A mecânica de um dos mini-jogos está bem adiantada e pretendemos detalha-la em breve.

segunda-feira, 21 de abril de 2014

Resumo planejamento do enredo - esofteacher@sHoRTc



Na reunião de planejamento da próxima corrida (sprint), decidimos que as histórias 3, 4 e 5 serão desenvolvidas.





Essas três histórias, principalmente a 4, são a base do nosso jogo, o enredo principal que é o objetivo e que deve interligar tudo.



Lista de cenas

Dividimos a história do jogo nas 21 cenas listadas abaixo.

“NaMesa”
   cm - cenaMapa: Cena que se repete, onde o jogador escolhe qual projeto vai seguir na empresa.

Ágil
   aa - cenaMestreBolo: Apresentação do projeto PadaOne e do cliente.
   a1 - cenaCorrida1: Implementação do CRUD-Client.
   ar1 - cenaResumoCorrida1: Resumo da cena cenaCorrida1.
   a2 - cenaCorrida2: Entrega do CRUD-Client e implementação do CRUD-Produto.
   ar2 - cenaResumoCorrida2: Resumo da cena cenaCorrida2.
   a3 - cenaCorrida3: Entrega do CRUD-Produto e implementação do Venda-MesclandoClienteProduto.
   ar3 - cenaResumoCorrida3: Resumo da cena cenaCorrida3.
   af - cenaFimAgil: Entrega final do projeto e parabenização pela dedicação para fazer com que o projeto que utiliza a metodologia ágil fosse um sucesso.
   arf - cenaResumoFimAgil: Resumo do final do projeto, falando que foi entregue mas não foi tão bem quanto poderia, que seria bom se o jogador tivesse conseguido se dedicar mais a ele também.

Tradicional
   ta - cenaGerente: Apresentação do projeto PadaTout e do cliente.
   t1 - cenaJad1: Início da especificação do ClientProductSales.
   tr1 - cenaResumoJad1: Resumo da cena cenaJad1.
   t2 - cenaJad2: Fim da especificação do ClientProductSales.
   tr2 - cenaResumoJad2: Resumo da cena cenaJad2.
   t3 - cenaImplementacao: Implementação do ClientProductSales.
   tr3 - cenaResumoImplementacao: Resumo da cena cenaImplementacao.
   tf - cenaFimTradicional:  Entrega do projeto e parabenização pela dedicação para fazer com que o projeto que utiliza a metodologia tradicional fosse um sucesso.
   trf - cenaResumoFimTradicional: Resumo do final do projeto, falando que foi entregue mas não foi tão bem quanto poderia, que seria bom se o jogador tivesse conseguido se dedicar mais a ele também.

OutrosFinais
   fm - cenaFimMisto: Entrega dos dois projetos. Explicação de que os dois projetos foram terminados mas não foram tão bem por falta de atenção ou de mais pessoas trabalhando dedicadas a eles. Um pouco de reclamação pelo jogador ter se dedicado a nenhum projeto.
   fd - cenaDemissao: Jogador demitido da empresa.

As cenas principais do desenvolvimento dos projetos (a1, a2, a3 e t1, t2, t3) são as cenas mais complexas, que terão ações que vão influenciar nas barras de stress.

Algumas das diferenças entre os projetos que serão abordadas:
  1. Inexistência do papel de levantador de requisitos no processo ágil.
  2. No tradicional o contato com o cliente é concentrado durante o levantamento de requisitos enquanto que no ágil o contato é mais frequente durante todo o projeto.
  3. No ágil as entregas são mais frequentes.
  4. No tradicional a documentação maior no tradicional enquanto história do usuário são rasgadas no ágil.



Fluxo das cenas

As cenas aa e ta, por serem de apresentação do usuário aos projetos, acontecerão no início do jogo e o usuário poderá escolher qual delas verá primeiro.

Durante o desenvolvimento dos projetos o jogador escolherá em qual time vai se dedicar a cada “turno” e  essa escolha determina qual cena ele vai ver. Serão três turnos sequenciais, formados pelos pares de cenas a1 e t1, a2 e t2, a3 e t3. Caso o jogador vá bem na cena escolhida ele ganha o direito de participar da cena do outro time do mesmo turno. Caso não vá bem ou caso não queira ver a outra cena, o jogador é conduzido a uma cena resumo do que aconteceu com a outra equipe (ar1, ar2, ar3, tr1, tr2, tr3).

Caso o jogador consiga participar de todas as três cenas de desenvolvimento de um projeto ele participa da cena final dele. A participação nas cenas a1, a2, e a3 levam à cena af e as cenas t1, t2 e t3 levam à cena tf. Caso consiga participar de apenas de uma dessas cenas finais, um resumo do final do projeto da outra equipe é exibido, cenas arf ou trf. Se o jogador conseguir ir bem ele pode chegar a ver as cenas af E at.
Caso o jogador jogue sem foco em algum dos projetos a cena fm aparece ao final.
Se for mal nos desafios nas cenas, a barra de “estresse” vai subindo e pode chegar a um ponto onde ele é demitido da empresa, aparecendo a cena fd.

Exemplo de fluxo que poderá ser seguido por um jogador abaixo. As linhas tracejadas correspondem a cenas escolhidas pelo jogador enquanto as linhas sólidas correspondem ao jogador sendo levado automaticamente a uma cena pelo sistema.



terça-feira, 15 de abril de 2014

CF70 - Atualização da Planilha

Desde a última apresentação, progredimos em todas as tarefas descritas na planilha do Kanban. A planilha atualizada pode ser visualizada no link abaixo:

https://www.dropbox.com/s/gkxms43bmed5ltk/kanban_2014_04_15.xlsx

Na parte de Recursos, a obtenção dos sprites de personagens foi finalizada, uma vez que uma quantidade julgada satisfatória de imagens foi obtida. Com isso, Gianlucca passou a trabalhar na próxima tarefa: recursos de HUD (heads-up display), que é a representação dos objetos de interface do jogo.

A primeira tarefa da parte relacionada às Fases, elaboração do conceito do cenário, já havia sido terminada na semana passada. Atualmente, o mapeamento dos objetos do jogo no cenário já está sendo feita pelo Luiz.

Quanto ao Roteiro, parte trabalhada por Rafael, a história do jogo também já havia sido definida. No momento estão sendo determinados os personagens que farão parte do jogo, levando em conta os sprites encontrados até então.

As ideias de alguns Mini-Jogos e Eventos foram refinadas desde a semana passada, e a partir de agora o Ramon trabalhará na elaboração das mecânicas dos mesmos.

Os temas das Perguntas foram revisados e consolidados. Rodrigo já começou a pensar nas perguntas que serão utilizadas no jogo.

Alguns detalhes do Código das mecânicas do jogo passaram por refatoração e testes. No momento Túlio está concentrando seus esforços na implementação de um sistema de menus.

Apesar de algumas tarefas terem sido definidas como "Finalizadas", nada impede o grupo de voltar a uma delas caso necessário, dada a natureza iterativa do processo. Por exemplo, é possível que novos sprites sejam necessários em uma fase mais avançada do projeto, ou que novos temas para as perguntas sejam considerados.

quinta-feira, 10 de abril de 2014

CF70 - Detalhamento da 2ª Apresentação e do que foi feito



Conforme citado na postagem anterior, detalharemos os tópicos apresentados na aula de hoje.

As tarefas definidas anteriormente foram divididas entre os integrantes do grupo, conforme pode ser verificado na planilha do Kanban (link: https://docs.google.com/spreadsheet/ccc?key=0AnimSuX7qDHcdGd6aFRvZ2ZPc01YS1llOTVIRmQtNXc&usp=sharing#gid=0).  Cada tarefa pode estar em um determinado estado ("a fazer", "sendo feito" e "finalizado").
Cada membro trabalhou em suas respectivas tarefas durante o período entre as duas últimas apresentações, mas podendo auxiliar em uma outra caso necessário.

Decisões de Cenário: Seguindo as tarefas na planilha Kanban, a primeira etapa do desenvolvimento do cenário é a criação do conceito do mapa.
Definiu-se que o cenário do jogo será o prédio do ICEx e ocorrerá no primeiro e segundo andar com foco em alguns locais chave, como mostrado nas imagens.

1ºAndar

2ºAndar



Decisões de recursos: As imagens dos personagens do jogo (sprite) foram todas retiradas do site DeviantArt (http://www.deviantart.com/) e possuem a devida autorização de seus autores desde que creditado. Os modelos seguem o estilo do jogo Pokémon apesar de serem obras originais e, portanto, apresentam visual cartoonico. No momento nosso acervo possuí modelos dos alunos, professores e das funcionárias da cantina (que infelizmente terão o contrato encerrado em maio de acordo com fontes confiáveis).




Decisões de história: Jogo acontece no dia 20/03, posterior a conhecida “Enchente das Goiabas” (http://cronicasurbanas.wordpress.com/2010/03/19/enchente-das-goiabas/), e não havia chovido até então. Dessa maneira, a ocorrência de chuva completamente inesperada prejudicou o aluno, resultando em sua chegada atrasada para a aula. Uma vez em sala de aula, ele descobre que tem de entregar uma lista de exercícios até o fim do dia, relacionado aos temas mencionados na aula que perdeu. Assim, precisará de toda ajuda que conseguir (colegas, internet, professores, biblioteca) para terminar a lista a tempo e aprender o que foi ensinado.



Decisões dos mini-jogos e eventos: Alguns dos mini-jogos e eventos pensados envolvem: Sinuca no DA, Queda de Energia nos laboratórios, Conversa atendente da cantina, Conversa Achados e Perdidos, Conversa colegas e professores.

Discorreremos sobre o assunto em uma ocasião futura, pois o tema é extenso e possuí conteúdo para uma postagem por si só.

Decisões das perguntas: O jogo possuirá de 10 a 15 perguntas, que estarão relacionadas com os eventos citados no tópico anterior e as outras interações possíveis.O tema das perguntas abrange uma gama de aspectos, dentre eles destacam-se: CMMI, Cone da Incerteza, Ciclos de Vida do Software, Deseconomia de Escala, Pontos de Função, Agilistas X Tradicionalistas, Linguagem UML.



Decisões de mecânica: Como grande parte do código de mecânica de jogo já havia sido implementado no protótipo mostrado na última apresentação não houveram grandes mudanças. Foram apenas realizados alguns ajustes nas colisões de objetos, movimentação e demais aspectos.

Decisões gerais: Descobrimos que o GameMaker possuí um controle de versão e o estamos utilizando (Versão atual: 1.1.1.3). Também decidimos inserir um glossário definindo termos importantes da matéria, a medida que o jogador entra em contato com eles. Rejeitamos a ideia de vários níveis, pois ela não condizia muito bem com a história elaborada e levaria a um jogo muito repetitivo.





CF70 - Apresentação 10/4

Segue o link para a apresentação de hoje:

Apresentação 10/04

Também segue o link para o executavel apresentado:

Prototipo do Jogo

Mais tarde falaremos mais detalhadamente sobre sobre os tópicos apresentados.