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

Testes no meu ABS

Iniciado por MV, 03/04/2020 às 21:14

03/04/2020 às 21:14 Última edição: 03/04/2020 às 23:52 por Gabriel
Segue um vídeo de alguns testes que eu gravei. Não mostrei todas as funcionalidades do sistema, vou fazer outro vídeo em breve pra mostrar o resto das coisas que estão prontas por enquanto.
Desculpem pela baixa qualidade do vídeo, falta de som, e baixo fps, meu pc ficou bem lento ao executar o gravador de vídeo




Citação de: MV online 03/04/2020 às 21:14
Segue um vídeo de alguns testes que eu gravei. Não mostrei todas as funcionalidades do sistema, vou fazer outro vídeo em breve pra mostrar o resto das coisas que estão prontas por enquanto.
Desculpem pela baixa qualidade do vídeo, falta de som, e baixo fps, meu pc ficou bem lento ao executar o gravador de vídeo




Tá bem show, caro lupino!  :popcorn: Parabéns! E sucesso no jogo
Conheça meus assets:

Citação de: Sir Lobo online 03/04/2020 às 21:34
Tá bem show, caro lupino!  :popcorn: Parabéns! E sucesso no jogo

Muito obrigado! Um abraço!

Tá ficando muito bacana. Gostei do que comentou no chat do range dos ataques ser parametrizado também, dá uma liberdade boa para balancear tipos diferentes de armas!

Essa base que você já fez é provavelmente a parte mais trabalhosa, daí pra frente é a parte divertida de ir aprimorando com mais ideias e tal. Boa sorte!

Citação de: Ellye online 03/04/2020 às 21:45
Tá ficando muito bacana. Gostei do que comentou no chat do range dos ataques ser parametrizado também, dá uma liberdade boa para balancear tipos diferentes de armas!

Essa base que você já fez é provavelmente a parte mais trabalhosa, daí pra frente é a parte divertida de ir aprimorando com mais ideias e tal. Boa sorte!

Obrigado pelo feedback! Um abraço!

E sim, acho que o mais difícil já passou mesmo, eu tô bem animado pra colocar novas funcionalidades!

Eu considero ABS o sistema mais trabalhoso de se fazer e é satisfatório ver quando alguém alcança um resultado tão bacana. Como disse já haver mais coisas prontas, seria legal tu já postar o vídeo mostrando as funções atualizadas pois talvez eu opine sobre pontos que tu já acrescentou ou alterou. Por exemplo, algo que eu acho bastante falho na maioria dos ABS disponíveis é se resumirem a se aproximar do inimigos e apertarem o botão de ataque incessantemente, o que acaba fazendo uma batalha que era pra ser ativa se tornar tão monótona quanto uma em turnos, e me indaga conhecer os meios que os desenvolvedores usam para evadir disso.
Eu espero que consiga chegar a um ótimo sistema e, principalmente, alcance seu objetivo com ele. Por hora, parabéns pelo atual progresso que já é considerável.  :clap:

03/04/2020 às 22:58 #6 Última edição: 03/04/2020 às 23:01 por MV
Citação de: Geraldo de Rívia online 03/04/2020 às 22:22
Eu considero ABS o sistema mais trabalhoso de se fazer e é satisfatório ver quando alguém alcança um resultado tão bacana. Como disse já haver mais coisas prontas, seria legal tu já postar o vídeo mostrando as funções atualizadas pois talvez eu opine sobre pontos que tu já acrescentou ou alterou. Por exemplo, algo que eu acho bastante falho na maioria dos ABS disponíveis é se resumirem a se aproximar do inimigos e apertarem o botão de ataque incessantemente, o que acaba fazendo uma batalha que era pra ser ativa se tornar tão monótona quanto uma em turnos, e me indaga conhecer os meios que os desenvolvedores usam para evadir disso.
Eu espero que consiga chegar a um ótimo sistema e, principalmente, alcance seu objetivo com ele. Por hora, parabéns pelo atual progresso que já é considerável.  :clap:


Obrigado pela resposta! Tudo de bom!

Então, eu acabei não mostrando as outras funcionalidades por que apesar de estarem funcionais não estão graficamente bonitas, digamos. E quando eu digo isso não é apenas em relação a falta de gráficos, mas também a falta de sincronia dos acontecimentos(ainda estou trabalhando nisso). E também tem o audio, que esqueci não coloquei pois tinha uma tv alta do lado e não sei como gravar de dentro do pc :o__o:. A menina grita quando ataca e as vezes quando toma dano !

Em relação a monotonia, sim, de fato a maioria dos abs falham nisso. Mas acredito que isso seja um problema do rpg maker, porque ja que o sistema não possui movimento por pixel naturalmente, a mobilidade fica complicada e as lutas acabam sendo muito paradas. Nesse caso é melhor fazer um sistema por turno mesmo, aliás, a maioria dos abs feitos pra rpg maker são combates por turno nas batalhas corpo a corpo.

Eu não sei se deu pra perceber nesse vídeo de baixa qualidade, mas as armas tem distâncias diferentes e os monstros tem padrões diferentes. O "besouro", por exemplo, não é empurrado numa batalha, o que dificulta o uso de armas de curta distancia contra ele, mas pelo fato de ser lento, é possivel vencelo sem sofrer danos com uma arma maior. Isso, ao meu ver, apesar de ser simples, já adiciona um certo elemento de estratégia no jogo, ainda mais se a arma maior possuir um dano reduzido.

Obrigado de novo pelo comentário!



Segue abaixo a lista de atualizações :

- Maior parte do sistema agora é feito por script e não por eventos
- Tipos de armas diferentes exibem sprites diferentes
- Armas diferentes possuem animações diferentes (é usada a animação da arma do banco de dados)

Bom, agora que eu mudei o sistema para scripts estou tendo alguns problemas que não possuía antes e gostaria que me ajudassem com essa dúvida : Como faço para fazer algo acontecer após certo tempo sem paralisar o código inteiro? Esse dificuldade é a causa do bug que faz a arma continuar apos o personagem sofrer dano quando está atacando, já que como eu não consigo fazer isso, eu coloque a aparição e destruição do sprite dentro da rota de movimento do player, ai quando ele é atacado enquanto isso a rota é interrompida e o sprite não sai. Outro problema que estou tendo por causa disso é que fez o ataque ficar mais difícil de acertar, já que por eventos, o sistema de checagem rodava varias por x frames antes de ser desativado , mas com script eu não consigo fazer isso , então roda apenas uma vez, o que faz com que o ataque tenha que atingir em um período específico demais . Agradeço a quem puder ajudar, pois fazer isso é crucial para o funcionamento do sistema.

Você tem que ter blocos acontecendo em paralelo independente da ação que você executou.

Como não colocou o código aqui, vou falar por cima o que aconteceu. Provavelmente o bloco que executa a animação da espada não está ocorrendo idependentemente do restante da programação, então quando você leva dano ele deve estar priorizando o dano e talvez se você está usando um contador, quando volta para a função da animação da espada, já passou o tempo de sumir, ou nem sequer é mais executado a função da animação da espada.

Dentro do seu update, essas coisas tem que acontecer em paralelo e independentes das outras coisas que ocorrem no sistema, sobre o ataque estar com a colisão piorada, eu imagino que seja exatamente o mesmo caso, ele não está independente de algumas ações do sistema, o que pode provocar que ele não verifique com precisão quando vai ocorrer a colisão.

Citação de: Raizen online 05/04/2020 às 17:07
Você tem que ter blocos acontecendo em paralelo independente da ação que você executou.

Como não colocou o código aqui, vou falar por cima o que aconteceu. Provavelmente o bloco que executa a animação da espada não está ocorrendo idependentemente do restante da programação, então quando você leva dano ele deve estar priorizando o dano e talvez se você está usando um contador, quando volta para a função da animação da espada, já passou o tempo de sumir, ou nem sequer é mais executado a função da animação da espada.

Dentro do seu update, essas coisas tem que acontecer em paralelo e independentes das outras coisas que ocorrem no sistema, sobre o ataque estar com a colisão piorada, eu imagino que seja exatamente o mesmo caso, ele não está independente de algumas ações do sistema, o que pode provocar que ele não verifique com precisão quando vai ocorrer a colisão.

Obrigado por responder!

Então, eu conheço a causa dos dois problemas, como eu escrevi no tópico, mas a questão é que eu não consigo resolver esses bugs, já que eu não sei fazer coisas acontecerem em paralelo sem usar eventos . Se puder me orientar quanto a isso vai ser de grande ajuda .


Citação de: MV online 05/04/2020 às 17:24
Obrigado por responder!

Então, eu conheço a causa dos dois problemas, como eu escrevi no tópico, mas a questão é que eu não consigo resolver esses bugs, já que eu não sei fazer coisas acontecerem em paralelo sem usar eventos . Se puder me orientar quanto a isso vai ser de grande ajuda .

Olá MV!

Acho que você poderia usar as funções do update não?
Por exemplo, você tá fazendo seu código, acredito que algumas partes, no Scene_Map né?

Você pode colocar o que você quer checar em paralelo no Scene_Map.prototype.update.
Mas aí você vai fazer as coisas acontecerem a cada frame...
Se você quer que aconteça somente a cada X frames, você pode tentar fazer algo parecido com o que tem no Sprite_Timer:

Sprite_Timer.prototype.initialize = function() {
    Sprite.prototype.initialize.call(this);
    this._seconds = 0; ////// Cria um objeto igual esse. \\\\\\\
    this.createBitmap();
    this.update();

Sprite_Timer.prototype.updateBitmap = function() {
    if (this._seconds !== $gameTimer.seconds()) { ////// Para fazer comparações como essa.  \\\\\\
        this._seconds = $gameTimer.seconds();
        this.redraw();
    }
};
};


Nesse código, ele compara o objeto this._seconds do Sprite_Timer com o outro objeto do Game_Timer($gameTimer.seconds).
Então nessa função de update, você poderia fazer algo tipo assim:

initProperties(){ // Inicia essa propriedade onde você achar melhor
this._frames = 0;
};

myFunction(){ // Cria a função que vai medir o tempo.
this._frames++ ou this._frames += 1; 
if(this._frames === 30){
// do stuff
this._frames = 0
}

Scene_Map.prototype.update = function(){
//alias the function
myFunction(); // call your function.
}


Acho que com isso você pode simular um evento paralelo dentro do código.
Espero ter entendido a sua dúvida!

08/04/2020 às 16:17 #11 Última edição: 08/04/2020 às 16:32 por MV
Obrigado Eliaquim pela dica! Eu ainda não tinha visto seu comentário e acabei resolvendo o problema exatamente da mesmo forma que você ensinou, que coincidência! De qualquer forma muito obrigado pela ajuda, esse comentário vai ajudar outras pessoas que estiverem com a mesma dúvida.


Atualização



- Agora é feito totalmente por script, não é mais um sistema misto
- Problemas do vídeo anterior resolvidos
- Agora o tempo entre 2 ataques varia de acordo com a agilidade do personagem somada com o da arma(não visível nesse vídeo)

Então , quando eu gravei o vídeo eu queria ter mostrado a parte da agilidade, mas esse foi o último vídeo que consegui gravar depois do trial do programa de captura acabar  :facepalm: . Dá pra notar também que a animação do personagem está com um pouco de falta de sincronia em relação a quando o oponente recebe o ataque, mas eu resolvi isso também, só que acabei não conseguindo gravar por causa do programa  :=p:

Próximas Metas

- Ataques a distância (já estão em fase de teste)
- Inimigos que utilizam armas(acho que pode ser bacana caso o inimigo seja um humano ou algo assim)

Atualização
Então, estou meio desanimado então meu ritmo está meio lento, mas adicionei bastante coisa desde a ultima atualização. Segue o vídeo abaixo. O fps do vídeo está meio ruim então não tenho certeza se da pra ver que o personagem está pulando.



- Habilidades a distância adicionados
- Habilidades em área de circulo adicionados(muito incompletos por enquanto)
- Habilidades que adicionam um efeito em um ataque normal adicionados
- Sistema de pulo adicionado(não sei se vou usar no sistema final)(é possivel se movimentar e usar habilidades enquanto está no ar com esse sistema)
- Sistema de relevo(ataques não atingem inimigos que estão numa area diferente, ataques a distância são parados se entrarem em um relevo mais alto e passam por cima caso o relevo seja mais baixo. Pular te coloca um relevo acima, então é possível atingir inimigos que estão numa regiões uma unidade mais elevadas que a do personagem caso pule, como mostra o vídeo)

Pow cara tá ficando muito bom.
Eu já ouvi dizer que no Mv isso é dificil de fazer, até por códigos.
Não é a toa que temos alguns disponíveis, mas sempre tem algum problema...

Mas tá ficando muito bom.
Eu também penso em fazer o meu abs, mas tenho medo só de pensar kkkkkkk
Acho que a parte mais difícil pra mim seria as colisões e movimento pixel.
Enfim, bom trabalho cara!

Citação de: Eliaquim online 20/04/2020 às 22:54
Pow cara tá ficando muito bom.
Eu já ouvi dizer que no Mv isso é dificil de fazer, até por códigos.
Não é a toa que temos alguns disponíveis, mas sempre tem algum problema...

Mas tá ficando muito bom.
Eu também penso em fazer o meu abs, mas tenho medo só de pensar kkkkkkk
Acho que a parte mais difícil pra mim seria as colisões e movimento pixel.
Enfim, bom trabalho cara!

Eai, beleza? Obrigado pelo feedback !

Então, eu uso um pixel movement já pronto kkkkk sou bem leigo no javascript então diria que é impossível pra mim fazer meu proprio pixel movement no meu estado atual kkkkk. Mas quanto mais eu enfrento os desafios de fazer esse sistema mais eu aprendo, então quem sabe um dia ! Mais uma vez obrigado!