O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Cardgames - São tão complexos quanto parecem?

Iniciado por Eliyud, 04/12/2020 às 15:59

Após minhas recentes experiências com card games e notar que eles são mais divertidos do que aparentam a princípio, passei a sentir um forte desejo de trabalhar no desenvolvimento de um jogo do gênero, que nunca me despertou o interesse até que, de fato, eu experimentasse. Porém carrego uma ideia de que eles são tão complexos de desenvolver como são de compreender. Parece um jogo muito difícil de se balancear, além de passar a sensação (pelo menos pra mim, que já venci de muitos bots mas já apanhei demais pra jogadores bem experientes) que eu sou o pior jogador do mundo.

Essa ideia é comum? Qual a opinião de vocês? Gostaria de saber especialmente de quem está ou já esteve no desenvolvimento de algum card game.

Card Games são impossíveis de fazer, saia dessa ideia enquanto há tempo! (Não quero concorrentes  :aiaiai:)

Bom, já que não fugiu ainda não tenho como te parar  :XD: .

Ah balancear é complicado pra caramba, isso é fato, mas ai também é um ponto que depende mais de como vai ser as regras do seu jogo, as vezes aquela criança de 10 anos que desenhou em uns papéis na escola montou um jogo de cartas balanceado. Sei lá, eu fui balanceando conforme eu fui ajustando as regras e tudo mais, normalmente quando as cartas tem custo/leveis, as cartas são mais fáceis de balancear, porque se você fizer uma carta muito forte, basta aumentar o custo ou o level da carta. Com isso posso trazer dois jogos de exemplo, Yu-gi-oh e magic, yugioh é um porre de balancear as cartas, já magic é muito fácil, porque as cartas tem custo, não significa que as suas regras precisam conter algum custo nas cartas, mas isso facilita horrores para balanceamento.

Quando duas ou mais cartas juntas se tornam mais poderosas, costumam chamar isso de sinergia nos card games, isso é um ponto que você sempre tem que tomar cuidado, as sinergias calculadas, aquelas que você decidiu que X carta era boa com carta Y, costumam dar super certo, o problema é quando surge uma sinergia X com carta Z que não foi planejada, ai pode sim sair do controle.

Quanto melhor você é no card game, pode ser o seu com suas regras ou qualquer outro, balancear as cartas é mais tranquilo. Por esse motivo as vezes algumas empresas quando colocam pessoas que não jogaram tanto o jogo criarem as cartas, costuma sair cartas totalmente desbalanceadas e que os jogadores experientes percebem rapidamente o problema naquela carta. Sinceramente, desenvolver as regras do jogo é mais fácil do que compreende-las, parece estranho isso, mas você só consegue compreender a complexidade das regras que você criou, jogando, tem muitas coisas que enquanto você joga, você percebe que as suas regras permitem algo que você não esperava.

Era essa a pergunta?  :XD:

Concordo com os pontos citados pelo Raizen. O cara é fera.
--
Acho que minha maior preocupação é essa mesmo: balanceamento.

Gosto muito do gênero e estou tentando me arriscar nesse ramo.
Tanto que falei com alguns amigos artistas para me ajudarem na área e outros para testarem. Aconselho você a desenvolver um jogo de cartas a base disso mesmo: testes. No meu ponto de vista, os bons jogos de cartas são formados com diversos testes, principalmente aqueles que disponibilizam mil e uma maneiras de criar uma jogada, com a intenção de saber se a regra X é válida ou se o combo de carta Y e Z no deck é forte demais comparado com o baralho do Juninho. Além dos testes, podemos falar que a experiência por conhecer outros jogos do gênero ajuda muito também, o maior exemplo disso é o próprio runeterra.

Os desenvolvedores de Legends of Runeterra criaram o jogo junto com sua experiência em outros jogos do gêneros e acredito que fizeram melhor em alguns aspectos. Como por exemplo: Os turnos de runeterra funcionam semelhante ao Magic, porém MUITO mais simples e didático. Já a interface, usaram o Hearthstone, que novamente fizeram algo mais limpo e intuitivo. Não estou dizendo que não criaram nada, mas sim afirmando que por jogar outros jogos de cartas, ajudaram a desenvolver o deles com mais facilidade.

Depois de fazerem o teste, disponibilizaram para os famosos testadores que por sua vez novamente, poliram o jogo em todos os aspectos a base do feedback. E olha que mudaram MUITA coisa...

Se você está pensando em criar apenas um jogo de cartas digital, acredito que seja MUITO mais fácil de balancear, já que as cartas físicas você não tem outro meio além de restringir o número delas no baralho ou apenas banir igual acontece com YGO.

Não dei nenhuma dica. Só quis comentar enquanto saboreio meu lanche aqui. Me atualize das novidades depois. Abraços.

Ps: Vou te indicar esse canal que fala muita coisa a respeito do Magic, mas que pode ser usado para seu projeto.
https://www.youtube.com/channel/UCiP4JMEbjjmdjGuw7ZRFRPQ

Já comentaram o que era possível, mas quero acrescentar que excesso de conteúdo atrapalha. Isso mesmo. Eu acompanhei Yu-gi-Oh! do começo até a saga GX, eu diria que ela foi o ápice do balanceamento do jogo. Depois, começaram a colocar muitas firulas para reinventar o jogo e cagaram totalmente o balanceamento. Então, uma vez que tenha chegado ao ponto, trabalhe nele para polir, não para complicar.

Eu fiz um CardGame no Rm2k em meados de 2013, mas na verdade ficou bem parecido com "Super Trunfo", você joga a carta e compara algum dos parâmetros, mas no meu caso fiz apenas "Força de Ataque" e a diferença era tirada dos pontos de vida como em Yu-Gi-Oh!, mas foi única e exclusivamente para apresentar a possibilidade na época.

Eu particularmente não aconselho o uso do Rpg Maker para isso, a não ser que seja por meio de Scripts/Plugins.

Card games e jogos de estrategia costumam a ser alguns dos estilos de jogos que muita gente considera um pouco complicado para se criar bem, dependendo do que você ira querer criar sim, o grau de complexibilidade do projeto pode definir tanto o trabalho como a dificuldade de fazer como tambem a satisfação de um grupo especifico de jogadores que iram experimentar o seu jogo. Percebo a sua pergunta real é: É dificil criar um jogo estilo card game?  a resposta varia bastante, um dos maiores desafios para quem quer criar esse tipo de jogo sera o programa que sera usado para criar esse tipo de jogo, o conhecimento sobre o programa seus recursos e limitações é um ponto tambem bem interessante, outro fator importante para quem quer trabalhar com a criação desse tipo de jogo é conhecimento sobre card games, bom desenvolvedores costumam ser tambem bons jogadores, isso pode ajudar muito na hora em muitas fases do processo de criação de um jogo, eles podem variar desde o planejamento, prototipagem, estrutura de mecanicas ate mesmo na analise e avaliação do resultado final do jogo final criado, afinal o teste do criador como cliente e jogador pode ter um fator decisivo em relação ao produto final que é o jogo.

Quanto a discussão de balanceamento e gostos pessoais de card game, prefiro não adentrar no assunto.

Quanto a projetos indies feitos tanto no rpg maker quanto em outros programas temos alguns que podemos citar: o jogo de yugi oh da mayleone em produção na unity, um fan game de yugi oh que esta sendo produzido por um usuario aqui do crm de nome resque, acho que no rpg maker vx ace, o jogo original do raizen em produção, um jogo de yugi oh feito no rpg maker 2003, que aparentemente foi feito por um alemão e eu achei e postei link do youtube para download tanto do jogo quanto do arquivo para abrir no editor (se ainda funcionar o link para download, sendo assim com base nesses exemplos é correto afirmar que criar um jogo do genero é possivel.

Dito tudo isso, para eu entender melhor a sua ideia por tras da criação de um jogo card game e desenvolver melhor as ideias por traz desse topico, algumas perguntas são importantes: Você pretende usar alguma versão do rpg maker para criar um card game? se não qual programa de criação de jogos você tem em mente como opção para esse tipo de projeto? Quais são suas experiencias ou seja quais jogos do genero você jogou e quais você gostou e lhe inspiram? Sem dar detalhes especificos a respeito do seu projeto, qual seria a extensão ou o grau de complexibilidade do que você almeja para o seu primeiro projeto de card game?

05/12/2020 às 22:50 #6 Última edição: 05/12/2020 às 23:02 por Resque
Citação de: Eliyud online 04/12/2020 às 15:59
Após minhas recentes experiências com card games e notar que eles são mais divertidos do que aparentam a princípio, passei a sentir um forte desejo de trabalhar no desenvolvimento de um jogo do gênero, que nunca me despertou o interesse até que, de fato, eu experimentasse. Porém carrego uma ideia de que eles são tão complexos de desenvolver como são de compreender. Parece um jogo muito difícil de se balancear, além de passar a sensação (pelo menos pra mim, que já venci de muitos bots mas já apanhei demais pra jogadores bem experientes) que eu sou o pior jogador do mundo.

Essa ideia é comum? Qual a opinião de vocês? Gostaria de saber especialmente de quem está ou já esteve no desenvolvimento de algum card game.

Aeeee Yud! Muito bom te ver por aqui!

Respondendo o título do tópico: Sim, Cardgames são complexos se forem feitos em engines que não foram criadas para isso. No meu caso estou produzindo o Yu-gi-oh! fangame no VX Ace assim como o Razier mencionou no post anterior e está sendo muito complexo se comparado com o desenvolvimento de um jogo RPG.

Mesmo com tudo isso, o VX Ace tem me ajudado muito com os scripts genéricos de renderização de imagens, posicionamento, janelas, diálogo e outros.

Por falar em script, sei que eventos tem um grande poder, mas será quase impossível construir uma engine apenas na base de eventos. Ok, até pode ser feito, mas de forma muito mais difícil de manter.

No RPG Maker, qualquer jogo que foge da temática RPG, te levará para um caminho de criar a sua própria engine dentro do Maker. Ou seja, classes que representam a sua regra de negócio, e não a do Maker. Isso serve para jogos de carta, carro, luta e tudo que for diferente de RPG. Até para criar scripts RPG (que é a mesma temática da engine) já é difícil de fazer.

Ainda sobre os scripts, para o seu jogo ficar legal, as suas habilidades de programação e conhecimento de game engine no geral será o grande diferencial para você chegar em algo razoável.

No caso do Yu-gi-oh! você pode ser o Yugi em pessoa, mas se não conhecer bem a linguagem de programação (seja ela qual for), o game tem grande chance de não da ficar como você quer.

As habilidades em programação para jogos seguem o mesmo critério de qualquer projeto de Software empresarial. O que vai diferenciar um script de um sistema robusto são os itens apresentados abaixo. Vou demonstrar cada um deles com algo do Yu-gi-oh!

- Linguagem de Programação
Requisito básico para desenvolver qualquer coisa, aqui você vai ter que dominar a linguagem de programação e não deixar ela fazer o contrário. Você deverá tirar todo o proveito que a linguagem oferece, até os mais complexos.

Além de livros (que não conseguiria listar todos existentes) um lugar que da uma breve introdução sobre todas as linguagens é esse:

https://www.tutorialspoint.com/ruby/index.htm

Essa é a classe de comandos disponíveis para uma carta do Yu-gi-oh!: https://github.com/rogesson/yugioh/blob/master/source/Card_Commands.rb

- Design Patterns

Existem muitos padrões de códigos que são extremamente necessários para deixar o seu sistema com a qualidade necessária, eles foram inventados por programadores desde a época dos dinossauros e utilizados. Existem vários, um deles é o Flyweight que reduz o número de objetos criados e consequentemente reduz o uso de memória no seu game.

Esses patterns vão deixar o seu sistema robusto de de fácil manutenção, você precisa resolver quer problema de código em apenas uma respiração.

Esse padrões também podem ser encontrados no mesmo site: https://www.tutorialspoint.com/design_pattern/index.htm
https://www.tutorialspoint.com/design_pattern/index.htm

- Testes unitários

Sistemas desenvolvido por prazer são frágeis, programas robustos dão trabalho pois são compostos por um milhão de cuidados.

Você conseguirá desenvolver de forma fácil as primeiras funcionalidades do seu sistemas, mas quando ele crescer, vai se tornar um caos, cada bug que você arruma, aparece mais 10 e vai chegar uma hora, que você vai passar mais raiva do que ver resultados.

Os testes unitários garantem não só o bom funcionamento de tudo a cada alteração, mas também apontam os códigos com defeito de arquitetura, quanto mais difícil de testar uma função, mais emaranhado ele está.

Aqui está um teste unitário para a inteligência artificial do inimigo no meu Yu-gi-oh!: https://github.com/rogesson/yugioh/blob/master/spec/brain_spec.rb

Você pode achar mais sobre testes unitários em: https://www.tutorialspoint.com/rspec/index.htm

- Design de Classes

100% de testes não significa uma aplicação perfeita. Suas classes devem ser orientadas a Objetos caso a sua linguagem de programação tenha esse paradigma e você deve entender os cinco princípios da POO (Programação Orientada a Objetos), principalmente o S.O.L.I.D.

S.O.L.I.D:
    S — Single Responsiblity Principle (Princípio da responsabilidade única)
    O — Open-Closed Principle (Princípio Aberto-Fechado)
    L — Liskov Substitution Principle (Princípio da substituição de Liskov)
    I — Interface Segregation Principle (Princípio da Segregação da Interface)
    D — Dependency Inversion Principle (Princípio da inversão da dependência)

https://medium.com/desenvolvendo-com-paixao/o-que-%C3%A9-solid-o-guia-completo-para-voc%C3%AA-entender-os-5-princ%C3%ADpios-da-poo-2b937b3fc530

- Matemática

Sim, com games você vai precisar usar todas aquelas formulas malucas que aprendemos na escola e sempre achamos que nunca vamos usar.

Um exemplo disso no meu Yu-gi-oh! é a movimentação de uma carta do ponto A para o ponto B, eu poderia gastar meses ou anos criando uma classe com vários IF, LOOPS e tudo que a linguagem permitir, que mesmo assim não ficaria bom quanto um modelo matemático já existente para mover um objeto entre dois pontos usando apenas matemática:

https://github.com/rogesson/yugioh/blob/master/source/Vector2d.rb

- Base teórica de como funciona uma Game Engine feita do zero.

Existem muitos livros sobre game que ensinam criar um game do zero via programação. E todos eles te fazem construir uma game engine durante o desenvolvimento do game. Isso é possível com qualquer linguagem de programação. Alguns que recomendo são:

- Learn Game Programming with Ruby [Book] - O'Reilly
- Introdução ao Desenvolvimento de Jogos em Python com PyGame
- https://www.casadocodigo.com.br/collections/programacao-games




Com essas habilidades, você pode construir qualquer tipo de jogo, em qualquer linguagem de programação.

Se você quiser fazer um card game mesmo sem ter esses conhecimentos, eu sugiro que faça. Pode ser que ele nunca seja lançado, ou que você nunca mostre para alguém. Mas só de você passar horas quebrando a cabeça e descobrindo coisas novas, você ganhará muita experiência e será um programador melhor.




Espero que tenha respondido :) até mais amigo Yudi!