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

Campo de visão do inimigo

Iniciado por Felpisio, 02/08/2020 às 15:52

02/08/2020 às 15:52 Última edição: 09/09/2021 às 04:48 por Gabriel
Então...
Estou fazendo um sistema de "Campo de visão" para que quando o inimigo esta mais de 20 de distancia do player ele anda aleatoriamente, quando esta a 6 de distancia ele se aproxima lentamente e se esta a 4 ou 3 de distancia ele vai correndo atras do jogador, quando esta a 1 o jogador morre. Funciona bem... Mas o inimigo fica vendo o jogador atras das paredes, fazendo então o inimigo ficar com a cara olhando para a parede, quero saber se não tem como se livrar desse "bug" fazendo com q quando tem uma parede entre o player e o monstro o monstro n consiga ver o player!  :sera:



1- Quero que quando o jogador esta fora do campo de visão do inimigo o inimigo apenas anda aleatoriamente pelo mapa a procura do jogador.

2- Quero que quando estiver dentro do campo de visão do inimigo o mesmo persegue o player e ele só pare de perseguir o player quando o player estiver muito longe assim fazendo o inimigo voltar para o movimento aleatório.

3- o monstro não ver através das paredes ou dentro de armários.

O jogo só vai ter 1 inimigo e o jogo se passa dentro de uma mansão, a maioria dos objetivos do jogo vai ser achar ou coletar algumas coisas e fugir do monstro (o inimigo). O jogo vai ter alguns armários em que o jogador pode se esconder dentro também!
Eu só sou um cara que quer criar jogos épicos!

A melhor solução é parar de usar eventos pro que não deveria.

Eu fiz um script com funcionamento similar ao que você quer: https://centrorpg.com/index.php?topic=23820.0

Pode dar uma olhada em como funciona, não vai rolar fazer com eventos a menos que você queira colocar uma cacetada de script call e muito sofrimento.
A ideia é usar uma reta pra determinar onde o campo de visão tem interseção com algum obstaculo no mapa, tipo assim:


Pelo que vi do código, seu campo de visão seria um quadrado (meio estranho que o inimigo veja pelas costas mas beleza), nesse caso até dá pra fazer alguma coisa com um scan, percorrendo as coordenadas do mapa sequencialmente partindo do inimigo e parando quando atingir um obstáculo. Seria mais simples, mas talvez o efeito final deixe um pouco a desejar pra áreas maiores.

De toda forma, sugiro procurar algum script pra isso ou achar alguém que possa fazer pra você. Eventos não foram feitos pra fazer sistemas, só eventos.
~ Masked

Na verdade isso não é um BUG, já que é um calculo de coordenadas, acredito que seja exatamente o mesmo idealizado pelo D-Guy no jogo Chimera Report (Rm2k em meados de 2001~2003), no jogo as paredes eram mais espessas, garantindo que a visão nunca alcançasse o jogador, mas provavelmente você pegou desta tutorial:
https://forums.rpgmakerweb.com/index.php?threads/proximity-distance-check.79791/

Para criar isso por evento seria mais pratico com ID de terreno, mas demandaria muitas gamibarras e com certeza ai sim seria um BUG, o ideal é usar esse Script do Masked/BRANDT.

02/08/2020 às 23:29 #3 Última edição: 03/08/2020 às 08:08 por Brandt
Citação de: Brandt online 02/08/2020 às 17:34
A melhor solução é parar de usar eventos pro que não deveria.

Eu fiz um script com funcionamento similar ao que você quer: https://centrorpg.com/index.php?topic=23820.0

Pode dar uma olhada em como funciona, não vai rolar fazer com eventos a menos que você queira colocar uma cacetada de script call e muito sofrimento.
A ideia é usar uma reta pra determinar onde o campo de visão tem interseção com algum obstaculo no mapa, tipo assim:


Pelo que vi do código, seu campo de visão seria um quadrado (meio estranho que o inimigo veja pelas costas mas beleza), nesse caso até dá pra fazer alguma coisa com um scan, percorrendo as coordenadas do mapa sequencialmente partindo do inimigo e parando quando atingir um obstáculo. Seria mais simples, mas talvez o efeito final deixe um pouco a desejar pra áreas maiores.

De toda forma, sugiro procurar algum script pra isso ou achar alguém que possa fazer pra você. Eventos não foram feitos pra fazer sistemas, só eventos.

Ok, eu posso usar esse script para uso comercial? Se n puder nem vai rolar...

Citação de: Crixus online 02/08/2020 às 18:28
Na verdade isso não é um BUG, já que é um calculo de coordenadas, acredito que seja exatamente o mesmo idealizado pelo D-Guy no jogo Chimera Report (Rm2k em meados de 2001~2003), no jogo as paredes eram mais espessas, garantindo que a visão nunca alcançasse o jogador, mas provavelmente você pegou desta tutorial:
https://forums.rpgmakerweb.com/index.php?threads/proximity-distance-check.79791/

Para criar isso por evento seria mais pratico com ID de terreno, mas demandaria muitas gamibarras e com certeza ai sim seria um BUG, o ideal é usar esse Script do Masked/BRANDT.

Sei q é um erro de calculo e n um bug, eu precisaria salvar de alguma forma as coordenadas ou i ID das paredes e com isso fazer com q o raio X ou Y fosse interrompido com a parede, agr como eu faço isso? Eu n sei...




Dei uma olhada no script e ele é um bom, funciona bem...
Mas faz com q computadores fracos fiquem com muito lag e eu n estou querendo isso, já estou usando o script do Khas q já é bem pesado por si só, se eu adcionar mais esse que tbm é pesado vai parecer super escroto, vão pensar "um jogo 2D pesado pra caramba..." E vão ignorar meu jogo e não irão comprar ele... Quero q meu jogo seja inovador na inteligencia artificial! Quero algo q ninguém viu até hj! Algo leve e eficaz!
Eu só sou um cara que quer criar jogos épicos!

03/08/2020 às 01:44 #4 Última edição: 03/08/2020 às 02:46 por Crixus
Olha, eu não disse que é um erro de calculo, ele funciona perfeitamente, porém como eu disse, as paredes tem que ser mais espessas, não tem como uma formula matemática simples interpretar o que é ou o que não é parede.
Tem que ser feito assim como no jogo Chimera Report, eu disse antes.

Vamos ao seu caso, se o inimigo não pode ver o jogador à 6 tiles de distancia a parede deve ter 6x6, como no exemplo abaixo:

(https://i54.servimg.com/u/f54/20/24/47/85/distan10.png)

Espero que isso resolva, ainda sim discordo da maneira que você usa o sistema, se for interessar abra o Spoiler se tiver mais que 2 inimigos no mapa com certeza acontecerá LAGs.

Spoiler
Você tem que fazer o calculo acontecer uma única vez em ciclos entre 300 (0,3 Segundos) à 500 milissegundos em um evento a parte dos NPCs inimigos, por exemplo um evento fora da visão do mapa, assim pode desativar ele por Switch:
Variável [X Local PL] Jogador X-Mapa
Variável [Y Local PL] Jogador Y-Mapa
Variável [X Local EVT] Inimigo A X-Mapa
Variável [Y Local EVT] Inimigo A Y-Mapa
Fazer cálculos
IFs o evento esteja a igual/menos de 6 veja o jogador:
- Ativar Switch do Inimigo A que vai para uma página que ele segue e muda a velocidade
IFs o evento esteja a mais de 6 veja o jogador:
- Desativar Switch do Inimigo A.
Esperar 400ms
Variável [X Local PL] Jogador X-Mapa
Variável [Y Local PL] Jogador Y-Mapa
Variável [X Local EVT] Inimigo B X-Mapa
Variável [Y Local EVT] Inimigo B Y-Mapa
Fazer cálculos
IFs o evento esteja a igual/menos de 6 veja o jogador:
- Ativar Switch do Inimigo B que vai para uma página que ele segue e muda a velocidade
IFs o evento esteja a mais de 6 veja o jogador:
- Desativar Switch do Inimigo B.
Esperar 400ms
Variável [X Local PL] Jogador X-Mapa
Variável [Y Local PL] Jogador Y-Mapa
Variável [X Local EVT] Inimigo C X-Mapa
Variável [Y Local EVT] Inimigo C Y-Mapa
Fazer cálculos
IFs o evento esteja a igual/menos de 6 veja o jogador:
- Ativar Switch do Inimigo C que vai para uma página que ele segue e muda a velocidade
IFs o evento esteja a mais de 6 veja o jogador:
- Desativar Switch do Inimigo C.
Esperar 400ms
Variável [X Local PL] Jogador X-Mapa
Variável [Y Local PL] Jogador Y-Mapa
Variável [X Local EVT] Inimigo D X-Mapa
Variável [Y Local EVT] Inimigo D Y-Mapa
Fazer cálculos
IFs o evento esteja a igual/menos de 6 veja o jogador:
- Ativar Switch do Inimigo D que vai para uma página que ele segue e muda a velocidade
IFs o evento esteja a mais de 6 veja o jogador:
- Desativar Switch do Inimigo D.
Esperar 400ms
Variável [X Local PL] Jogador X-Mapa
Variável [Y Local PL] Jogador Y-Mapa
Variável [X Local EVT] Inimigo E X-Mapa
Variável [Y Local EVT] Inimigo E Y-Mapa
Fazer cálculos
IFs o evento esteja a igual/menos de 6 veja o jogador:
- Ativar Switch do Inimigo E que vai para uma página que ele segue e muda a velocidade
IFs o evento esteja a mais de 6 veja o jogador:
- Desativar Switch do Inimigo E.
Esperar 400ms


Por experiência própria, faça no máximo 5 inimigos no mesmo mapa. Eu tenho um notebook da positivo que uso apenas para atender clientes e fiz uns testes com Rpg Maker (De diferentes versões) e pra evitar LAGs tem que saber bem gerenciar/economizar os comandos de eventos.
[close]

Apesar de considerar que você ainda deve usar o Script, LAG vai dar em ambas situações, o VX e o ACE são LAG na raiz do sistema, acontece sem Scripts adicionais pra qualquer máquina com 2GB de RAM e processador mais obsoleto que ainda é muito vendido no mercado como "Para uso doméstico".

Se for questão comercial aí só lendo a licença (link no tópico).

Citação de: Crixus online 03/08/2020 às 01:44
Olha, eu não disse que é um erro de calculo, ele funciona perfeitamente, porém como eu disse, as paredes tem que ser mais espessas, não tem como uma formula matemática simples interpretar o que é ou o que não é parede.
Tem que ser feito assim como no jogo Chimera Report, eu disse antes.

Vamos ao seu caso, se o inimigo não pode ver o jogador à 6 tiles de distancia a parede deve ter 6x6, como no exemplo abaixo:

(https://i54.servimg.com/u/f54/20/24/47/85/distan10.png)

Espero que isso resolva, ainda sim discordo da maneira que você usa o sistema, se for interessar abra o Spoiler se tiver mais que 2 inimigos no mapa com certeza acontecerá LAGs.

Spoiler
Você tem que fazer o calculo acontecer uma única vez em ciclos entre 300 (0,3 Segundos) à 500 milissegundos em um evento a parte dos NPCs inimigos, por exemplo um evento fora da visão do mapa, assim pode desativar ele por Switch:
Variável [X Local PL] Jogador X-Mapa
Variável [Y Local PL] Jogador Y-Mapa
Variável [X Local EVT] Inimigo A X-Mapa
Variável [Y Local EVT] Inimigo A Y-Mapa
Fazer cálculos
IFs o evento esteja a igual/menos de 6 veja o jogador:
- Ativar Switch do Inimigo A que vai para uma página que ele segue e muda a velocidade
IFs o evento esteja a mais de 6 veja o jogador:
- Desativar Switch do Inimigo A.
Esperar 400ms
Variável [X Local PL] Jogador X-Mapa
Variável [Y Local PL] Jogador Y-Mapa
Variável [X Local EVT] Inimigo B X-Mapa
Variável [Y Local EVT] Inimigo B Y-Mapa
Fazer cálculos
IFs o evento esteja a igual/menos de 6 veja o jogador:
- Ativar Switch do Inimigo B que vai para uma página que ele segue e muda a velocidade
IFs o evento esteja a mais de 6 veja o jogador:
- Desativar Switch do Inimigo B.
Esperar 400ms
Variável [X Local PL] Jogador X-Mapa
Variável [Y Local PL] Jogador Y-Mapa
Variável [X Local EVT] Inimigo C X-Mapa
Variável [Y Local EVT] Inimigo C Y-Mapa
Fazer cálculos
IFs o evento esteja a igual/menos de 6 veja o jogador:
- Ativar Switch do Inimigo C que vai para uma página que ele segue e muda a velocidade
IFs o evento esteja a mais de 6 veja o jogador:
- Desativar Switch do Inimigo C.
Esperar 400ms
Variável [X Local PL] Jogador X-Mapa
Variável [Y Local PL] Jogador Y-Mapa
Variável [X Local EVT] Inimigo D X-Mapa
Variável [Y Local EVT] Inimigo D Y-Mapa
Fazer cálculos
IFs o evento esteja a igual/menos de 6 veja o jogador:
- Ativar Switch do Inimigo D que vai para uma página que ele segue e muda a velocidade
IFs o evento esteja a mais de 6 veja o jogador:
- Desativar Switch do Inimigo D.
Esperar 400ms
Variável [X Local PL] Jogador X-Mapa
Variável [Y Local PL] Jogador Y-Mapa
Variável [X Local EVT] Inimigo E X-Mapa
Variável [Y Local EVT] Inimigo E Y-Mapa
Fazer cálculos
IFs o evento esteja a igual/menos de 6 veja o jogador:
- Ativar Switch do Inimigo E que vai para uma página que ele segue e muda a velocidade
IFs o evento esteja a mais de 6 veja o jogador:
- Desativar Switch do Inimigo E.
Esperar 400ms


Por experiência própria, faça no máximo 5 inimigos no mesmo mapa. Eu tenho um notebook da positivo que uso apenas para atender clientes e fiz uns testes com Rpg Maker (De diferentes versões) e pra evitar LAGs tem que saber bem gerenciar/economizar os comandos de eventos.
[close]

Apesar de considerar que você ainda deve usar o Script, LAG vai dar em ambas situações, o VX e o ACE são LAG na raiz do sistema, acontece sem Scripts adicionais pra qualquer máquina com 2GB de RAM e processador mais obsoleto que ainda é muito vendido no mercado como "Para uso doméstico".

Se for questão comercial aí só lendo a licença (link no tópico).

Então eu tenho 3 escolhas:

1°: Usar o script mas dar todos os creditos ao dono (mesmo ele tendo feito só 2% de todo o projeto)  :fliptable:

2°: Fazer com q o mapa fique mais "gordo" oq é algo q eu não gosto, é como botar o problema de baixo do tapete e fingir q nada de errado ta acontecendo...  :hm:

3°: Crio meu próprio Script para resolver meu problema  :._.:

...
Spoiler
Uni duni te...  :lol:
[close]
Eu só sou um cara que quer criar jogos épicos!


  • Isso é o mínimo. Citar as pessoas que te ajudaram não é um peso, independentemente se elas criaram um sistema que você está usando ou consertaram um pixel errado em alguma imagem.
  • Mapa maior = Mais coisa pra processar, mais lag.
  • Havia escrito todo um texto sobre o problema, mas já que a opção está aberta, apaguei tudo e deixo apenas o seguinte comentário: Leve, eficaz e inteligência artificial na mesma frase complica. Principalmente com RPG Maker. Acho até que dá pra otimizar estes sistemas. Talvez usando o RGD para criar uma camada extra onde os sensores serão gerados, ignorando os tiles em si. O "efeito" de visão dele me parece bem apropriado. Boa sorte.

Bem, eu to trabalhando nesse projeto a 1 mês, ent acho q eu posso ficar + uns dias olhando como faz esse código...
Eu só sou um cara que quer criar jogos épicos!

CitarOk, eu posso usar esse script para uso comercial? Se n puder nem vai rolar...

Sim, leia o tópico, lá tem os termos de uso (licença).

CitarDei uma olhada no script e ele é um bom, funciona bem...
Mas faz com q computadores fracos fiquem com muito lag e eu n estou querendo isso, já estou usando o script do Khas q já é bem pesado por si só, se eu adcionar mais esse que tbm é pesado vai parecer super escroto, vão pensar "um jogo 2D pesado pra caramba..." E vão ignorar meu jogo e não irão comprar ele... Quero q meu jogo seja inovador na inteligencia artificial! Quero algo q ninguém viu até hj! Algo leve e eficaz!

O script não foi feito pra ser usado, propriamente. Eu fiz mais pra aprender como fazia mesmo, há alguns anos atrás, e não tinha experiência suficiente pra otimizar muito o código. Por isso mesmo não sugeri que você usasse o script, só visse como funciona e talvez procurasse alguém pra fazer um mais performático pra você.
Agora, "inovador na inteligência artificial, leve e eficaz" parece bem longe de algo que você vá conseguir fazer usando eventos, o RTP e presumo que nenhum conhecimento de programação. Se é mesmo seu objetivo, sugiro estudar bastante antes.

Aliás, você comentou três vezes uma seguida da outra, evite fazer isso sem necessidade por favor, você podia muito bem ter respondido tudo num comentário só e editado ele depois.

CitarEntão eu tenho 3 escolhas:

1°: Usar o script mas dar todos os creditos ao dono (mesmo ele tendo feito só 2% de todo o projeto)  :fliptable:

2°: Fazer com q o mapa fique mais "gordo" oq é algo q eu não gosto, é como botar o problema de baixo do tapete e fingir q nada de errado ta acontecendo...  :hm:

3°: Crio meu próprio Script para resolver meu problema  :._.:

1. Sugiro ler de novo os termos de uso, acho que você não entendeu.
2. Honestamente, concordo.
3. Bom, é isso que as pessoas inovadoras em inteligência artificial fazem.

E você esqueceu a quarta opção, que é arranjar alguém que saiba fazer o script de um jeito melhor pra você. Se você pretende fazer algo inovador, não vai chegar muito longe sem aprender a programar ou ter um programador na equipe. Todo mundo conhece os sistemas padrão do RPG Maker, e a esse ponto a maioria dos scripts já virou clichê também.

Dito isso, aqui tem uma solução mais eficiente pro problema do que a que eu fiz, se quiser: https://gamedev.stackexchange.com/questions/47576/more-efficient-way-to-implement-line-of-sight-on-a-2d-grid-with-ray-casting
Mais alguns recursos:

https://legends2k.github.io/2d-fov/design.html
https://www.gamedev.net/forums/topic/623320-efficient-line-of-sight-algorithm/

Boa sorte.
~ Masked

03/08/2020 às 09:17 #9 Última edição: 03/08/2020 às 11:13 por Felpisio
Citação de: Brandt online 03/08/2020 às 08:25
Sim, leia o tópico, lá tem os termos de uso (licença).

O script não foi feito pra ser usado, propriamente. Eu fiz mais pra aprender como fazia mesmo, há alguns anos atrás, e não tinha experiência suficiente pra otimizar muito o código. Por isso mesmo não sugeri que você usasse o script, só visse como funciona e talvez procurasse alguém pra fazer um mais performático pra você.
Agora, "inovador na inteligência artificial, leve e eficaz" parece bem longe de algo que você vá conseguir fazer usando eventos, o RTP e presumo que nenhum conhecimento de programação. Se é mesmo seu objetivo, sugiro estudar bastante antes.

Aliás, você comentou três vezes uma seguida da outra, evite fazer isso sem necessidade por favor, você podia muito bem ter respondido tudo num comentário só e editado ele depois.

1. Sugiro ler de novo os termos de uso, acho que você não entendeu.
2. Honestamente, concordo.
3. Bom, é isso que as pessoas inovadoras em inteligência artificial fazem.

E você esqueceu a quarta opção, que é arranjar alguém que saiba fazer o script de um jeito melhor pra você. Se você pretende fazer algo inovador, não vai chegar muito longe sem aprender a programar ou ter um programador na equipe. Todo mundo conhece os sistemas padrão do RPG Maker, e a esse ponto a maioria dos scripts já virou clichê também.

Dito isso, aqui tem uma solução mais eficiente pro problema do que a que eu fiz, se quiser: https://gamedev.stackexchange.com/questions/47576/more-efficient-way-to-implement-line-of-sight-on-a-2d-grid-with-ray-casting
Mais alguns recursos:

https://legends2k.github.io/2d-fov/design.html
https://www.gamedev.net/forums/topic/623320-efficient-line-of-sight-algorithm/

Boa sorte.

Ok, acho que entendi...
Isso me deu uma ideia do q posso fazer...
Gostaria de conversar com vc um pouco, pensei em coisas que seu script pode fazer que pode ajudar a revolucionar alguns jogos em 2D...
Eu só sou um cara que quer criar jogos épicos!

03/08/2020 às 23:09 #10 Última edição: 03/08/2020 às 23:44 por Crixus
Citação de: Felpisio online 03/08/2020 às 07:42
Então eu tenho 3 escolhas:

1°: Usar o script mas dar todos os créditos ao dono (mesmo ele tendo feito só 2% de todo o projeto)  :fliptable:

2°: Fazer com q o mapa fique mais "gordo" oq é algo q eu não gosto, é como botar o problema de baixo do tapete e fingir q nada de errado ta acontecendo...  :hm:

3°: Crio meu próprio Script para resolver meu problema  :._.:

1 - Imagino que você usou RTP, pode tirar mais porcentagem aí, usou um Script de ABS, mais um pouco. Em todo lugar que usar o Script será mais porcentagem... Assim como eu que usei uma única DLL pra poder ter um sistema de ScreenShot no jogo que realmente salvasse a imagem pro SAVE ter foto, a DLL não pesa quase nada em relação ao meu projeto, mas o fato dela existir abriu varias portas, poderia ser uma única linha, uma única fórmula matemática que ainda sim merece todo crédito e agradecimento.

2 - Se você vai fazer mapas com base do que vemos em trocentos jogos criados com o RmVX/ACE lamento te informar amigo, mas aí é questão de experiência, tente "inovar" na questão MAPEAR e aí sim você poderá aproveitar o sistema independente de ser por Script ou Eventos. Veja os jogos baseados em Metal Gear que usam/simulam sistema "Stealth" (Furtivo):
https://metallicrear.itch.io/metallic-rear/devlog/92119/welcome-to-stealth-parody-gaming
https://golden-box-studios.itch.io/metal-gear-the-stranded-man

3 - Isso vai tomar tempo que você poderia estar usando para outros problemas de produção do seu jogo. Isso provavelmente já foi criado, imagino que um destes seja mais o que você procura:
https://forums.rpgmakerweb.com/index.php?threads/stealth-system.3336/
http://rmrk.net/index.php?topic=48099.0




Citação de: Corvo online 03/08/2020 às 07:46

  • Isso é o mínimo. Citar as pessoas que te ajudaram não é um peso, independentemente se elas criaram um sistema que você está usando ou consertaram um pixel errado em alguma imagem.
  • Mapa maior = Mais coisa pra processar, mais lag.
  • Havia escrito todo um texto sobre o problema, mas já que a opção está aberta, apaguei tudo e deixo apenas o seguinte comentário: Leve, eficaz e inteligência artificial na mesma frase complica. Principalmente com RPG Maker. Acho até que dá pra otimizar estes sistemas. Talvez usando o RGD para criar uma camada extra onde os sensores serão gerados, ignorando os tiles em si. O "efeito" de visão dele me parece bem apropriado. Boa sorte.
Eita...
1 - Sim, afinal, não só por obrigação mas por gratidão, assim como eu sempre cito o D-Guy criador do Chimera Report. Foi por causa do jogo dele que percebi que o Rm2k não era limitado apenas ao que se via na engine e sim que se podia simular sistemas diferentes, como ABS, Menus, efeitos com pictures pra criar filminhos. Isso em 2004 quando eu consegui o Rm2k/Rm2k3 pelo cd da digerati (Peguei emprestado, eu não tinha dinheiro).
2 - Exatamente, independente do uso de Scripts, imagine se for necessário renderizar um mapa enorme, assim como acontece com o MODE 7 (Eu usava uma máquina com 256Mb de RAM, sofria).
3 - Aquela classe Geometry parece ser bem o necessário pra resolver o problema, mas ainda estou testando.




Citação de: Felpisio online 03/08/2020 às 09:17Gostaria de conversar com vc um pouco, pensei em coisas que seu script pode fazer que pode ajudar a revolucionar alguns jogos em 2D...
Muitos jogos 2D já tem sistema de inteligencia artificial, você quis dizer jogos 2D de Rpg Maker?

04/08/2020 às 09:23 #11 Última edição: 04/08/2020 às 10:58 por Felpisio
Citação de: Crixus online 03/08/2020 às 23:09
1 - Imagino que você usou RTP, pode tirar mais porcentagem aí, usou um Script de ABS, mais um pouco. Em todo lugar que usar o Script será mais porcentagem... Assim como eu que usei uma única DLL pra poder ter um sistema de ScreenShot no jogo que realmente salvasse a imagem pro SAVE ter foto, a DLL não pesa quase nada em relação ao meu projeto, mas o fato dela existir abriu varias portas, poderia ser uma única linha, uma única fórmula matemática que ainda sim merece todo crédito e agradecimento.

2 - Se você vai fazer mapas com base do que vemos em trocentos jogos criados com o RmVX/ACE lamento te informar amigo, mas aí é questão de experiência, tente "inovar" na questão MAPEAR e aí sim você poderá aproveitar o sistema independente de ser por Script ou Eventos. Veja os jogos baseados em Metal Gear que usam/simulam sistema "Stealth" (Furtivo):
https://metallicrear.itch.io/metallic-rear/devlog/92119/welcome-to-stealth-parody-gaming
https://golden-box-studios.itch.io/metal-gear-the-stranded-man

3 - Isso vai tomar tempo que você poderia estar usando para outros problemas de produção do seu jogo. Isso provavelmente já foi criado, imagino que um destes seja mais o que você procura:
https://forums.rpgmakerweb.com/index.php?threads/stealth-system.3336/
http://rmrk.net/index.php?topic=48099.0



Eita...
1 - Sim, afinal, não só por obrigação mas por gratidão, assim como eu sempre cito o D-Guy criador do Chimera Report. Foi por causa do jogo dele que percebi que o Rm2k não era limitado apenas ao que se via na engine e sim que se podia simular sistemas diferentes, como ABS, Menus, efeitos com pictures pra criar filminhos. Isso em 2004 quando eu consegui o Rm2k/Rm2k3 pelo cd da digerati (Peguei emprestado, eu não tinha dinheiro).
2 - Exatamente, independente do uso de Scripts, imagine se for necessário renderizar um mapa enorme, assim como acontece com o MODE 7 (Eu usava uma máquina com 256Mb de RAM, sofria).
3 - Aquela classe Geometry parece ser bem o necessário pra resolver o problema, mas ainda estou testando.



Muitos jogos 2D já tem sistema de inteligencia artificial, você quis dizer jogos 2D de Rpg Maker?

Sim meu caro, muitos usam o sistema de campo de visão pra jogos stealth, mas no meu caso eu misturei o stealth com perseguição, fazendo um sistema de "perseguição avançado" e isso sim n foi tão usado no mercado do RPG Maker! (no caso, pra jogos de survival horror em RPG Maker)
Sim, podemos usar o sistema stealth em jogos de terror, mas podemos trazer a agonia ao jogador! Imagina:
Vc esta jogando um jogo de terror, vc ta no escuro com o sistema de luz realista, ou seja, vc n consegue ver oq tem atras da outra parede, vc nesse ambiente escuro passa por algumas salas, até q do nada a tela fica vermelha e vc ouve um grito vindo em sua direção, vc n sabe para onde correr, mas vc corre, cego pela escuridão, sem saber oq esta te perseguindo, vc só corre até achar um armário, vc entra no armário, e escuta aquele maldito som chegar perto, até ver aquela coisa q vc n sabe oq é, te procurando...
Me fala um jogo de terror em RPG Maker q faz algo assim...
Eu só sou um cara que quer criar jogos épicos!

04/08/2020 às 10:09 #12 Última edição: 04/08/2020 às 10:26 por Crixus
Não precisa usar o CITAR pra responder uma mensagem acima da sua, além do mais ao que parece você só respondeu uma parte de tudo que eu escrevi.

Mas os jogos com sistemas Stealth já tem perseguição por padrão, então ficou meio redundante, poderia explicar melhor?

Observação: Eu me recordo de alguns jogos (Rpg Maker sem Scripts) que usavam desse tipo de sistema e quando um dos inimigos percebiam o jogador avisa os outros próximos, mas acredito que o jogo era alemão/austríaco, por isso não consegui avançar muito devido algum puzzle, infelizmente não me recordo o título.

Aqui está o The Chimera Report (Rpg Maker 2000):
https://youtu.be/YMfuc8mUqjU

Paredes com tamanho mais realista, sistema de perseguição, somente a batalha que depende de menu, isso foi feito em 2002, ou seja, foi antes do que eu imaginei.

Jogos de Survive Horror variam o estilo de Stealth, mas são muito pequenas as diferenças.

Algum jogo de RPG Maker já usou isso pra jogos de terror?
Eu só sou um cara que quer criar jogos épicos!

04/08/2020 às 19:14 #14 Última edição: 04/08/2020 às 22:46 por Crixus
O que estava em alemão era de terror, mas lembrava mais Silent Hill do que R.E., era algo com vários eventos de mapa, seria algo que provavelmente causaria mais lags no VX, não sei por que no Rm2k não causa tanto.

Edit:
Eu não lembro realmente o método usado ou se fui eu tentando replicar por que não conseguia entender o algoritmo do D-Guy, mas lembro que foi assim que eu fiz, mas com ID de terreno.

Segue em Spoiler como funciona:

Spoiler
Sendo o botão vermelho a área que o inimigo não vê e a área verde a visivel se o jogador tocar (Bellow Characters/Abaixo do jogador para dar impressão de ser área do sensor).
|||

Ao invés do campo de visão ser do jogador como eu fiz no meu jogo, mas na questão da parede eu tive que fazer o contrário por questão de rapidez pra efetuar os testes de colisão.
Eu sei fazer um calculo com coordenadas, mas iria ficar um evento enorme e eu teria que cria pra cada um do próprio monstro/inimigo.
[close]

Bem, fico por aqui, acho que já estou sendo inconveniente, boa sorte, tente ver os links que eu passei nas mensagens anteriores...