(https://1.bp.blogspot.com/-mR0m4VntCgc/XTyEVsaNTdI/AAAAAAAAH8Q/bBRkg8wpj0YI5u6wPnUGfpeQ8kSKaTALwCLcBGAs/s320/tenor.gif)
Olá pessoal, como vão? Há exatamente um mês eu iniciei o desenvolvimento de um sistema de batalhas ao estilo Yu Gi Oh (https://pt.wikipedia.org/wiki/Yu-Gi-Oh!), mais precisadamente seguindo as regras e design do game para PS1: Yu-Gi-Oh Forbidden Memories (https://pt.wikipedia.org/wiki/Yu-Gi-Oh!_Forbidden_Memories).
O sistema foi iniciado com a adição de cartas num banco de dados SQLite (https://pt.wikipedia.org/wiki/SQLite), e dentro do Unity a única coisa que ele fazia era instanciar essas cartas do banco para a cena, contendo as informações de cada carta como: pontos de ataque, pontos de defesa, nome da carta, e a imagem dela que era renderizada na Unity através do componente SpriteRenderer.
O vídeo do início da proposta pode ser visualizado logo abaixo:
Porém, com o passar das semanas, o sistema foi ganhando forma e hoje conta com diversas classes para gerenciar cada aspecto do projeto.
No final das contas, o sistema está assim atualmente
(24/07/19):
>> Banco de dados:- Sistema de leitura e acesso ao banco de dados para criar os decks de cartas (maiores informações no primeiro vídeo acima);
- Graças à flexibilidade do SQLite, é possível construir de forma simples e direta os decks de cada jogador, basta adicionar à tabela de 'Jogadores' um novo registro de jogador, e ir adicionando ou removendo as cartas registradas no banco de dados para cada jogador, assim é possível criar diversos decks diferentes, com as cartas que desejar!
>> Deck Manager:Classe responsável por gerenciar tudo o que for associado aos decks dos jogadores:
- Gerenciamento dos decks através de pilhas(stacks);
- Adição de informações das cartas do banco de dados para as pilhas de decks;
- Gerenciamento da quantidade de cartas no deck;
- Embaralhamento do deck ao iniciar a partida através do algoritmo: Fisher-Yates Shuffle.
>> Draw Manager:Classe responsável por manipular o sistema de Draw (compra) de cartas do jogo.
Essa classe é parcial e foi dividida em duas:
- Draw Manager Amount:Responsável por gerenciar quantas cartas deverão ser instanciadas do deck para a mão dos jogadores, possibilitando instanciar as cinco cartas iniciais, quanto qualquer quantidade subsequente, como por exemplo, ao se utilizar de alguma carta com efeito similar ao Pot Of Greed.
Basta apenas passar como argumento da função de Draw da classe, a quantidade de cartas que deseja instanciar, que o sistema fará automaticamente a compra dessas cartas.
Também responsável por verificar se o jogador possui cartas suficientes para comprar, e caso não, encerra a jogada fazendo com que o jogador que não tenha mais cartas para comprar, perca.
Por ser uma classe pequena, posso mostrá-la aqui de ante-mão:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace YuGiOhManager{
public static partial class DrawManager{
private const float timeToAnimation = 0.3F;
public static IEnumerator DrawCards(int amount, bool isMainPlayer = true){
var currentDeck = isMainPlayer ? DeckManager.deck : DeckManager.deckAI;
for (int i = 0; i < amount; i++) {
if (currentDeck.Count > 0) {
yield return new WaitForSeconds (timeToAnimation);
InstantiateInScene (isMainPlayer);
} else {
DialogueUI.ShowDialogue ((isMainPlayer ? "Player 1" : "Player 2") + " doesn't have enough card to draw. Lose!");
GameManager.gameOver = true;
yield break;
}
}
}
}
}
- Draw Manager Instance:Essa classe é responsável por instanciar de fato as cartas na cena, carregando as informações fornecidas do banco de dados.
São muitos processos como: Verificar se a carta a ser instanciada é uma carta do main player ou do bot, passar as informações do banco de dados para os prefabs das cartas, gerenciar o local da mão que essa carta será instanciada, e etc.
>> Hand Manager:Essa classe fica ao encargo de gerenciar tudo o que diz respeito às cartas na mão do jogador.
- Função que retorna qual "mão" está sendo avaliada (cartas na mão do main player ou do bot);
- Função de Sort Hand (reorganizar as cartas na mão, assim que uma carta é escolhida para ser jogada no campo);
- Função que remove a carta da mão e coloca no tabuleiro, assim que a carta é escolhida.
Essa classe também é muito importante para o sistema de Inteligência Artificial escolher qual carta ela irá jogar de sua mão para o campo.
>> Board Manager:Nesta classe estão as funções responsáveis por manipular as cartas que estão em campo (no tabuleiro).
- Verificar se o campo está vazio;
- Verificar se o campo está cheio;
- Verificar qual melhor local para colocar a carta em campo;
- Retorna qual campo está sendo analisado (de qual jogador);
- Sistema de Replace Card (substituição). Quando o campo está cheio, deve-se substituir uma carta já existente no tabuleiro por uma selecionada da mão.
>> Battle Manager:Essa classe tem a responsabilidade de gerenciar tudo o que for relacionado ao sistema de batalha.
- Define as cartas que estão batalhando;
- Define quem está atacando e quem está sendo atacado;
- Verifica quem perdeu ou ganhou a batalha;
- Desconta os pontos de vida do perdedor;
- Verifica possíveis empates;
- Chama a classe de animação de batalha;
- Destrói do campo a carta perdedora da batalha;
- Sistema de atacar pontos de vida diretamente.
>> Battle Animation Manager:A classe "Battle Manager", como dito acima, é responsável por gerenciar a batalha do jogo, mas a parte do feedback visual dessa batalha fica à cargo da classe: "Battle Animation Manager". Então essa classe é responsável por ativar as animações na cena de acordo com o tipo da batalha.
Quem atacou ganhou da carta atacada? Quem atacou perdeu da carta atacada? Foi empate? Não houve nada? Ataque direto aos pontos de vida? Todas essas animações são gerenciadas através de uma enumeração de ações, de acordo com a batalha que ocorreu e as cartas envolvidas na mesma.
É através dessa classe também que são mostrados os pontos de vidas descontados na tela.
>> Change Turn Manager:Essa classe faz o papel de gerenciar de quem é a vez, e de encerrar a mesma, quando algum jogador solicitar, chamando os eventos necessários para "reiniciar" a vez do próximo jogador.
Também é responsável por chamar a classe da Inteligência Artificial para que ela possa jogar, caso esteja na vez dela.
>> State Manager:Aqui não se trata de uma classe em específico, mas sim de um escopo do namespace "YuGiOh System", para armazenar as enumerações que serão utilizadas em todas as classes do sistema, como as enumerações das fases do turno (Draw Phase, Main Phase, Battle Phase, End Phase), o estado atual da carta (OnHand, OnBoard), enumerações dos estados das batalhas (já citados anteriormente), delegados para gerenciar eventos do sistema, e etc.
>> UI Manager:Essa classe gerencia as informações que serão visualizadas na UI da Unity, como as imagens da carta selecionada, seus pontos e nome.
Seu evento de mostrar essas informações na UI é disparado através de uma outra classe chamada "Mouse Manager" que é um componente do prefab das cartas, que detecta se o cursor do mouse está sobre a carta, assim, caso esteja, as informações daquela carta são mostradas em cada componente da UI, como os de Image e Text.
>> Game Manager:Essa classe é algo mais generalizada, que visa armazenar informações globais do jogo e não de algo específico como as classes
Managers anteriores.
- Armazena os pontos de vida dos jogadores;
- Os turnos dos jogadores;
- Se é o primeiro turno ou não;
- A fase atual;
- Se é game over;
- Se alguma animação de batalha está sendo executada;
- Se a caixa de diálogos está ativada;
- Armazena as cartas atuais que estão sendo selecionadas para alguma ação.
>> Outras classes:Além dessas classes que gerenciam o sistema, há outras classes mais específicas, como a classe que ativa as caixas de diálogos, o sistema de animações das compras de cartas, as ações de cada carta na mão (Set Up, Set Down e Cancel), as ações das cartas no tabuleiro (Battle, Change Mode, Cancel), inicialização das informações da partida, Mouse Manager, superclasse responsável por receber as informações do banco de dados, e etc.
>> Inteligência Artificial (I.A)(https://1.bp.blogspot.com/-xh7VYwCvB8A/XTyRjJqaU2I/AAAAAAAAH8g/PDsW6LPTZ6EgPcGqeWk4eg-UXR5YM3P1QCEwYBhgL/s320/Artificial-Intelligence.jpg)
Como o projeto não é online, se fez necessário a inserção de um sistema de I.A básico para jogar contra o jogador principal.
Essa I.A foi muito inspirada no bot dos primeiros oponentes do já citado Yu-Gi-Oh Forbidden Memories do PS1, ou seja, com uma tática ofensiva, tendo a prioridade em atacar seus pontos de vida e destruir as suas cartas, apesar de ela possuir algumas cartas defensivas em seu deck.
A I.A foi dividida em dois scripts: Um que decide qual é a melhor carta para selecionar na mão e jogar no tabuleiro, de acordo com diversos fatores influenciáveis em suas decisões, tais como: A carta que desejo selecionar é capaz de vencer de alguma carta no campo do oponente? Existe alguma carta no MEU campo que já dá conta do recado? É melhor eu me defender? Descarto a carta mais fraca da mão? Ataco os pontos de vida diretamente? e etc.
O outro script é responsável por fazer a I.A decidir qual a sua melhor ação com suas cartas já em campo, como: Vai batalhar? Se sim, contra qual carta do oponente? Vai só se defender? Mudar a posição de batalha de alguma carta? E assim por diante...
No final de vários e vários testes, apesar de uma I.A básica, ela atende bem as expectativas, procurando sempre fazer a melhor jogada que a traga mais benefícios.
>> O que pretendo implementar no futuro?O sistema está completo com tudo que planejei desde a sua concepção, mas isso não irá me impedir de implementar novos recursos posteriormente.
Alguns que tenho em mente são:
- Adição de cartas do tipo "Spell" e "Trap";
- Deck Viewer, ou seja, um visualizador para as cartas do seu deck;
- Mais inimigos, com decks diferentes, ou seja, vai surgir a necessidade de criar um sistema de seleção de personagens.
>> Onde o sistema vai ser disponibilizado?Build do projeto para testar e código fonte, Clique aqui! (https://centrorpg.com/index.php?topic=22572.msg161710#msg161710)
ATUALIZAÇÕES - 03/12E aí pessoal, como vão? Depois de muitos meses sem mexer no projeto, hoje finalmente eu pude dar aquela atualizada que eu mais gostaria de dar (agora com PC novo é só alegria). Confira abaixo as novidades:
1. Seleção de Personagens:Com a seleção de personagens agora é possível jogar contra outros oponentes além daquele de testes! Isso significa que você terá mais possibilidades de jogadores para desafiar, decks diferentes e cartas novas!!
O sistema te possibilita criar decks diferentes para cada jogador, dessa forma, você pode ter vários oponentes diferentes para duelar contra, pois a AI é genérica e vai saber lidar com qualquer deck que ela tiver disponível.
Os personagens adicionados na versão DEMO foram:
- Shade (O jogador padrão de AI do primeiro teste
- Rex Raptor e seu deck de zumbi + dinossauros
- Weevil Underwood e seu deck de insetos
- Mai Valentine e seu deck de Harpias e Fadas
- Bandit Keith e seu deck de feras
- Yami Bakura e seu deck defensivo e dark
- Pegasus e seu deck apelativo xD
- Isis Ishtar e seu deck de água
- Seto Kaiba e seu deck dragão (sim, tem o Blue Eyes)
- Heishin e seu deck imbatível (não dá pra ganhar dele, que sacanagem né)
Screenshoot da seleção de personagens:
Spoiler
(https://i.imgur.com/v3kpOwm.png)
2. Mais opções de ações:Além de setar suas cartas para cima ou para baixo e cancelar a ação na DrawPhase, o jogador também pode agora ler a descrição da carta selecionada e o mais legal de tudo: Descartar a carta também! :money:
Com o sistema de descarte é possível eliminar cartas da sua mão que você julgue "inúteis" e na próxima vez que você comprar, você ganhará novas cartas referente à quantidade de cartas descartas. Por exemplo: Se descartar 3 cartas, na próxima rodada você comprará novas 3 cartas.
Esse sistema é similar do que já temos no Yu-Gi-Oh Forbbiden Memories, mas nesse caso o jogador descarta as cartas fundido elas erradamente de propósito.
Para abrir a janela das novas opções, clique na carta com o lado direito do mouse!Screenshoot das novas opções:
Spoiler
(https://i.imgur.com/DUpJFzw.png)
3. Cartas de Spells!!Essa sem dúvidas era a notícia que eu mais gostaria de anunciar para vocês! Agora o sistema conta com cartas mágicas (spells) para serem jogadas e terem seus efeitos ativados, mudando totalmente o rumo da partida!
Todo o sistema já está pronto pra receber as spells (adição ao board, ativação do seu respectivo efeito, prefab da carta e etc).
Para testes eu já criei duas spells: Raigeki (https://yugioh.fandom.com/wiki/Raigeki) e Dark Hole (https://yugioh.fandom.com/wiki/Dark_Hole) e elas já estão com seus efeitos criados e funcionando
ingame!! :wow: :wow:
Por enquanto apenas o player principal pode ativar spells, pois para a AI ainda preciso fazer um algoritmo para ela "pensar" qual o melhor momento para ativar a spell na partida, mas em breve estarei fazendo isso.
Screenshoots da spell no jogo:
Spoiler
(https://i.imgur.com/3vlV6VE.png)
Dark Hole ativado:
Spoiler
(https://i.imgur.com/C6xJWeR.png)
O que tem por vir:Mas as novidades não param por aí! Ainda pretendo melhorar algumas decisões da AI para deixar ela mais precisa, adicionar outras cartas spells além dessas duas, colocar a possibilidade de cartas Traps e Fields, fazer um sistema de Deck Viewer e possibilitar a AI de jogar cartas mágicas e descartar cartas da mão.
Em breve mais atualizações e links para download.
Opa bom te ver na ativa May! :wow:
Vou ficar no aguardo para destrinchar o código quando subir :malvado:
Pelo vídeo parece que está legal a conexão com o SQL, tem pretensões maiores com isso? Tipo fazer um yu-gi-oh online ou algo do tipo?
Oi Raizen, saudades. :3
Fazer um online seria muito melhor porque daí eu evitaria fazer uma AI, mas eu acho que por enquanto ele fica no offline mesmo, daí sim, se eu concluir tudo certinho posso pensar em passar ele pro Photon.
É sempre legal ver sistemas e tutoriais sobre jogos do estilo tcg (trading card game), principalmente do yugi oh... se surgir a oportunidade de criar um tutorial sobre alguns sistemas desse projeto, acredito que muitas pessoas vão gostar...
Sistema interessantíssimo May!
Deixo aqui meu feedback positivo pro seu futuro tutorial. Me inscrevi no Canal também!
Abçs!
Vamos coloca-la pra trabalhar :*-*:
Eu também tenho interesse em um jogo de cartas no meu futuro game de rpg, mesmo que seja em outra engine da pra pegar a teoria da mecânica e usar :popcorn:
Citação de: razier online 28/06/2019 às 17:10
É sempre legal ver sistemas e tutoriais sobre jogos do estilo tcg (trading card game), principalmente do yugi oh... se surgir a oportunidade de criar um tutorial sobre alguns sistemas desse projeto, acredito que muitas pessoas vão gostar...
Eu realmente estava em dúvida se faria o tutorial ou não, pelo visto o pessoal realmente quer, então eu talvez faça hein?
Por enquanto estou no processo de desenvolvimento, mas assim que terminar, inicio uma série de tutoriais.
Citação de: Yxin online 28/06/2019 às 17:38
Sistema interessantíssimo May!
Deixo aqui meu feedback positivo pro seu futuro tutorial. Me inscrevi no Canal também!
Abçs!
Obrigada por se inscrever! Espero que goste do conteúdo de lá! :blink:
Citação de: hategum rpg online 28/06/2019 às 21:19
Vamos coloca-la pra trabalhar :*-*:
Eu também tenho interesse em um jogo de cartas no meu futuro game de rpg, mesmo que seja em outra engine da pra pegar a teoria da mecânica e usar :popcorn:
Exatamente! Mesmo não sendo para RPG Maker, o que importa é a lógica empregada, então apesar dos códigos serem em C# alguém pode converter a lógica para o JavaScript do MV, inclusive como esse maker usa o JS, o SQLite pode ser substituído pelo JSON, apesar de que deve existir por aí uma DLL que integre o MV com SQLite, talvez.
Updates:Já terminei o sistema de draw.
- A AI também compra 5 cartas iniciais, porém viradas para baixo;
- Refatoração de código que permite o gerenciamento de qualquer deck no jogo (independente se for da AI ou do main player);
- Animação quando as cartas são compradas;
- Animação quando passa o mouse sobre a carta;
- Query dinâmica dentro do DB para reconhecer o deck do jogador que deve ser lido;
- Sistema de Shuffle deck com base do algoritmo Fisher–Yates shuffle (https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle)
Por conta da refatoração, o gerenciamento do deck que vai ser comprado está dinâmico, ele reconhece quando é o deck da AI ou do main player, retornando a list de cartas correspondente e posicionando as instâncias das mesmas no devido local na cena, dependendo do jogador corrente. Para isso, basta chamar a função de Draw e apenas passar como argumento um valor booleano (se false é AI, se true é o main player), apesar de que não há necessidade de passar true para a função, pois a mesma já entende de que quando não há argumentos, trata-se do main player por default.
Outra vantagem aqui é que o sistema de draw não se limita apenas ao draw inicial de 5 cartas, mas de qualquer momento (as jogadas subsequentes) e também quando se necessitar comprar mais de uma carta de uma vez (caso a pessoa implemente o sistema de fusão do Forbidden Memories ou o efeito de uma carta de compra como Pot of Greed (https://yugioh.fandom.com/wiki/Pot_of_Greed)). Basta passar como argumento da função a quantidade de cartas que quer comprar, que o sistema já faz as compras de acordo com a quantidade necessária.
Bem, tudo isso para o Draw de cartas, agora poderei iniciar a programação do comportamento delas (colocar para cima ou para baixo, defesa ou ataque e etc.)
Aguardem por mais atualizações.
:ok:
Atualização:
Adição de background;
Draw pra AI;
Sistema de ações das cartas: set up, down, change mode, battle e cancel;
Sistema de reorganizar cartas na mão quando joga uma carta ao campo;
Animação quando passa o mouse na carta;
Animação quando compra carta;
Refatoração do código;
Adição de novas cartas no banco de dados;
Shuffle(embaralhador de cartas) com algoritmo Swap Shuffle
Caramba, não havia visto esse. Ficou muito suave, os menus e a movimentação das cartas haha. Diria que idêntico ao Forbiden Memories. Planeja usar em alguma coisa ou é apenas para estudo?
Curti pakas, deu até saudade do ps1 agora.
Seria bacana colocar nas opções a tecla/botão para apertar, assim não tendo que levar o mouse sempre para os comandos.
Fico no aguardo de mais novidades. :)
Citação de: Corvo online 13/07/2019 às 07:05
Caramba, não havia visto esse. Ficou muito suave, os menus e a movimentação das cartas haha. Diria que idêntico ao Forbiden Memories. Planeja usar em alguma coisa ou é apenas para estudo?
Oi, Corvo! Primeiramente obrigada pelo comentário!
Bem, por enquanto estou usando o sistema como estudo (e posso dizer que evoluí muito com ele ahah) mas assim que concluído e lapidado, pretendo usar esse sistema para criar um tutorial de como desenvolver um YuGiOh em C#, então está servindo pra bastante coisa. xD
Citação de: Victor Sena online 13/07/2019 às 14:49
Curti pakas, deu até saudade do ps1 agora.
Seria bacana colocar nas opções a tecla/botão para apertar, assim não tendo que levar o mouse sempre para os comandos.
Fico no aguardo de mais novidades. :)
Olá, Victor, tudo bem?
Obrigada pela sugestão sobre os botões, estarei anotando para uma futura implementação. :ok:
Update de hoje:
Fiz a ação de substituir cartas (Replace) quando o tabuleiro está com cinco cartas (cheio).
É bem simples: Se o seu tabuleiro estiver cheio, o sistema vai esperar até que você escolha alguma carta que já está em campo para ser substituída, então ao fazer isso, a carta antiga sai do tabuleiro e é mandada ao graveyard (por enquanto é só destruída da cena, mesmo) e a nova carta vai para o campo na posição da carta destruída.
Testei aqui fazendo com que o player inicialmente compre 7 cartas (só pra ver como que fica) e não ativei a Main Phase quando se coloca a carta em campo, dessa forma, ficamos na Draw Phase e eu posso colocar cartas a vontade no tabuleiro, e assim que ele fica cheio e eu tento colocar mais uma carta em campo, o sistema pede pra fazer a substituição, então está tudo funcionando corretamente como esperado. :tacerto:
Opa agora está tomando forma!
Eu tinha comentado antes, mas sempre é bom deixar o meu incentivo no fórum também! Parabéns pelo trabalho e claro boa sorte!
Gostei bastante do que já tem até aqui, isso dá um trabalho... haha. FIco no aguardo para atualizações! :wow:
Citação de: Raizen online 16/07/2019 às 23:54
Opa agora está tomando forma!
Eu tinha comentado antes, mas sempre é bom deixar o meu incentivo no fórum também! Parabéns pelo trabalho e claro boa sorte!
Gostei bastante do que já tem até aqui, isso dá um trabalho... haha. FIco no aguardo para atualizações! :wow:
Oi Raizen! Sempre bom te ver nos meus tópicos. :lol:
Sim, já tem umas coisinhas, agora criei praticamente o sistema de batalha todo (só falta uns diálogos ou animações para o feedback visual) mas tá pronto.
O sistema está ficando tão complexo que tive que usar interfaces para padronizar as ações de cartas, já que agora com a AI, ela também fará jogadas e consequentemente ações com as cartas.
Também simulei uma AI provisória para ela jogar cartas da mão no campo (uhuhuh chega a ser bizarro ver o bot jogando sozinho, mesmo se foi só pra testar a Battle Phase) mas o legal é que o sistema sempre foi planejado pensando na AI e com isso quase que não tive que fazer modificações no código fonte das ações (obrigada POO).
Eu tenho algumas perguntas sobre o sistema;
Citar
Também simulei uma AI provisória para ela jogar cartas da mão no campo (uhuhuh chega a ser bizarro ver o bot jogando sozinho, mesmo se foi só pra testar a Battle Phase) mas o legal é que o sistema sempre foi planejado pensando na AI e com isso quase que não tive que fazer modificações no código fonte das ações (obrigada POO).
Com esta essa AI? o bot tem alguma estratégia de vitória? ou as coisas acontecem aleatoriamente?
Tem cemitério na tela? Eu não sei as regras, tem limite de cartas pra colocar em tela?
@HATEGUM RPG:
Olá, tudo bem? Vou responder cada uma das perguntas, obrigada por perguntar:
1. Com esta essa AI?
R: Por enquanto não chamaria de AI, no presente momento ela só joga cartas aleatórias da mão e passa a vez, mas eu fiz assim só para testar o sistema de batalhas e ter cartas da AI no campo para poder atacar.
2. o bot tem alguma estratégia de vitória?
R: Sim. Na verdade planejei uma AI ofensiva que prioriza atacar e destruir as cartas do oponente, assim como as AIs iniciais do Forbidden Memories.
Por ser uma AI mais simples (porque vai se tratar de um tutorial e eu ainda não quero me aprofundar muito) ela não vai usar um peso de decisões, na árvore de decisões ela realmente vai dar preferência por atacar a carta do oponente em modo de ataque, e depois em modo de defesa. Caso não consiga em ambos os casos, se defende. Vai ser basicamente isso.
ou as coisas acontecem aleatoriamente?
R: Sim e não. Para dar uma aleatoriedade, a AI não pensará tanto qual a carta que vai jogar da mão para o campo, então essa parte vai ser randômica mesmo. Porém, como eu disse na resposta acima, ela terá um grau de decisão se ataca ou defende.
No caso de o tabuleiro dela estar cheio e ela ter de escolher uma carta para substituir, ela terá um critério de pensamento que será descartar a carta com menor ataque E menor defesa.
Tem cemitério na tela?
R: Não. Assim como no Forbidden Memories (que é meu modelo de design) não há informações das cartas destruídas na tela, nem acesso a elas. Mas claro, isso pode ser facilmente implementado se a pessoa quiser.
Eu não sei as regras, tem limite de cartas pra colocar em tela?
R: Acho que acabei respondendo essa dúvida anteriormente. Sim, tem limite de cartas no campo, caso tenha 5 cartas você precisará substituir uma carta que está em campo e colocar a nova.
No caso da mão deve-se ter sempre 5 cartas, igual ao Forbidden Memories.
Eu não joguei o Forbidden Memories, mas obrigado por esclarecer as perguntas.
Seria legal umas animações das cartas, quando estão fazendo as suas ações.
Feliz em anunciar a conclusão do sistema de YuGiOh na Unity!
Desde a última atualização postada, muita coisa mudou:
- Adição do sistema de batalha, verificando cartas que ganham ou perderam, se houve empate e mostrando todas essas informações através de um BattleAnimation Manager, ou seja, um gerenciador de animações que mostra as imagens das cartas batalhando e quem venceu, bem como os pontos de vida descontados do perdedor, igual ao Forbidden Memories do PS1.
- Mais cartas adicionadas aos decks do player e do bot (totalizando 40 cartas para cada)
- Sistema de caixa de diálogo para mostrar mensagens.
Diferente do RPG Maker, no Unity não existe um sistema padrão de caixa de mensagens, então eu tive que fazer do zero, por isso destaco aqui.
- Sistema de pilha(Stack) para gerenciar os decks (antes era List)
- Refatoração de MUITOS códigos;
- Sistema de EndPhase (para encerrar turno) e consequentemente um sistema que gerencia a vez de cada jogador.
- Inteligência artificial básica: Muito parecida com a tática ofensiva da IA do ygo do PS1. Sempre dando preferência por atacar seus pontos de vida ou suas cartas em campo.
Ela foi dividida em dois Scripts: Um que gerencia a escolha da carta que vai ser jogada da mão para o tabuleiro ( eu disse que ia colocar pra ela escolher aleatoriamente, mas ficou muito falho)
E outro que gerencia as ações das cartas quando elas estão em campo, se vai atacar, defender, trocar posição de batalha, e etc.
Esse projeto deu um trabalho absurdo para ser feito, mas fico muito feliz por ter concluído como eu esperava esse desafio!
Ainda no futuro pretendo implementar spells e traps(algumas que tem no Forbidden Memories, como Raigeki), um sistema de deck Viewer e outros personagens da IA com outros decks mais específicos, mas isso vou deixar mais pra frente. Por agora só existe o duelo.
Caso queriam ver como ficou tudo, eis um vídeo:
Realmente é um belo trabalho, eu que estive acompanhando quase desde o começo, sempre é gratificante ver algo indo pra frente assim :lemonjuice:
Sobre a parte de I.A e talz, você é genial para esse tipo de lógica, tenho certeza que mesmo sendo "básica" como disse, acho que foi bem elaborada. Ainda não tenho certeza até onde você pretende levar o sistema hahaha, mas uma parte futura também é adicionar algumas animações quando realizar as ações de conjurar/atacar, isso dá um up bem legal visualmente. Aproveitando, espero que leve adiante sim rs, adicionando as spells e traps, vai ser outra bigorna pra fazer a I.A, mas acho que se tiver um sistema de inicio ao fim, com todas as mecânicas do Yu-gi-oh, vai ficar muito show!
#invernoCRM
Incrível, May! :clap:
Acho um sistema bem completo já. Imagino que deva ter dado mesmo um baita dum trabalho para fazer.
Gostaria de ver mais sobre este projeto no futuro (junto de uma demo :fifufi:).
Preciso aprender muito mais C# para chegar nesse nível algum dia...
Citação de: Raizen online 24/07/2019 às 21:52
Realmente é um belo trabalho, eu que estive acompanhando quase desde o começo, sempre é gratificante ver algo indo pra frente assim :lemonjuice:
Sobre a parte de I.A e talz, você é genial para esse tipo de lógica, tenho certeza que mesmo sendo "básica" como disse, acho que foi bem elaborada. Ainda não tenho certeza até onde você pretende levar o sistema hahaha, mas uma parte futura também é adicionar algumas animações quando realizar as ações de conjurar/atacar, isso dá um up bem legal visualmente. Aproveitando, espero que leve adiante sim rs, adicionando as spells e traps, vai ser outra bigorna pra fazer a I.A, mas acho que se tiver um sistema de inicio ao fim, com todas as mecânicas do Yu-gi-oh, vai ficar muito show!
#invernoCRM
Pois é Rai, você está acompanhando tudo desde o início e eu enchendo o seu saco no Messenger pra mostrar xD
Pretendo continuar no futuro sim, mas só pra adicionar essas implementações que eu citei, apesar de que gostei de sua sugestão sobre efeitos visuais para as ações, realmente fica mais bonito.
Sobre as Spells/Traps, não serão muitas que irei colocar, só as que aparecem com frequência no FRM, então a I.A nem vai precisar pensar muito pra jogar, Raigeki e Dark Hole se ela perceber que o jogador tem muitas cartas fortes no campo, e as de aumentar LP ela pode jogar quando estiver com poucos pontos de vida, então não vai ser tão difícil (espero eu). :viiish:
Citação de: drakysm online 24/07/2019 às 21:54
Incrível, May! :clap:
Acho um sistema bem completo já. Imagino que deva ter dado mesmo um baita dum trabalho para fazer.
Gostaria de ver mais sobre este projeto no futuro (junto de uma demo :fifufi:).
Preciso aprender muito mais C# para chegar nesse nível algum dia...
Vou disponibilizar a DEMO em breve, assim que eu adicionar mais para frente as Spells e o Deck Viewer, mas por enquanto, estarei postando o projeto em open source no github!
Obrigada pelo comentário. <3
Parabens o sistema parece muito bom, esta bem fluido as animações e os sistemas parecem profissionais, embora eu nunca tenha jogado o game Forbidden Memories da serie, ja joguei outros da serie (gba e psp) e realmente esta ficando incrivel seu sistema de yugi oh, ficarei acompanhando as atualizações.
Citação de: razier online 26/07/2019 às 16:22
Parabens o sistema parece muito bom, esta bem fluido as animações e os sistemas parecem profissionais, embora eu nunca tenha jogado o game Forbidden Memories da serie, ja joguei outros da serie (gba e psp) e realmente esta ficando incrivel seu sistema de yugi oh, ficarei acompanhando as atualizações.
Obrigada pelas palavras! :heart:
Já que nunca jogou Forbidden Memories deve ter estranhado eu descer um Mago Negro no campo sem
tribute summon, mas as regras do FRM são diferentes mesmo! Talvez no futuro eu faça um YGO com as regras oficiais, mas daí criaria um online, porque programar uma AI com aqueles monstros com efeitos, correntes de traps e etc, seria demais pra mim hahahaha!
Mais uma vez obrigada pelo comentário, o feedback de vocês é muito importante.
Esta tudo bem, não estranhei tanto não tributar um monstro para summon avançada, sou um grande fa da serie yugi oh, e na primeira temporada da serie original, ate o final da saga o reino dos duelistas, não existia a regra de tributar para summon avançada, essa regra foi criada por Seto Kaiba para o seu torneio, a batalha da cidade, desde ai a regra de tributar para summon um monstro de cinco estrelas ou mais se tornou requisito oficial, mas como voce disse como não joguei o forbidden memories então não sabia que nesse jogo não precisava tributar, eu achei que você ainda não tinha adicionado o sistema de tributo para summon.
Tópico atualizado com mais informações sobre o sistema.
Download da build para jogar a DEMO (64 bits):
https://mega.nz/#!lawUGSJa!9UtT2OEqbuTisNxzZMaoJY-DshpNBUXDFm1VVNch9To
Código fonte em open source:
https://github.com/mayleone1994/YuGiOh-System/tree/master/YuGiOh_System/Assets/Scripts
Ainda preciso melhorar algumas decisões da AI referente aos empates, mas em suma ela está completa para batalha com monstros.
Eu testei a demo do sistema e ela esta otima, parabens pelos resultados da primeira demo do sistema, ja estou ansioso pelas proximas atualizações do sistema (cartas magicas, armadilhas, etc). :XD:
Ha, de primeira u.u
(https://i.imgur.com/N4tkSzz.png)
Está excelente. As animações estão bem suaves, a jogabilidade em si até mais rápida do que eu esperava. Sei que é uma demonstração bem inicial, mas está dando pra continuar o jogo após vencer. Tipo, a janelinha azul atrapalha, mas as cartas continuam clicáveis. Se acontece ao perder não pretendo descobrir tão cedo. :U_U:
Agora xô fuçar esse código, obrigado por postar. o/
@Razier:
Obrigada por testar a DEMO.
Atualmente eu adicionei uma feature no sistema onde é possível descartar as cartas da sua mão se você não gostar dela, similar ao FBM, naquele esquema de fundir as cartas errado de propósito para descarta-las e ganhar uma mão nova, mas como não pretendo implementar o sistema de fusão, você tem uma opção "discard" na Draw Phase para descartar a carta da sua mão, então na próxima rodada você compra a quantidade de cartas que descartou + a que você jogou no campo.
Em breve vou começar a adicionar as spells para o sistema, já tenho toda a parte teórica feita, só falta por em prática.
Pretendo colocar o máximo de spells que puder, e ainda cartas que mudam o campo e algumas traps!
Obrigada pelo comentário!!
@Corvo:
Hahaha, boa!
Apesar de ter ganhado, o que achou da AI? Eu tentei fazer com que ela fosse algo mais "genérico", ou seja, não ficasse presa à uma única estrategia sempre, o que eu quero dizer é: você pode montar qualquer deck com qualquer carta pra ela que ela vai saber "se virar" com esse deck, sem ter uma estratégia mecânica, ela se adequa às qualquer deck, sabe?
Enfim, sobre a partida continuar... Estou ciente disso, na verdade ainda não implementei um game over descente pra aplicação, só essa mensagem, mas isso porque ainda pretendo adicionar o Exodia, se a pessoa juntar todas as partes dele o jogo acaba, então pretendo fazer um game over de fato após implementar essa carta. Isso acontece também quando suas cartas acabam, na prática era pro jogo terminar mas ele continua, em breve atualizado isso daí!
Obrigada pelo feedback de todos, é muito importante.
Entendi, a IA sabe jogar, mais especificamente. Neste meio tempo eu perdi e não consegui ganhar de novo, não posso reclamar dela. Colocou a maldita Mistyc Elf em modo de defesa em nem meu LaLa-Lion, sozinho no campo, fez ela tirar o monstro de lá. Fez isso em dois duelos.
Tipo, ela não aproveita toda oportunidade como as IAs simples tradicionais. Ela está sabendo esperar até ter cartas que aguentem o tranco para usar as mais fracas sem medo, não ataca desesperadamente sempre que possível.
Bem corvo talvez a IA, ela gere uma logica de quando atacar ou defender conforme valores são adicionado a ela, mas quando joguei certamente detectei uma fraqueza que as vezes pode ser util e as vezes nao, quase no fim da partida a IA sacou e jogou um mago negro, e eu nao tinha nenhuma carta forte o bastante para derrotar ele, mas eu tinha muitas cartas em modo de defesa (e a IA so tinha o mago negro em campo), com isso a IA colocou monstros que tinha na mao em campo em modo de ataque para acelerar a destruição das cartas em modo de defesa, a partir disso consegui assegurar a vitoria da partida.
Mayleone gostei de saber do sistema de descarte de carta no jogo e dos planos para as spells e traps :XD:, esqueci tambem de escrever no comentario anterior, no jogo Yugioh World championship 2011 para nintendo ds foi introduzido os rentals duels (duelos os quais os jogadores jogam com decks pre construidos) essa modalidade pode ser interessante caso queira criar um projeto mais simples, eliminando o sistema de loja de decks e o sistema de entrada e saida de cartas no deck. caso nao conheça deixei um link do youtube abaixo mostrando o sistema:
Spoiler
Boaa May!!
Deveria ter jogado antes, mas consegui pegar pra ver só hoje mesmo :XD:
Eu.. perdi o primeiro game :aiaiai:, eu tava cheio de carta ruim e fui massacrado pelo mago negro. De qualquer modo foi bem legal! Quando aumentei a tela distorceu algumas coisas e a vida sumiu, não sei se foi só aqui, mas o jogo está legal de jogar bom trabalho!
@Corvo:
Então que bom que ela foi satisfatória, ela realmente sabe diferenciar as cartas defensivas das ofensivas hehe!
@Razier:
Interessante essa mecânica, eu desconhecia, agradeço por ter me mostrado.
Realmente torna tudo mais fácil em relação em criar um deck manager, mas eu tenho uma idéia de como fazer, inclusive com side deck.
@Raizen:
Que bom que curtiu! É importante saber se vocês gostaram ou não dá mecânica.
Às vezes acontece de você sair mesmo com cartas péssimas, é questão de sorte hahaha mas quando eu adicionar spells e traps vai dar pra se virar mesmo com uma mão ruim.
Sobre a resolução, eu o projetei para ser rodado na resolução 640x480 mais pelo tamanho do cenário que na época havia sido feito pras resoluções do RMXP, então ele não é responsivo nesse sentido e eu esqueci de desativar o resize Window da janela do game xD obrigada pelo toque, ele vai funcionar em Full screen ou na resolução padrão, se não vou ter que refazer o background todo x(
ATUALIZAÇÕES - 03/12E aí pessoal, como vão? Depois de muitos meses sem mexer no projeto, hoje finalmente eu pude dar aquela atualizada que eu mais gostaria de dar (agora com PC novo é só alegria). Confira abaixo as novidades:
1. Seleção de Personagens:Com a seleção de personagens agora é possível jogar contra outros oponentes além daquele de testes! Isso significa que você terá mais possibilidades de jogadores para desafiar, decks diferentes e cartas novas!!
O sistema te possibilita criar decks diferentes para cada jogador, dessa forma, você pode ter vários oponentes diferentes para duelar contra, pois a AI é genérica e vai saber lidar com qualquer deck que ela tiver disponível.
Os personagens adicionados na versão DEMO foram:
- Shade (O jogador padrão de AI do primeiro teste
- Rex Raptor e seu deck de zumbi + dinossauros
- Weevil Underwood e seu deck de insetos
- Mai Valentine e seu deck de Harpias e Fadas
- Bandit Keith e seu deck de feras
- Yami Bakura e seu deck defensivo e dark
- Pegasus e seu deck apelativo xD
- Isis Ishtar e seu deck de água
- Seto Kaiba e seu deck dragão (sim, tem o Blue Eyes)
- Heishin e seu deck imbatível (não dá pra ganhar dele, que sacanagem né)
Screenshoot da seleção de personagens:
Spoiler
(https://i.imgur.com/v3kpOwm.png)
2. Mais opções de ações:Além de setar suas cartas para cima ou para baixo e cancelar a ação na DrawPhase, o jogador também pode agora ler a descrição da carta selecionada e o mais legal de tudo: Descartar a carta também! :money:
Com o sistema de descarte é possível eliminar cartas da sua mão que você julgue "inúteis" e na próxima vez que você comprar, você ganhará novas cartas referente à quantidade de cartas descartas. Por exemplo: Se descartar 3 cartas, na próxima rodada você comprará novas 3 cartas.
Esse sistema é similar do que já temos no Yu-Gi-Oh Forbbiden Memories, mas nesse caso o jogador descarta as cartas fundido elas erradamente de propósito.
Para abrir a janela das novas opções, clique na carta com o lado direito do mouse!Screenshoot das novas opções:
Spoiler
(https://i.imgur.com/DUpJFzw.png)
3. Cartas de Spells!!Essa sem dúvidas era a notícia que eu mais gostaria de anunciar para vocês! Agora o sistema conta com cartas mágicas (spells) para serem jogadas e terem seus efeitos ativados, mudando totalmente o rumo da partida!
Todo o sistema já está pronto pra receber as spells (adição ao board, ativação do seu respectivo efeito, prefab da carta e etc).
Para testes eu já criei duas spells: Raigeki (https://yugioh.fandom.com/wiki/Raigeki) e Dark Hole (https://yugioh.fandom.com/wiki/Dark_Hole) e elas já estão com seus efeitos criados e funcionando
ingame!! :wow: :wow:
Por enquanto apenas o player principal pode ativar spells, pois para a AI ainda preciso fazer um algoritmo para ela "pensar" qual o melhor momento para ativar a spell na partida, mas em breve estarei fazendo isso.
Screenshoots da spell no jogo:
(https://i.imgur.com/3vlV6VE.png)
Dark Hole ativado:
(https://i.imgur.com/C6xJWeR.png)
O que tem por vir:Mas as novidades não param por aí! Ainda pretendo melhorar algumas decisões da AI para deixar ela mais precisa, adicionar outras cartas spells além dessas duas, colocar a possibilidade de cartas Traps e Fields, fazer um sistema de Deck Viewer e possibilitar a AI de jogar cartas mágicas e descartar cartas da mão.
Em breve mais atualizações e links para download.
Boaaaaaa :wow:
Animei de novo haha, acho que os algoritmos para essas 2 spells vão ser tranquilas pra você fazer.
Criar oponentes e decks é uma das coisas que acho mais maneiros de fazer, dá para inventar muita coisa e a ver se a I.A está dando conta de jogar com um deck diferente. Parabéns ai May, fiquei no aguardo para as atualizações e espero a demo atualizada para eu jogar novamente :D
Eu tambem estou bem animado com as novidades, principalmente com a introdução das primeiras cartas magicas, ja que nos primeiros episodios do anime yugi oh original, o pequeno yugi explica para o joey que para vencer no monstros de duelos não basta ter monstros fortes, mas um deck equilibrado com monstros, spells (cartas magicas) e traps (cartas armadilhas); apos isso no navio rumo ao reino dos duelistas, o joey adquiriu varias cartas que foram muito importantes durante a serie toda. Com as mecanicas de cartas magicas a chance de vencer em situações complicadas como quando o jogador tiver monstros fracos e o oponente monstros fortes. Isso aumentara tambem o grau de dificuldade do jogo para ambos jogadores ( jogador humano e jogador computador)... Novamente parabens pelo projeto ... Aguardo ansiosamente pelo arquivo executavel para testar essa nova versão do projeto
Citação de: Raizen online 04/12/2019 às 11:30
Boaaaaaa :wow:
Animei de novo haha, acho que os algoritmos para essas 2 spells vão ser tranquilas pra você fazer.
Criar oponentes e decks é uma das coisas que acho mais maneiros de fazer, dá para inventar muita coisa e a ver se a I.A está dando conta de jogar com um deck diferente. Parabéns ai May, fiquei no aguardo para as atualizações e espero a demo atualizada para eu jogar novamente :D
Oi Raizen, obrigada pelo comentário!
Em relação ao algoritmo da AI, eu pensei em criar "grupos" de cartas que tenham efeitos semelhantes, assim como é o caso do Raigeki e do Dark Hole que tem os efeitos de destruir cartas em campo.
Então neste caso fica mais fácil pra AI saber que tipo de spell essa carta é, dessa forma, ela vai poder tomar a melhor decisão se vai ativar a spell ou não. No caso dessas cartas que destroem cartas do oponente, acho que a validação seria se nenhuma carta da AI pode dar conta de alguma carta do player e principalmente se o campo do player NÃO estiver vazio, se não vai ativar atoa. xD
Citação de: razier online 04/12/2019 às 18:49
Eu tambem estou bem animado com as novidades, principalmente com a introdução das primeiras cartas magicas, ja que nos primeiros episodios do anime yugi oh original, o pequeno yugi explica para o joey que para vencer no monstros de duelos não basta ter monstros fortes, mas um deck equilibrado com monstros, spells (cartas magicas) e traps (cartas armadilhas); apos isso no navio rumo ao reino dos duelistas, o joey adquiriu varias cartas que foram muito importantes durante a serie toda. Com as mecanicas de cartas magicas a chance de vencer em situações complicadas como quando o jogador tiver monstros fracos e o oponente monstros fortes. Isso aumentara tambem o grau de dificuldade do jogo para ambos jogadores ( jogador humano e jogador computador)... Novamente parabens pelo projeto ... Aguardo ansiosamente pelo arquivo executavel para testar essa nova versão do projeto
Não tinha como descrever melhor os impactos que as spells causam no jogo. Realmente tudo pode mudar, e é aí que eu vejo graça no YGO e em outros TCGs que se utilizam de mecânicas parecidas. Essa sensação de dar a reviravolta na partida deixa tudo mais emocionante!
- Passando também pra avisar que eu adicionei novas spells:
- Shadow Spell (https://yugioh.fandom.com/wiki/Shadow_Spell_(FMR))
- Sparks (https://yugioh.fandom.com/wiki/Sparks_(FMR))
- Dian Keto the Cure Master (https://yugioh.fandom.com/wiki/Dian_Keto_the_Cure_Master_(FMR))
- Spellbinding Circle (https://yugioh.fandom.com/wiki/Spellbinding_Circle_(FMR))
- Stop Defense (https://yugioh.fandom.com/wiki/Stop_Defense_(FMR))
E também melhorei a AI, deixando ela mais rápida e com algumas decisões um pouco melhoradas!
Meu próximo passo é permitir que a AI também possa jogar spells, após isso, irei disponibilizar o link para download da nova DEMO![/list]
Cheguei com mais novidades: Agora também é possível ativar cartas Field (campo) que mudam a cor do tabuleiro e aumentam (ou diminuem) pontos de determinados monstros.
Para a adição desse tipo de carta no sistema, foi necessário colocar mais uma coluna na tabela de cartas do banco de dados o "SubType" que seria o subtipo da carta como: "Insect", "Pyro", "Dragon" e etc.
Também adicionei um componente de UI na cena que mostra qual o nome do campo ativo, igual ao Forbidden Memories.
As cartas fields adicionadas foram:
(https://i.imgur.com/v1LskHo.png) (https://yugioh.fandom.com/wiki/Forest_(FMR))(https://i.imgur.com/UGs0e2F.png) (https://yugioh.fandom.com/wiki/Mountain_(FMR))(https://i.imgur.com/TMvnL7t.png) (https://yugioh.fandom.com/wiki/Sogen_(FMR))(https://i.imgur.com/fWxgpQ0.png) (https://yugioh.fandom.com/wiki/Umi_(FMR))(https://i.imgur.com/Xg709UO.png) (https://yugioh.fandom.com/wiki/Wasteland_(FMR))(https://i.imgur.com/JzsicJe.png) (https://yugioh.fandom.com/wiki/Yami_(FMR))
Um demonstração de um field da montanha ativado (aumenta o atk e def de Dragon, Thunder e Winged-Beast)
(https://i.imgur.com/bNGxlJ6.png)
Mais uma otima adição ao projeto, cartas magics fields são cartas que afetam todos os monstros do campo sendo que na maioria das vezes aumentam ou diminuem pontos de ataque e defesa de monstros de um atributo ou tipo, e podem dar uma boa vantagem a alguns jogadores, principalmente os que tem mais monstros que são afetados positivamente pela carta magic field. Ao ver essa adição me faz pensar se logo não estaremos vendo tambem cartas magicas que mudam temporariamente o ataque ou defesa de monstros ou mesmo cartas magicas equipamentos que aumentam ou diminuem ataque e defesa de monstros. Ansioso pelas proximas atualizações do projeto e arquivo executavel, parabens pelo excelente trabalho que você esta fazendo no projeto.
É exatamente isso, razier! As cartas fields dão vantagens a determinados tipos de monstros e desvantagens a outros! O Rex Raptor (um dos jogadores da IA) possui o deck totalmente zombie e dinosaur, eu adicionei 3 fields de Wasteland ao deck dele, e o baralho dele ganhou um power up bem legal, tudo ficou mais interessante!
E cartas magic de aumentar e diminuir pontos eu já adicionei na última atualização, só realmente ainda falta adicionar as cartas de equipamentos e traps, adicionando ambas, o sistema vai estar completo no quesito "tipo de cartas" (isso porque eu já coloquei na minha cabeça que o projeto não contará com as Rituals).
Hoje também fiz com que a IA possa jogar magics e fields, o "pensamento" dela para ativar essas cartas não é nada tão avançado quanto o nosso (e nem é minha intenção fazer isso), mas está seguindo um padrão legal e bem similar às IAs dos consoles. :urra:
Em breve estarei postando o link e código fonte, ainda preciso refatorar algumas coisas, mas é coisa pouca!
Atualizações de hoje:
Olá, como vão? Bem, passei pra avisar que mudei algumas coisas no projeto, segue:
1º Agora é possível ter equipamentos no deck: Com eles você pode equipar os seus monstros para deixá-los mais fortes e ganhar uma vantagem sobre o seu adversário!
Assim como no FM, você só pode jogar uma carta de cada vez no campo por turno, mas quando seleciona os Equips você pode jogar outra carta no campo em seguida, para que assim você possa equipar o seu monstro na mesma rodada. :)
Os equips adicionados até o momento foram: Megamorph, Bright Castle e Beast Fangs (para monstros do tipo "Beast", apenas).
2º Gostaria de enfatizar que a AI já pode jogar cartas de efeito, incluindo as Magics, Fields e até mesmo Equips!
3º Agora os pontos de atk e def do monstro mudam de cor na UI caso seus pontos tenham sido aumentados (devido a equips ou fields) ou decrementados (devido a outras magics ou fields), bem como no momento de animação da batalha, os pontos de atk e def deles estão de acordo com os efeitos delas.
4º Após a sugestão do membro @AbsoluteXandy , eu mudei um pouco a disposição do layout para ficar mais coerente, troquei o nome do botão de "End Phase" para "End Turn", diminui a imagem da carta na UI para poder colocar a descrição dela na interface, troquei de lugar o botão de "End Turn", retirei o nome do Field atual, diminui o tamanho dos textos dos LPs dos jogadores e fiz com que as cartas do oponente no campo ficassem de cabeça pra baixo:
(https://i.imgur.com/L59drX0.png)
Devido a essa alteração, não há a necessidade do lado direito do mouse para ler a descrição da carta, portanto agora temos apenas um menu de opções acessando clicando com o lado esquerdo do mouse, com a adição da opção de Discard, que antes ficava no outro menu.
Em breve mais atualizações!
Olá pessoal, quanto tempo que não posto nada por aqui, não?
Pois bem, hoje trago a vocês um novo vídeo do meu sistema de YGO na Unity, dessa vez com um novo personagem (Rex Raptor e seu deck Zombie/Dinosaur/Rock) e com a adição das cartas mágicas, equipamentos e fields! Também uma pequena reformulação no layout de batalha: agora mostra-se a descrição das cartas na interface gráfica abaixo da imagem da carta, o nome do Field ativo, o botão de "End Turn" está num local mais apropriado, e o Tipo da carta é mostrado na interface gráfica agora ("Dragon", "Pyro" e etc).
Também foi adicionado um sistema de descarte caso você queira se livrar de cartas que julga ser "inúteis no momento" e assim, na próxima rodada você terá cartas novas referente a quantidade de cartas descartadas anteriormente.
A inteligência artificial também foi melhorada com relação a algumas escolhas, ficou mais rápida para "pensar", ela também pode jogar cartas mágicas, fields ou equipar seus monstros (então cuidado!), agora ela também ataca com cartas defensivas se achar necessário
e vários bugs foram corrigidos em torno dela (assim espero).
No momento da batalha, os pontos de ataque ou defesa dos monstros são mostrados atualizados, ou seja, conforme os acrescimos e decrescimos devido a cartas de fields, equipamentos ou outras cartas mágicas. Monstros que tiveram seus pontos aumentados aparecem com os mesmos em VERDE na interface gráfica, e decrementados aparecem em VERMELHO.
Além de Rex Raptor, foram adicionados outros personagens ao sistema com decks diferentes: Weevil Underwood, Mai Valentine, Bandit Keith, Yami Bakura, Isis Ishtar, Seto Kaiba, Max Pegasus e Heishin. Portanto, agora temos um sistema simples de seleção de personagens.
Em breve irei adicionar as cartas armadilhas (Traps) e um Deck Viewer, portanto aguarde por atualizações e links para download!
(https://ms.yugipedia.com//thumb/d/d1/Raptor-LOD.png/257px-Raptor-LOD.png)
Rex Raptor Deck:Barrel Rock
Blue-eyed Silver Zombie
Clown Zombie
Crawling Dragon #2
Dark Hole
Dragon Zombie
Dragon Zombie
Fiend's Hand
Mammoth Graveyard
Mammoth Graveyard
Minomushi Warrior
Morphin Jar
Morphin Jar
Mystical Sand
Mystical Sand
Pumpking the King of Ghosts
Raise Body Heat
Raise Body Heat
Raise Body Heat
Rock Ogre Grotto #1
Rock Ogre Grotto #2
Rock Spirit
Stone D.
Sward Arm of Dragon
Temple of Skulls
The 13th Grave
The 13th Grave
The Snake Hair
Three-legged Zombies
Tomozaurus
Two-Mouth Darkruler
Two-headed King Rex
Two-headed King Rex
Uraby
Uraby
Wasteland
Wasteland
Wasteland
Yaranzo
Zombie Warrior
(https://ms.yugipedia.com//thumb/9/92/Weevil-LOD.png/257px-Weevil-LOD.png)
Weevil Underwood Deck:Ancient Tree of Enlightenment
Arlownay
Basic Insect
BattleSteer
Bladefly
Bladefly
Cocoon of Evolution
Cocoon of Evolution
Forest
Forest
Forest
Green Phanton King
Insect Armor with Laser Cannon
Insect Armor with Laser Cannon
Insect Armor with Laser Cannon
Jirai Gumo
Jirai Gumo
Killer Needle
Kumootoko
Kuwagata a
Kuwagata a
Larva Moth
Laser Cannon Armor
Laser Cannon Armor
Man-eater Bug
Megamorph
Nekogal #1
Nekogal #2
Petit Moth
Queen of Autumn Leaves
Raigeki
Shadow Spell
Silver Fang
Sleeping Lion
Snakeyashi
Spiked Snall
The Wicked Worm Beast
The Wicked Worm Beast
Tiger Axe
Winged Cleaver
(https://ms.yugipedia.com//thumb/b/b4/Shadi-MDDG.png/257px-Shadi-MDDG.png)
Shadi Deck:
Basic Insect
Blue-eyed Silver Zombie
Bolt Escargot
Celtic Guardian
Dancing Elf
Dark Hole
Dark Witch
Dragon Piper
Dragon Statue
Fire Eye
Fire Reaper
Forest
Garvas
Gate Deeg
Giant Flea
Hitotsu-me Giant
Job-Change Mirror
Kaiser Dragon
Kanikabuto
Key Mace
King Fog
LALA Li-oon
Lord of the Lamp
Mavelus
Megasonic Eye
Metal Dragon
Midnight Fiend
Mystical Elf
Mystical Sand
Parrot Dragon
Protector of the Throne
Raigeki
Tenderness
That Which Feeds on Life
The Furious Sea King
Thunder Dragon
Turu-Purun
Ushi Oni
Wicked Dragon with the Ersatz Head
Wicked Mirror
(http://i.imgur.com/Y6BS5uF.png)
Heishin Deck:
B. Skull Dragon
B. Skull Dragon
B. Skull Dragon
Black Luster Soldier
Black Luster Soldier
Black Luster Soldier
Blue-Eyes Ultimate Dragon
Blue-Eyes Ultimate Dragon
Blue-Eyes Ultimate Dragon
Cosmo Queen
Cosmo Queen
Cosmo Queen
Dark Magician
Dark Magician
Dark Magician
Gate Guardian
Gate Guardian
Gate Guardian
Labyrinth Wall
Metal Zoa
Metal Zoa
Metal Zoa
Meteor B Dragon
Meteor B Dragon
Meteor B Dragon
Millennium Shield
Millennium Shield
Millennium Shield
Perfectly Ultimate Great Moth
Perfectly Ultimate Great Moth
Perfectly Ultimate Great Moth
Sengenjin
Sengenjin
Sengenjin
Tri Horned Dragon
Tri Horned Dragon
Tri Horned Dragon
Zera The Mant
Zera The Mant
Zera The Mant
Em breve mais informações sobre os outros personagens. :ok:
Fico bastante contente com a forma que o projeto esta tomando, e é facil perceber quão bom esta ficando, a adição de cartas magicas e de personagens (principalmente a de personagens deve consumir um bom tempo), e fazer tudo isso funcionar deve estar dando um bom trabalho, mas o mais importante é que o resultado esta ficando bom.
Obrigada pelo apoio novamente, razier!
Na verdade a parte de montar o deck dos personagens nem está dando trabalho, basta eu registrar a nova carta no banco de dados e adicionar para a tabela do personagem essa nova carta:
Spoiler
(https://i.imgur.com/ta9oAC5.png)
Novidades - 2020Alô! Como tem passado? Primeiramente um feliz ano novo
super atrasado.
Hoje trago novidades para o projeto, não andei trabalhando muito nele nesses últimos dias por conta de uns problemas pessoais, mas temos atualizações mesmo assim:
1. Cartas traps (armadilhas) adicionadas ao projeto, finalmente :malvado:
Agora é possível jogar essas cartas para impedir o ataque do seu inimigo ou que alguma carta dele venha a campo!
A AI também pode jogar cartas de armadilha, então redobre o cuidado!
Assim como no Forbbiden Memories, as armadilhas se ativam automaticamente na ordem em que elas foram colocadas em campo.
Traps adicionadas ao banco de dados:
(https://i.imgur.com/J86C2v1.png)(https://i.imgur.com/bnMxkta.png)(https://i.imgur.com/O9yj69o.png)(https://i.imgur.com/1l44NEU.png)(https://i.imgur.com/lyc40sE.png)(https://i.imgur.com/KXqZtcb.png)
2. Também fiz com que as cartas que estejam batalhando fiquem em evidência antes que a animação de batalha ocorra ou as traps sejam ativadas, dessa forma o jogador terá noção de quais cartas foram selecionadas pela AI para batalhar, por exemplo.
3. :money: Músicas e efeitos sonoros adicionados, chega de ficar tudo mudo!
4. Também adicionei um scrollbar na interface gráfica onde mostra a descrição da carta, caso o texto da mesma fique muito grande:
(https://i.imgur.com/i4colfv.png)
5. Sem dizer os bugs corrigidos e refatorações no código que eu fiz, então acho que por hoje está bom! :D
Bem legais as atualizações, a introdução de audio é uma otima aquisição para o jogo e o metodo de banco de dados é bem legal, eu uso um sistema parecido para jogos de quiz, so que o arquivo que eu uso é do tipo .txt, que é o formato padrão de arquivo do bloco de notas, mas é bem efetivo e pratico na hora de fazer algumas coisas como quiz, não entendo muito de banco de dados mas ele é muito util para muitas coisas inclusive na criação de programas e aplicativos. So não entendi uma coisa na imagem do banco de dados que você mostrou porque nela os monstros não possuem atributos e estrelas, no jogo forbitten memories os monstros não possuem essa informação nas cartas, ou por hora essas informações não tem importancia? sei que essa é uma pergunta boba, mas fiquei curioso.
Parabens pelo trabalho, mesmo com os contratempos o projeto segue com grandes avanços.
Olá razier, mais uma vez obrigada por dar um "Up" no tópico. :XD:
Realmente um BD ajuda muito, principalmente quando se quer ter controle dos dados como permissões, ou para filtragem e ordenação de consultas, e essas coisas, mas às vezes (como num sistema de QUIZ) um simples arquivo .txt, XML ou JSON já resolvem o problema, não é?
Em relação a sua dúvida quanto às estrelas e atributos... Por enquanto no meu projeto isso não se faz necessário, visto que no Forbidden Memories isso era utilizado para as cartas de ritual, mas como não pretendo adicionar tais cartas por enquanto, isso ficaria obsoleto, por isso optei por não colocar, mas nada impede de eu adicionar no futuro, caso haja necessidade.
Ja faz um tempo que não visito esse topico (mas isso não significa que o esqueci), esses dias apos ver atualizações em um outro projeto de yugi oh do colega usuario resque aqui do forum (yugi oh curse of past), e com o lançamento do yugi oh legacy of dualist mais atualizado na steam, resolvi escrever no topico, não sei como andam as coisas ai mayleone, principalmente porque nos ultimos tempos no brasil e no mundo uma doença respiratoria altamente epidemica e mortal tem mudado as nossas vidas, espero que esteja bem ai, é que mais breve possivel possa publicar a nova demo jogavel do projeto (se possivel é claro) e dou a sugestão tambem de jogar o yugi oh legacy of dualist, pois dentro das possibilidades esta muito bom (eu joguei por isso estou comentando), adicionaram muitas cartas novas e agora a serie link esta tambem no jogo com praticamente todas as cartas que eu vi da serie v-rain, abraço e faça a quarentena.
Para evitar double post, estou aproveitando esse e como na primeira frase da mensagem anterior eu não esqueci o projeto, e gostaria de saber se ele ainda existe ou esta sendo atualizado ou mesmo terminou? ja se passou um tempo sem nenhuma nova postagem que resolvi fazer essa pergunta.