Thursday, November 28, 2019

Fica a reflexão...

"Nós estamos diante do precipício da mudança. O mundo teme a queda inevitável no abismo. Preste atenção para esse momento... e quando vier, não hesite em pular. É somente quando você cai que você aprende se consegue voar." (Flemeth - Dragon Age II)

Wednesday, November 27, 2019

Dica: Organizem-se

Olá...

Nesse fim de semestre, começamos a olhar pra trás e refletir sobre tudo o que fizemos, onde acertamos e onde erramos.Conseguimos aprender várias coisas com o desenvolvimento do projeto e hoje vim falar sobre uma delas: Organização.


Esse é um ponto importante, pois vai ser fundamental no decorrer da matéria e principalmente na hora de fazer toda a documentação. Assim que tiverem a ideia aprovada, documentem isso. Façam os requisitos, os diagramas...anotem tudo para não se perderem no meio do caminho.

Dividam as atividades entre os integrantes da equipe, façam encontros (presenciais ou online) e acompanhem a evolução de vocês. Não deixem para começar a documentação nas últimas semanas, pois fica corrido e a chance de erros passarem despercebidos, é grande.

Comecem a se organizar logo no início do projeto. Isso vai fazer muita diferença! Boa Sorte!!!

Sunday, November 24, 2019

Semana 17 - Última semana antes da 1ª entrega

Okay, estamos em uma situação complicada...

Ficamos sendo os últimos a apresentar, e eu realmente torcia por mais tempo pra equipe se preparar, mas agora que está chegando o dia eu sinto que talvez tivesse sido melhor apresentar antes, digo, essa semana será a 1ª apresentação, uma semana depois já é a 2ª e logo depois a 3ª caso seja necessário.

Sinto que talvez não conseguiremos realizar a tempo as correções que os professores peçam, mas bem, fizemos o possível por este trabalho, e ainda estamos dando nosso melhor, então continuaremos assim até o final!

As atividades dessa semana foram as seguintes:
-Diálogo em Sobreposição -> Feito pelo Caio e pelo Eduardo.
-Incluir Enigmas no jogo -> Feito pelo Caio.
-Execução do plano de testes -> Feito pelo Eduardo.
-Animar inimigo -> Feito pelo Eduardo.
-Delay de movimentação na exploração -> Feito pelo Eduardo.
-Documentação da análise estática -> Feito por mim(Enzo) e pelo Leonardo.
-Atualizar descrições das cenas -> Feito por mim.
-Documentar arte e música -> Feito por mim, pelo Eduardo e pelo Leonardo.
-Adicionar testes de lealdade no plano -> Feito por mim.
-Tutorial estático -> Feito por mim e pelo Eduardo.
-Métricas do 4º mês -> Feito por mim e pelo Caio.
-Capítulo 1 -> Feito pelo Caio.

Sunday, November 17, 2019

Semana 16 - "One who wants to do something will find a way; One who doesn't will find an excuse."- Confucius

Seguindo com o desenvolvimento e documentação, avançamos em mais uma semana de atividades.

Estou incentivando aos demais integrantes da equipe que postem no blog então vou me abster de demais comentários por enquanto, seguem as atividades desta semana:
-Criação de variações de inimigos -> Feito por mim (Enzo).
-Correção de bugs no comportamento do background -> Feito pelo Eduardo.
-Transição de cenas -> Feito pelo Eduardo.
-Lista de siglas e abreviaturas -> Feito por mim.
-Glossário -> Feito pela Hangra e por mim.
-Análise de concorrentes -> Feito por mim, pelo Leonardo e pelo Eduardo.
-Adicionar "Hora do Rush" na revisão literária -> Feito por mim.
-Melhorar apresentação de slides -> Feito por mim e pelo Leonardo.
-Documentar o funcionamento do salvamento de progresso -> Feito pelo Caio e pelo Leonardo.
-Mover plano de testes para o apêndice -> Feito pelo Leonardo.
-Adicionar diagrama de arquitetura ao relatório -> Feito por mim e pelo Leonardo.
-Adicionar RNs e RNFs ao relatório -> Feito pelo Leonardo.

As mil formas de escrever um código

Hoje decidi escrever para o nosso blog.
Hoje decidi escrever um artigo sobre como acontece com a codificação do nosso jogo.
Não só a codificação do jogo, mas como acontece para muitos sistemas.

É comum para o desenvolvedor de software se encontrar na situação de que ele recebe um código inicial, ou faz um código de esboço destinado a executar 1 ou N tarefas, que depois ao implementar mais ou integrar o código já feito para um sistema com demais softwares, acaba quebrando referências, faltando variáveis, estando num estilo de escrita, ou até mesmo surgindo a necessidade de desestruturar um código à orientação a objetos.

A maioria dos códigos iniciais que usamos foram de maneira estruturada e fixa, para que se pudesse montar uma cena com o mínimo funcional, porém esse tipo de implementação não atende a um jogo que funciona de forma assíncrona, o que dificultou bastante a parte da integração. Algumas regras de orientação a objetos, a princípio, não foram aplicadas e tiveram que ser aplicadas depois, e algum tempo já se foi perdido pelo motivo de ter que parar e ficar pensando em como fazer o que já existe e funciona isolado, funcionar com o todo e as demais classes.

Passamos por um problema, este que era em uma cena as coisas funcionavam, integramos e refatoramos para funcionar com o todo. Porém na hora de repetir a mesma cena com diferentes estatísticas, a coisa não funcionava e não entendíamos o porquê. E no final, realmente depurar o problema não era uma coisa tão simples, porque não temos como fazer um live debugging e ver os valores indo e voltando em tempo real.
Passamos por um problema, este que foi refatorar novamente um código que já tinha sido refatorado.

Existem mil formas de escrever um código desde que ele chegue no resultado, mas teria uma que fosse perfeita? Acho que sempre depende de qual é o resultado. É inevitável, não acho que seja possível. Ter a visão de um sistema assíncrono e de primeira codificar de forma exata em que tudo vai funcionar em seu melhor potencial. Escrachar um código, destrinchar linhas em métodos, organizar classes e objetos... Mas estamos em busca da forma mais eficiente.



Sobre se fazer um jogo... Para quem está acostumado a lidar com integração de sistemas, está sendo bem difícil de lidar, mas acredito que isso venha mais da necessidade de estar codificando algo para uma plataforma sem usar a linguagem própria dela, e também de como a assincronia influencia em objetos que existem e não existem na cena. Mas não vejo como notícias desesperadoras o fato de que estamos em ponto reescrevendo coisas feitas para funcionarem melhor, estamos definindo um motor que tem que funcionar com todo tipo de entrada. Esta é a parte mais complexa de se fazer um jogo. Enquanto esse motor não está pronto, o jogo fica com uma sensação vazia, mas quando esse motor estiver pronto, criar conteúdo fica tão simples quanto escrever um arquivo de texto (e é exatamente a facilidade que almejamos).

Wednesday, November 13, 2019

Um RoadBlock na documentação


Nesta última semana, agora realizando melhorias para antecipação da entrega 2, ao tentarmos implementar as animações de ataque da cena de batalha, encontramos um "roadblock", que era um dos riscos que foram estudados pela equipe durante a idealização do projeto.
 O "roadblock" encontrado consiste na documentação do Unity Engine não ser precisa, seja porque o método foi atualizado ou porque a documentação continha funções beta ou legadas.

A função cuja qual não funcionou como esperado, foi a Vector3.MoveTowards. Esperava-se que esta função seria semelhante ao transform.translate mas permitindo que além do movimento com uma velocidade determinada, também poderia-se determinar uma posição final onde o objeto tentaria se locomover. Porém esta função não consegue interpretar corretamente as posições, tanto X quanto Y eram executadas incorretamente fazendo com que o Heroi se movesse para uma localidade não esperada.

Link para a documentação em questão: https://docs.unity3d.com/ScriptReference/Vector3.MoveTowards.html

Porém com um pouco de pesquisa, verificou-se que este método ainda não estava corretamente implementado e portanto utiizou-se o método de limitar a distância externamente com condições.


(usuários do Unity Engine olhando a documentação)

Sunday, November 10, 2019

Semana 15 - Um novo fôlego

Esta semana marca o início das apresentações, e eu considero uma grande sorte não termos sido selecionados para apresentarmos nosso trabalho logo agora na 1ª semana, nós não estaríamos prontos.

Contudo, esta semana extra que nos deu mais tempo para trabalhar e melhorar nosso trabalho foi de grande valia para a equipe, ainda gostaria de poder ter mais tempo mas já acho que seríamos capazes de uma apresentação aceitável.

Outro ponto importante desta semana foram as referências que obtemos através das críticas apresentadas aos trabalhos apresentados, muito do que pudemos melhorar foi por termos prestado atenção nos conselhos dos professores a estes trabalhos.

Sem mais delongas, nossas atividades:
-Eliminar links do corpo do relatório -> Feito por mim(Enzo).
-Incluir métricas na documentação -> Feito por mim e pelo Leonardo.
-Substituir prontuários por nomes nos relatórios do StatSVN -> Feito por mim.
-Fazer correções visando conformidade com a análise estática -> Feito por mim.
-Documentar classes -> Feito por mim e pelo Leonardo.
-Inserir baús e portas para a cena de enigma -> Feito pelo Caio e pelo Leonardo.
-Resolver bug das barras de vida -> Feito por mim.
-Preparar recursos para a apresentação de slides -> Feito por mim.
-Deixar claro quando o herói se "revoltou" -> Feito por mim.
-Validar se toda figura e quadro no relatório é devidamente explicado no texto -> Feito por mim.
-Começar a commitar alterações feitas no relatório -> Feito pelo Leonardo.
-Passar a utilizar longtables quando necessário -> Feito por mim e pelo Leonardo.
-Validar se não nos referimos à equipe como "grupo" no relatório -> Feito por mim.
-Fazer a revisão ortográfica dos textos do jogo -> Feito por mim.
-Permitir que o LaTeX gerencie espaços em branco no relatório -> Feito por mim e pelo Leonardo.
-Colocar o cronograma no apêndice -> Feito pelo Leonardo.
-Corrigir referências fora de padrão -> Feito pelo Eduardo.
-Corrigir referências quebradas -> Feito pelo Eduardo.
-Animar mortes na cena de batalha -> Feito pelo Eduardo.
-Corrigir bug da faixa preta na cena de conquista -> Feito pelo Eduardo.
-Desenvolver apresentação de slides para a 1ª entrega -> Feito por mim e pelo Leonardo.
-Desenhar organograma da equipe -> Feito por mim.
-Iniciar inclusão do novo capítulo no jogo -> Feito pelo Caio.

Sunday, November 3, 2019

Semana 14 - "It is hard to fail, but it is worse never to have tried to suceed" ~Theodore Roosevelt

Eu gostaria de dizer que a 1ª entrega foi realizada com sucesso, mas eu estaria mentindo...

Deixamos muitas coisas de lado e muitas outras inacabadas por questão de tempo, não fizemos tanto quanto gostaríamos de ter feito, não fomos capazes de entregar algo que nos deixasse orgulhosos.

Entretanto nós conseguimos sim realizar a maior parte das atividades principais, tanto do desenvolvimento quanto da documentação, conseguimos deixar a fundação pronta para melhorarmos o projeto cada vez mais e mostrar o que o nosso trabalho realmente rendeu!

Esta foi uma semana turbulenta, a aproximação da data da entrega deixou todos desesperados pra fazer o máximo que pudessem, eu inclusive faltei ao trabalho durante o dia marcado para poder acelerar alguns detalhes necessários ao projeto e finalizar diversas atividades que ainda precisavam receber atenção.

Com certeza não foi aquilo que gostaríamos de ter entregue, mas foi o melhor que pudemos fazer até a data, e essa experiência vale muito para a equipe. Esperamos fazer melhor durante a 2ª entrega.

Tivemos provavelmente a semana mais produtiva desde o início do projeto, pelo menos pra documentação isso é uma certeza, as atividades realizadas para a entrega foram as seguintes:
-Elaborar diagrama de classes -> Feito por mim. (Enzo)
-Incluir cronograma na documentação -> Feito pela Hangra e pelo Leonardo.
-Elaborar casos de usos de novas cenas -> Feito por mim e pelo Leonardo.
-Documentar funcionamento da Revolta do Herói -> Feito por mim e pelo Leonardo.
-Descrever metodologia utilizada -> Feito pela Hangra.
-Obter métricas do 3º mês -> Feito por mim.
-Elaborar plano de testes -> Feito por mim.
-Gerar vídeo da 1ª entrega do gource -> Feito por mim.
-Elaborar matriz de atividades -> Feito pela Hangra.
-Descrever organização dos integrantes -> Feito pela Hangra.
-Gravar vídeo do jogo funcionando -> Feito por mim.
-Descrever a arquitetura do projeto -> Feito pelo Eduardo.
-Corrigir e adicionar referências -> Feito pelo Eduardo.
-Elaborar EAP -> Feito pelo Leonardo.
-Incluir apêndices na documentação -> Feito pelo Leonardo
-Elaborar conclusão -> Feito pelo Leonardo.
-Descrever a modelagem do sistema -> Feito pelo Gustavo e pelo Leonardo.
-Executar accessibility auditor na aplicação -> Feito pelo Gustavo.
-Mecânicas de fim de sala -> Feito pelo Caio.
-Revisão do gerenciamento de projeto -> Feito pelo Eduardo.
-Complementação da introdução -> Feito pelo Eduardo.
-Descrição da arquitetura do sistema -> Feito pelo Eduardo.
-Correção da revisão de literatura -> Feito pelo Eduardo.
-Ajustes na descrição do desenvolvimento -> Feito pelo Eduardo.
-Complementação das dificuldades encontradas -> Feito pelo Eduardo.

Já as que acabamos terminando apenas após a entrega foram:
-Revisão e replanejamento das atividades -> Feito por mim e pelo Leonardo.
-Revisão ortográfica -> Feito por mim.
-Gerar gráfico de métricas -> Feito por mim.
-Formatar aspas para o padrão LaTeX -> Feito por mim.
-Animação de morte na batalha -> Iniciado pelo Eduardo.
-Execução de testes manuais no aplicativo diretamente no android -> Iniciado pelo Eduardo.
-Incluir novos acontecimentos no cronograma -> Iniciado pela Hangra.
-Desenhar baús e portas para a cena de enigma -> Feito pelo Leonardo.