[Ajuda-Ideias] Montando um jogo como MK, SF ou KOF

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

[Ajuda-Ideias] Montando um jogo como MK, SF ou KOF

Mensagem por TRFN em Seg 02 Dez 2013, 12:57

Boa tarde pessoal. Me surgiu uma excelente oportunidade de trabalhar como desenvolvedor de jogos ( felicidade  ) ( e de início desenvolverei jogos para IOs, Android e PC, logo me mantenho no GM porque entendo melhor ele para o desenvolvimento de jogos investigador ), e dentre as listas de jogos que sei desenvolver, o estilo mais obscuro para mim é um jogo de Corrida (como top gear por exemplo) porém sem usar 3D e o de luta, como The King of Fighters, Street Fighter vs Capcom, Mortal Kombat, Killer Instinct e outros mais... O que preciso me focar agora seria na resolução de desenvolvimento de jogos de luta para ser mais exato, então não será necessário entrar na discussão de "como fazer um jogo de corrida em 2D com parallax e afins" por hora pois não é do meu interesse no momento. Sem mais delongas, eu pensei na seguinte teoria :

Ingredientes para um jogo de luta que funcione ( Pensamento só do programador, que sou eu ):

[V] Física
[X] IA Máquina
[X] Colisão de golpes precisa
[V] Demais aspectos visuais como intro, menu e afins.
[V] Noção geral de pequenos detalhes

* O que está com "X" evidencia o que me impede, atrapalha;

Estou com duas dificuldades : Uma seria bolar uma colisão de soco precisa, mas ao mesmo tempo com dinamismo, para que eu pudesse editar e adicionar com facilidade, outra seria criar uma IA que desse menos trabalho. A grande questão é que até agora só consegui pensar em formas absurdamente trabalhosas que seria trabalhosas para bolar e trabalhosas para editar depois. Vejo sim que tem como desenvolver um jogo de luta, mas não quero algo que for de desanimar ao editar ou adicionar algo novo, queria menos "arroz com feijão" e mais "inteligência e criatividade". Gostaria mais que vocês me ajudassem a pensar na parte lógica destes aspectos. Desde já grato.

* Sobre o MUGEN: Eu conheço, trabalhei nele antes do Game Maker mas ele não resolveria neste caso pois ele não possui portabilidade multi-plataforma.

- EDIT -
Achei um material que já ajuda muito :

http://gmbr.forumeiros.com/t10307-tutorial-logica-em-jogos-de-luta-colisoes-parte-1
http://gmbr.forumeiros.com/t10342-tutorial-logica-em-jogos-de-luta-colisoes-parte-2

___________



TRFN

Ranking : Nota C
Número de Mensagens : 970
Idade : 21
Data de inscrição : 16/01/2012
Notas recebidas : C
Reputação : 33
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 2

http://trfnsite.com

Voltar ao Topo Ir em baixo

Re: [Ajuda-Ideias] Montando um jogo como MK, SF ou KOF

Mensagem por luizbills em Seg 02 Dez 2013, 13:19

Pois bem cara, nunca fiz um jogo de luta. Mas já cheguei a pensar em como eu faria um. Para os golpes eu criaria uma simples colisão de retangulos ou poligonos. Talvez vc pensou assim também né.

Quanto a Inteligência Artificial, como em todo jogo, seria apenas um padrão de golpes. Claro que para ela ser uma IA boa ela deveria ter vários padrões e padrões complexos.

Mas para seu prototipo, vc poderia escolher um de seus lutadores e criar uma simples IA.
Código:
SE (distancia entre os lutadores > X) ENTÃO
use poder
SENÃO
dê um chute
Sugiro você fazer algo bem meia boca (mas que funcione) para o prototipo. Pois assim você poderá testar as lutas sem ficar perdendo tempo comcomplicações. Sugiro também você dar uma pesquisada no google.

luizbills

Número de Mensagens : 29
Data de inscrição : 14/09/2013
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: [Ajuda-Ideias] Montando um jogo como MK, SF ou KOF

Mensagem por Willy em Seg 02 Dez 2013, 13:37

Nunca fiz um jogo de luta, mas com um pouco de lógica dá pra bolar alguma coisa inteligente...

Colisão de golpes precisa:
Quando você dá um soco, o inimigo só sofrerá dano se colidir com:
A - Perna
B - Punho
C - Pâncreas
D - Umbigo
Uma técnica que eu uso para fazer a "colisão precisa", é criar um sprite com o formato da parte que bate, no caso, o punho. Quando eu executo a ação de atacar, crio um objeto com esse sprite criado e o posiciono exatamente no punho. Esse objeto se destrói ao colidir com um inimigo e causa dano. Se ele não colidir com nada, se destrói.

IA Máquina:
Esse ponto é bem mais complicado e trabalhoso de se fazer. Não existe uma formula secreta para fazer.
Eu faria da seguinte forma. Primeiro, eu programaria a IA para ser controlada por mim, ou seja, ao apertar X botão, executa Y ação, como se ele fosse o player mesmo. Depois de tudo pronto, eu trocaria os keyboard_check's da vida por uma variavel correspondente a sua ação, como por exemplo, socar.
Fazendo isso, já temos todos os movimentos feitos, e para usar, basta tornar uma variável verdadeira ou falsa. Com isso, já temos a parte de movimentos pronta, agora, vem a parte complicada...
Devemos agora, programar a inteligência propriamente dita... Neste caso, você terá que se colocar no lugar da IA e pensar: "O que eu faria nessa situação?". Por exemplo, se o adversário está longe, devo me aproximar. Se o adversário começar a me atacar, tento me defender. Se o adversário está dando uma rasteira, pulo para me esquivar.
Atacar, combo, especial, essas coisas, ai fica a seu critério... Pode ser movimentos aleatórios (mais simples) ou planejados de forma mais eficiente (mais complexo).

Fica a dica! blz

___________


Engines, tutoriais e projetos? Clique no banner!



Atenção:
Comporte-se, senão você vai levar a cintada do Willy no meio da bunda! bravo


Willy

Ranking : Nota A
Número de Mensagens : 1812
Idade : 23
Data de inscrição : 08/06/2009
Notas recebidas : C + B + A + A
Reputação : 245
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 1

http://willy-gmbr.blogspot.com/

Voltar ao Topo Ir em baixo

Re: [Ajuda-Ideias] Montando um jogo como MK, SF ou KOF

Mensagem por PedroX em Seg 02 Dez 2013, 14:43

Eu faria como o Willy. Criaria um objeto quadrado na ponta do golpe para que ele colida com o inimigo. Se o inimigo for dar um soco mas levar um no meio do caminho, ele cai mesmo assim. Ou seja, você teria que definir variáveis (levou_soco etc).

Sobre a IA, você poderia jogar com um amigo. Aí você programa um objeto para saber em que condições você fez tal coisa. Exemplo de código pro objeto:

Código:
if (TRFN_deu_soco)
{
if (AMIGO_ESTAVA_SOCANDO) AES=true;
if (AMIGO_ESTAVA_POUCO_HEALTH) AEPH=true;
}
Quando for programar a IA, some pontos a uma variável...

Código:
if (PLAYER_DEU_SOCO) DAR_SOCO += 1; //porque no código anterior tinha isso
if (PLAYER_ABAIXADO) PODER += 1;
if (PLAYER_EM_PE) CHUTE_ALTO += 1;
Seria mais ou menos assim. Analise as situações e some pontos para definir se deve aplicar um golpe ou se defender.

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: [Ajuda-Ideias] Montando um jogo como MK, SF ou KOF

Mensagem por JoaoVanBlizzard em Seg 02 Dez 2013, 15:01

Olha, eu já tenho interesse em criar meu próprio jogo de luta ( não para agora, mas já tenho um projeto em mente), contudo eu também fiz algo no jogo de "a boneca e a maldição" quando os inimigos batem nela, ou quando ela ataca os inimigos com uma voadora, como eu fiz aquilo? eu coloquei na minha cabeça que um soco seria como dar um tiro, seria lançado uma bala invisível no soco com um limite de vida para essa bala, se ela passasse esse limite ou se chocasse com um inimigo ela se destruiria.

Mas até ai tudo bem, mas você perguntaria: mas João , se eu quisesse que um golpe mais forte atingisse o oponente sem eu ser atingido também?
nesse caso poderiam ter categoria para os golpes, tipo a potencia B seria mais forte que a potencia A e a C mais forte que a B, se a potencia B fosse atingida pela potencia C ela se destruiria mas a C não, continuando sua trajetória normalmente, foi um método que eu pensei até para ecomizar tempo e ter algo funcional ao mesmo tempo.

JoaoVanBlizzard

Ranking : Nota B
Número de Mensagens : 1925
Idade : 38
Data de inscrição : 04/03/2012
Notas recebidas : B+B
Reputação : 144
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 2
   : 0

Voltar ao Topo Ir em baixo

Re: [Ajuda-Ideias] Montando um jogo como MK, SF ou KOF

Mensagem por AlexBosquin em Seg 02 Dez 2013, 15:19

cara eu gostei do seu tópico, eu sempre pensei nesse tipo de coisa de colisão em jogo de luta eu bolei uma bem legal vou ver se consigo te dar um "chute na bunda" com ela pra ver se você entende!

Bom é assim no sprite soco: spr_soco
Contém por exemplo: 5 frames
Existe outro sprite chamada: spr_box_colisão (ele é global, ou seja não precisa criar uma box para cara movimento

beleza sabendo disso la no objeto do seu player quando ele executar a função do chute suponhando que existe uma var chamada chute=false que só ative na função do chute

feito isso partimos para o obj_box_colisão que no STEP checará:

Código:

if obj_player.chute=true
{
//ação que vou explicar aqui embaixo
}
bom, quando ele checou se a variável chute do player estava ativa ele iria executar uma ação essa ação seria ficar com sua posição x e y na perna do player ou seja:

Código:

if obj_player.chute=true
{
x=obj_player.x+AA //AA é relativo pode mudar
y=obj_player.y-BB // Tambem é relativo
}
acho que você entendeu mais ou menos a minha teoria mas praticamente é assim:

Se player esta chutando minha posição é nas pernas e se colidir com inimigo gerar a reação dele e dar dano!

desculpe qualquer coisa ae amigo, o que vale é a intenção xD

AlexBosquin

Ranking : Nota C
Número de Mensagens : 621
Idade : 20
Data de inscrição : 10/07/2012
Notas recebidas : C
Reputação : 35
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 0

http://www.craftstudios.com.br

Voltar ao Topo Ir em baixo

Re: [Ajuda-Ideias] Montando um jogo como MK, SF ou KOF

Mensagem por theguitarmester em Seg 02 Dez 2013, 15:58

Muito já bati nessa tecla de jogos de luta, até tem um projeto(entre outros desistidos) que tava fazendo que seria um programa parecido com o MUGEN, porém parei de fazer por tempo e prioridades.

[X] Colisão de golpes precisa
Mas, uma dica que te dou é olhar o MUGEN, se você disse que já trabalhou nele, deve ter percebido um pouco de seu funcionamento, e então, pode ter percebido que ele cria uma maskara para personagem, e outra para o golpe, basicamente isto(pode ser criadas várias), e são quadradas, pode ser que você ache que não seja muito precisas, mas em um jogo de luta isto não será muito notável.
Daí, você pode não saber como fazer a Mask do gm se comportar de tal maneira como eu disse acima, então, digo lhe o seguinte: Crie a sua própria Mask!

[X] IA Máquina
Novamente, se você olhou/mecheu/manipulou/editou o MUGEN, deverá ter visto como funciona a parte em que você cria os golpes, poderes, movimentos, tudo no jogo, e então, deve ter percebido algo assim(acho que era assim):
state 1000
[
projectile
...
...
..
]

Isto seria um estado, de tantos outros que tem, basicamente cada movimento seria um estado, por exemplo, se você apertar DIREITA, acionará o estado 4, que pode ser se movimentar a frente, e, esse movimento só pode ser realizado se você estiver vivo, no chão, sem estar atacando...

Procure saber um pouco mais sobre Máquina de Estados, é nisto que se baseia os jogos de luta, tanto para criar a IA quanto manipular os lutadores.

Minha pergunta sobre isso um dia: http://gmbr.forumeiros.com/t25200-ajuda-com-desnvolvimento-de-ia-de-luta-teoria

theguitarmester

Ranking : Sem avaliações
Número de Mensagens : 1908
Idade : 21
Data de inscrição : 28/02/2012
Notas recebidas : B
Reputação : 80
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 1
Prêmios
   : 2
   : 2
   : 1

http://guitarmester.no.comunidades.net/index.php?pagina=19362978

Voltar ao Topo Ir em baixo

Re: [Ajuda-Ideias] Montando um jogo como MK, SF ou KOF

Mensagem por TRFN em Qua 04 Dez 2013, 02:39

-EDIT-

Aqui está o que já consegui adiantar. Se acharem algo que me ajude a melhorar por favor me falem; Eu já sei que o jogo trava por causa dos limites que ainda não programei direito. Fiz só o básico do básico e vou implementando e mostrando o resultado...

04/12/2013 - http://www.mediafire.com/download/lnlydfp8qwyunea/jogo+de+luta+-+prot%C3%B3tipo.zip

-POSTAGEM ANTERIOR-

@luizbills
Pois bem cara, nunca fiz um jogo de luta. Mas já cheguei a pensar em como eu faria um. Para os golpes eu criaria uma simples colisão de retangulos ou poligonos. Talvez vc pensou assim também né.
Muito bem colocado. Eu havia pensado em algo similar, e executando essa linha de raciocínio inclusive estou criando objetos "shadow" para fazer algo bem preciso, ou seja, um objeto com vários maks ao mesmo tempo e com ações de colisão diferentes. Masks vermelhas, ataque. Azuis, colisão dos personagens.

Quanto a Inteligência Artificial, como em todo jogo, seria apenas um padrão de golpes. Claro que para ela ser uma IA boa ela deveria ter vários padrões e padrões complexos.

Mas para seu prototipo, vc poderia escolher um de seus lutadores e criar uma simples IA.
CÓDIGO:
SE (distancia entre os lutadores > X) ENTÃO
use poder
SENÃO
dê um chute

Sugiro você fazer algo bem meia boca (mas que funcione) para o prototipo. Pois assim você poderá testar as lutas sem ficar perdendo tempo comcomplicações. Sugiro também você dar uma pesquisada no google.
Boa ideia. Vou fazer um protótipo.

@Willy
Uma técnica que eu uso para fazer a "colisão precisa", é criar um sprite com o formato da parte que bate, no caso, o punho. Quando eu executo a ação de atacar, crio um objeto com esse sprite criado e o posiciono exatamente no punho. Esse objeto se destrói ao colidir com um inimigo e causa dano. Se ele não colidir com nada, se destrói.
E justamente isso que estou executando. multi-masks. Valeu pela dica de toda forma e se eu encontrar dificuldades nisso peço ajuda Happy

Esse ponto é bem mais complicado e trabalhoso de se fazer. Não existe uma formula secreta para fazer.
Eu faria da seguinte forma. Primeiro, eu programaria a IA para ser controlada por mim, ou seja, ao apertar X botão, executa Y ação, como se ele fosse o player mesmo. Depois de tudo pronto, eu trocaria os keyboard_check's da vida por uma variavel correspondente a sua ação, como por exemplo, socar.
Fazendo isso, já temos todos os movimentos feitos, e para usar, basta tornar uma variável verdadeira ou falsa. Com isso, já temos a parte de movimentos pronta, agora, vem a parte complicada...
Devemos agora, programar a inteligência propriamente dita... Neste caso, você terá que se colocar no lugar da IA e pensar: "O que eu faria nessa situação?". Por exemplo, se o adversário está longe, devo me aproximar. Se o adversário começar a me atacar, tento me defender. Se o adversário está dando uma rasteira, pulo para me esquivar.
Atacar, combo, especial, essas coisas, ai fica a seu critério... Pode ser movimentos aleatórios (mais simples) ou planejados de forma mais eficiente (mais complexo).

Fica a dica! blz
Hm bem pensado, fazer uma espécie de debug realmente me pouparia tempo, o que vou precisar muito já que preciso programar algum jogo de luta de demonstração até terça feira que vem.

@PedroX


Sobre a IA, você poderia jogar com um amigo. Aí você programa um objeto para saber em que condições você fez tal coisa.

Estava pensando em níveis onde haveria taxas de aleatoriedade e de precisão/analise. Vamos supor que no nível fácil será a cada 10 movimentos 8 aleatórios no fácil, 5 aleatórios e 5 calculados no médio e 9 calculados e 1 aleatório no difícil...

@JoaoVanBlizzard
nesse caso poderiam ter categoria para os golpes, tipo a potencia B seria mais forte que a potencia A e a C mais forte que a B, se a potencia B fosse atingida pela potencia C ela se destruiria mas a C não, continuando sua trajetória normalmente, foi um método que eu pensei até para ecomizar tempo e ter algo funcional ao mesmo tempo.
Pensando nisso estou bolando uma programação onde um objeto chamado "shadowmaskg" fará esse trabalho e com isso será possível definir colisões e força por exemplo.

@AlexBosquin
acho que você entendeu mais ou menos a minha teoria mas praticamente é assim:

Se player esta chutando minha posição é nas pernas e se colidir com inimigo gerar a reação dele e dar dano!

desculpe qualquer coisa ae amigo, o que vale é a intenção xD
Ah que isso imagina, não precisa se desculpar por nada. Quanto a sua sugestão e numa linha assim que estou bolando as colisões e etc...

@theguitarmester

E claro, como pude me esquecer das mascaras que o mugen usa. Muito bem lembrado! Vou me inspirar neste aspecto.

Bom obrigado por me darem ótimas ideias. Agora vou desenvolver algo, então surgindo alguma dúvida volto a postar. A propósito, quando a engine tiver algo funcional faço questão de postar o resultado para vocês dizerem como ficou.

___________



TRFN

Ranking : Nota C
Número de Mensagens : 970
Idade : 21
Data de inscrição : 16/01/2012
Notas recebidas : C
Reputação : 33
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 2

http://trfnsite.com

Voltar ao Topo Ir em baixo

Re: [Ajuda-Ideias] Montando um jogo como MK, SF ou KOF

Mensagem por Conteúdo patrocinado Hoje à(s) 12:41


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum