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

Duvidas sobre lag

Iniciado por Rhit, 03/11/2015 às 14:22

03/11/2015 às 14:22 Última edição: 17/11/2015 às 09:24 por Skyloftian
Olá amigos, já agradeço por reservarem um tempo para ler o tópico.

Tenho uma dúvida, que preciso sanar antes de iniciar a programação de um sistema por eventos, que irá ficar bem extenso.
O que gera mais lag?

Dois eventos comuns, em processo paralelo com 200 condições , ou esse mesmo evento divido entre outros 6 ou 8 eventos comuns também, todos em paralelo?

E também no mapa, um evento em paralelo bem extenso gera menos ou mais lag que esse mesmo evento dividido? Ou ficaria na mesma?

Não entendo como é gerado o lag no Ace, se seriam pelas condições, pelo tamanho do evento ou pelo numero de eventos no mapa, se puderem me explicar um pouco sobre o assunto ficaria muito grato.

Muitas variáveis calculando ao mesmo tempo também afetam o desempenho?

Desde já agradeço, um grande abraço a todos!

Poxa mano eu também tenho problemas assim, e no meu caso, eu sempre acho que o lag gerado é pela quantidade de eventos no mapa e não pela quantidade de eventos acontecendo ao mesmo, até porque eu costumo criar menus onde o evento só é ativado ao tocar herói e mesmo assim tem sempre um lagzin chato.
Enfim, eu creio que o lag no Ace venha "pelo numero de eventos no mapa" mas acredito que um evento com 200 condições seja igual do que 200 eventos com uma condição cada.

Eu recomendo que tente deixar tudo em um só e tentar reduzir ao maximo o numero de eventos no mesmo mapa.
E outra coisa, as vezes um evento comum causa mais lag do que o evento no mapa, ou seja, seria bom você testar esses eventos diretamente no mapa. Só pra vê :ok:

Essa é uma dúvida que eu sempre tive tbm XD

(Mais eventos com vários comandos separado ou Poucos eventos mas muitos comandos)

Acho que dos dois modos dá lag .-.
Se for seguir a lógica de vários eventos, ele estará interpretando vários comandos ao mesmo tempo o que pode causar lag.
Agora um eventos cheio de condições, deve dar lag pra verificar todas.

Acho que o bom mesmo é minimizar ao máximo essas condições, e usar bugfixes encontrados na net para tentar melhorar a perfomance nem que seja em 1%.
  

Pelo que entendo da forma como o VX Ace roda, o mais provável é que extensão do evento não faça muito diferença, mas quantidade de eventos, especialmente ativos ao mesmo tempo (Parallel Process sendo executados), faça.

10/11/2015 às 12:39 #4 Última edição: 10/11/2015 às 12:48 por Magic D
Cara, não sei se isso pode te ajudar, mas eu aprendi a usar variáveis em algumas condições ao invés de Switchs.. 
Deixa eu tentar explicar. :será:

Eu criei um menu com oito eventos a baixo do herói (com o comando "Ao tocar evento"), cada evento, representava um item e dentro de cada evento tinha uma Switch ex: Switch Item 1 On e outras sete Switchs para desativar as demais. Por exemplo, no evento de Item 1, era mais ou menos assim:
Switch Item 1 On
Switch Item 2 Off
Item 3 off
Item 4...
E no evento do Item dois era assim:
Switch Item 1 Off
Switch Item 2 On
Item 3 off
Item 4...

Essas Switch serviam para ativar as condições que estavam em um outro evento gigantesco (Em processo paralelo) que era mais ou menos assim:

Condição de Switch Item 1 On
Acontecia tal coisa
Condição de Switch Item 2 On
Acontecia tal coisa
etc...

Acredito que por conta de ter que ativar uma switch e desativar todas as outras para que o menu funcionasse, um lag muito escroto acontecia, além do bug, as vezes não desativava a switch 10 quando eu tocava no evento 1, porque tinha que desativar antes as outras 9 (por exemplo)

Então resolvi trocar essas Switchs por apenas uma variavel.
Variavel Itens =1 no evento de item 1
Variavel itens = a 2 no evento de item 2 e assim por diante
e as condições no outro evento em processo paralelo ficaram assim
Condição variavel Itens =1
Item um ativado
Condição de variavel Itens =2
...

Não digo que tenha retirado 100% do lag do menu, mas já minimizou bastante.
Também não sei se deu para entender :O_O:
Espero que sim :ok:

Opa!
Muito obrigado a todos pelas dicas, pensei que o tópico tinha sio esquecido, mas vocês acharam ele aqui  :lol:
Parece que essa questão não é tanto debatida, é não é de se entranhar, pois que eu saiba, o Rpgmaker não deu uma explicação de como o lag pode ser gerado na engine né?


Fiz alguns testes aqui hoje, coisas meio genéricas, mas vou postar aqui as pequenas conclusões:

Como @Magic disse, ativar e desativar muitas switches no mesmo tempo pode fazer com que o Ace acabe ignorando algumas e pulando pra próxima etapa do evento, com elas ativadas/desativadas, com muitas variáveis acaba acontecendo o mesmo, mas parece que o Ace calcula com mais velocidade variáveis do que switches e é necessário você colocar frames de espera pra que ele possa "respirar".

Pelo que pude notar, um único evento no mapa em paralelo, com várias condições acaba não causando tanto lag quanto o mesmo evento dividido em outros três, o problema aparece noque disse acima, o Ace acaba pulando algumas etapas de verificação e começa a brotar uns bugs, que dependo da programação do evento ferra geral depois :(




Estou atualmente "tentando" criar um sistema com a mesma promessa que games como Minecraft e Terraria, para geração aleatória de mundos.

O mapa se "cria" na primeira vez que o jogador entra no mesmo, os evento se movimentam do mapa sendo geridos através de um paralelo, e através de outro são executadas as verificações de que evento está do lado dele e qual região está, exemplo: (Lado esquerdo rocha, direito árvore, abaixo nada, acima nada. Região 3 Floresta. Transformar em uma árvore)(Acho que deu pra ter uma noção :derp:)Um terceiro paralelo faz uma varridinha no mapa pra ver se tem algum bug (Esse é inutil, porque se tem bug ele nem fica sabendo, falta programar muito essas melecas aqui) E depois os eventos se apagam para não causar lag.

O problema surge quando o ace "pula" algumas verificações, por motivos de "ele quer", ai coisas lindas como florestas inteiras sobre o mar aparecem ...




Uma dúvida que ainda tenho, que já fica para os mais inteligentes daqui, é que uma vez li, não lembro bem se não me engano foi a alguns anos em um game que o Cronus lançou pra um evento, em que foi debatido um "deposito de lixo" do Ace, que ele não apagava os eventos na verdade, e que isso acabava gerando um lag tremendo depois de muitos eventos "apagados". E isso vai ferrar com meus sistema inteiro se for verdade. Não sei como funciona caso alguem que saiba explicar estou na necessidade :D

No mais, um grande abraço a todos os que responderam, me ajudaram muita a sanar algumas das minhas dúvidas seus lindos.
Um grande abraço!


Cara, eu achei um anti-lag do raizen, parece ser bom, não sei se ajuda nessa questão:
http://centrorpg.com/index.php?topic=2291.0
Assim que der vou testar no meu projeto!


Opa! Brigadão Magic, não estava querendo recorrer aos scripts, mas vejo que não vai ter outra forma :(
Um abraço!