Projeto: X - Jogo de Cartas

Sexta-feira, 25 de Setembro de 2020

  1. Escondi algumas várias que são públicas mas não precisam de referências pelo Inspector;
  2. Criei um MapSetup que vai guardar os dados dos vários tipos de mapa na tela;
  3. Tornei o lugar do mapa para um botão. No fim de tudo, consegui fazer uma coisa híbrida. As funções continuam nos botões, mas as referências para objetos ficam no MapManager. Os lugares tem referência ao MapManager mas essa referência é feita automaticamente através do FindGameObjectWithTag;
  4. Agora está funcionando melhor, fiz até um Prefab com o BattlePlace, assim eu posso instanciar vários botões;
1 Curtida

Sábado, 26 de Setembro de 2020

  1. Continuei trabalhando em gerar um mapa na tela com lugares para entrar e consegui gerar esse mapa, no entanto agora eu estou reconstruindo a maneira que eu fiz isso pra poder ativar e desativar os lugares pelos quais eu ainda não posso entrar.
1 Curtida

Domingo, 27 de Setembro de 2020

  1. Consegui fazer um código onde conforme o jogador passa pelas batalhas as portas seguintes vão se abrindo, mas ele ainda não funciona perfeitamente bem caso eu faça vários tipos de mapa, preciso melhorar o código amanhã.
1 Curtida

Segunda-feira, 28 de Setembro de 2020

  1. Terminei o código que ativa as próximas salas e desativa aquelas onde não é mais possível entrar. O código está funcionando normalmente.
1 Curtida

Terça-feira, 29 de Setembro de 2020

  1. Melhorei o protótipo do primeiro mapa;
  2. Criei mais um setup de batalha;
  3. Mudei o código do Place e do MapSetup para que o ScriptableObject com os dados do tipo de batalha que vai acontecer ficasse na definição dos dados do mapa ao invés de ficar no prefab de batalha;
  4. Agora os TargetedInitialPosition são destruídos no fim da batalha;
  5. Criei uma nova paleta de cores pra testar depois em alguns personagens;
  6. Testei a paleta de cores do Super Mario World no Cavaleiro de Elite e achei que ficou bem bonito;
1 Curtida

Quarta-feira, 30 de Setembro de 2020

  1. Mudei o código do IDragger porque não estou mais usando ScreenToWorldPoint porque agora o Canvas está como Screen Space - Camera;
  2. Fiz uma nova build para o meu celular e o jogo funcionou bem;
  3. Agora o jogador tem moedas e elas aparecem na ui do mapa, o jogador ganha um determinado número de moedas de acordo com o que está definido em cada batalha;
  4. Comecei a fazer um sistema de ganhar XP;
1 Curtida

Quinta-feira, 01 de Outubro de 2020

  1. Terminei o sistema de ganhar xp com as batalhas e atualizar isso na interface do mapa;
  2. Criei parte da interação com o baú, ele tem uma imagem e quando você clica ele abre e instancia uma carta na tela. Nisso eu criei o ChestManager e o ChestBehaviour;
  3. Criei um script GameManager, ele tem estados de jogo. O drag da carta e tudo mais do IDragger não é ativado se o estado do jogo não for batalha. Preciso definir os estados em outros códigos amanhã;
1 Curtida

Sexta-feira, 02 de Outubro de 2020

  1. Otimização de várias partes do código. Li ontem nesse link https://docs.microsoft.com/en-us/windows/mixed-reality/develop/unity/performance-recommendations-for-unity algo sobre o qual eu já suspeitava e estava me incomodando no meu código, que é o fato de estar usando muito o GetComponent().FazerAlgumaCoisa ao invés de usar uma referência direta através do editor e usar um objeto comp.FazerAlgumaCoisa(), nessa última ele só pega um ponteiro de onde está localizado o que eu preciso, o que é muito mais rápido, principalmente em métodos que são chamados muitas vezes, como o OnDrag(). Enfim, estou mudando várias partes do código e acredito que ele vai ficar muito melhor depois disso.
  2. Fiz o item acima no código do IDragger, além de organizar as variáveis de um jeito melhor usando os [Header()]. Senti a necessidade de fazer isso porque conforme o jogo vai crescendo preciso que a base esteja bem construída e organizada pra facilitar o desenvolvimento das outras features;
  3. Configurei o Unity Remote pra testar o jogo no celular sem precisar buildar, mas vou fechar a Unity e abrir de novo pra ver se deu certo;
1 Curtida

Sábado, 03 de Outubro de 2020

  1. Organizei a planilha com os efeitos sonoros que precisam ser feitos, não tem tudo lá mas tem o suficiente pra começar;
  2. O baú não instancia mais cartas infinitamente, só quando é aberto na primeira vez;
  3. Apaguei o Update() padrão de funções que não precisam dele, porque vi que mesmo não tendo nada dentro, ele vai ser chamada sempre;
  4. Para adicionar a carta do baú no deck do jogador eu preciso alterar o formato de como o deck é atualmente, porque ele é só um array com 9 cartas, posso aumentar o tamanho do array e deixar um limite de cartas ou posso usar uma lista, mas vou precisar alterar outras partes do código. Não terminei isso hoje, quero continuar amanhã.
1 Curtida

Domingo, 04 de Outubro de 2020

  1. Aprendi a usar o básico do Profile pra medir a performance do meu jogo na Unity;
  2. Criei a lista do deck e fiz ela ser embaralhada;
1 Curtida

Segunda-feira, 05 de Outubro de 2020

  1. Agora o jogador consegue pegar a carta na tela de Chest e um prefab daquela carta é adicionado na lista do deck do jogador, além disso a carta pegada é destruída;
  2. Criei um prefab do lugar do baú e agora consigo entrar neles pelo mapa;
  3. Criei o GameUIManager e estou centralizando algumas funcionalidades nele;
  4. Consegui integrar a tela do Chest no jogo, estou conseguindo entrar no mapa, lutar uma batalha, sair, entrar na tela de baú, pegar uma carta, sair e entrar em outra batalha;
1 Curtida

Terça-feira, 06 de Outubro de 2020

  1. Adicionei um botão de Deck na tela do mapa mas ele ainda não faz nada;
  2. Coloquei o ícone da moeda na tela e fiz a animação na Unity;
  3. Descobri como instalar fontes no windows pra poder usar no aseprite;
1 Curtida

Quarta-feira, 07 de Outubro de 2020

  1. Trabalhei em desenvolver um melhor sistema de batalha para o jogo, estou definindo algumas coisas na planilha;
  2. Comecei a fazer uma transição de cena mas ainda não terminei;
1 Curtida

Quinta-feira, 08 de Outubro de 2020

  1. Fiz um monte de coisa pra melhorar o OnDrag que tem um delay irritante na Unity quando eu testo o jogo no celular, deve ser uns 100 ou 200 milissegundos. Procurei esse problema na internet e vi um trilhão de discussões em fóruns e alguns vídeos no Youtube. Preciso tentar o novo input system da Unity e o touch ao invés do OnDrag, mas isso só amanhã.
1 Curtida

Sexta-feira, 09 de Outubro de 2020

  1. Continuei aprendendo a mexer no novo Input System da Unity, ele é bem diferente do antigo, então está sendo complicado, mas consegui fazer algo simples funcionar no Android, vamos ver se vai funcionar melhor quando eu tentar deixar a posição da carta como sendo a posição do touch, espero que tenha uma resposta melhor do que o sistema antigo, porque está dando muito mais trabalho pra aprender esse sistema;
  2. Sobre o delay que está acontecendo, percebi que em uma build antiga ele estava melhor do que atualmente, tava mais smooth, acredito que o sistema de iluminação do jogo possa estar atrapalhando a performance, vou testar isso depois. No computador não dá nenhum problema, mas o celular é mais lento;
1 Curtida

Sábado, 10 de Outubro de 2020

  1. Continuei mexendo na scene onde estou testando o novo Input System usando touchscreen, mas ainda não consegui fazer funcionar direito, como ele é novo tem poquíssimos tutoriais sobre como usar ele na internet, além de poucas soluções em foruns, mas ta indo.
1 Curtida

Domingo, 11 de Outubro de 2020

  1. Consegui baixar umas scenes de exemplo que a Unity fez pra entender melhor a implementação do novo Input System pra tentar usar o touch. Tem um exemplo de desenhar usando o touch que vai me ajudar a implementar o drag da carta;
  2. Isso aqui vai me ajudar amanhã na tentativa de reproduzir o modelo de exemplo: https://docs.unity3d.com/Packages/com.unity.inputsystem@1.0/manual/ActionBindings.html na parte “Writing custom Composites”;
1 Curtida

Segunda-feira, 12 de Outubro de 2020

  1. Retornei o patch do jogo para o anterior de antes de começar a tentar implementar o novo Input System;
  2. Fiz duas implementações diferentes usando touch.count em uma scene de teste e parece um pouco melhor, mas não testei ainda em alguma scene com iluminação. A primeira eu só transformo a posição na posição do touch, na segunda eu adiciono uma velocidade eu um RigidBody2D. A segunda buga se a velocidade for muito alta, como 90 ou principalmente acima de 100, mas parece funcionar bem se a velocidade for 50. A primeira já funciona de forma bem parecida com a implementação usando Drag, mas talvez um pouco melhor. De qualquer forma, vou tentar não usar iluminação no jogo por enquanto;
1 Curtida

Terça-feira, 13 de Outubro de 2020

  1. Analisei a performance do jogo pelo Profiler pra ver se alguma coisa ta pesando;
  2. Desativei as trocas de materiais por enquanto para testar o jogo no celular sem essas trocas;
  3. Eu desativei as trocas de materiais e aqueles shader luminosos, mas o jogo ainda não tem a mesma performance da build antiga, é como se a build atual tivesse rodando em 30 fps e a antiga em 60 fps. Testei essa coisa do FPS através de um aplicativo e os dois rodam nos mesmos 60 FPS, mas ainda assim a build atual parece um pouco mais travada enquanto a carta está sendo arrastada e isso continua me incomodando;
  4. Apaguei 6 funções Update inúteis, mas a movimentação não é tão boa quanto a antiga;
  5. Vou continuar os testes amanhã;
1 Curtida

Quarta-feira, 14 de Outubro de 2020

  1. Criei um novo projeto onde estou testando algumas das features do jogo pra ver o que está causando problema de performance;
  2. Consegui resolver o prolema de performance. Era o Lightweight RP que eu usava pra fazer os shaders luminosos. Eu desinstalei esse pacote e o jogo agora roda perfeitamente. Vou focar agora no game design do jogo e na estrutura do enredo;
1 Curtida