Projeto: X - Jogo de Cartas

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

Quinta-feira, 15 de Outubro de 2020

  1. Tentei usar o Lightweight RP novamente pra ver se conseguia otimizar ele, mas desisti por enquanto;
  2. Agora ao invés de trocar o material da carta do inimigo quando o jogador vai atacá-lo ou quando o inimigo vai atacar, eu só troco a sprite da carta do inimigo;
  3. Estou trabalhando no game design e estou colocando as ideias no papel, vi esse vídeo aqui: https://www.youtube.com/watch?v=terD4Bk3L_8 e também esse aqui: https://www.youtube.com/watch?v=G9FB5R4wVno ;
1 Curtida

Sexta-feira, 16 de Outubro de 2020

  1. Vi esse vídeo sobre como jogos são balanceados: https://www.youtube.com/watch?v=WXQzdXPTb2A e esse outro aqui sobre construir árvores de habilidade: https://www.youtube.com/watch?v=wsmEuHa1eL8 ;
  2. Trabalhei no Game Design do jogo e defini alguns objetivos de design dentro do conceito do jogo, tomei algumas decisões importantes e tive uma ideia simples mas que vai me ajudar bastante: a cor do número de ataque da carta vai indicar o tipo de dano que ela vai causar;
1 Curtida