Página 1 de 1

Maquinas de estados ou Instance Change ?

Enviado: Seg Dez 03, 2018 4:10 pm
por jonnyall
Boa tarde pessoal, em certos jogos te rpg temos buffers q causam alguns estados, ficar congelado, petrificado, stunado ou virar um animal, coisas que sempre mudam drasticamente o jeito que seu personagem se move e em consequência sua lógica de programação.

Partindo Agora pra engine game maker, onde é possível mudar uma instância em tempo de execução, parece muito mais fácil fazer um objeto pra cada estado e muda-la para ele quando o personagem sofre algum efeito do que usar uma variável de estados. A minha duvida é o seguinte, afeta muito o desempenho do jogo se eu trocar o tipo de uma instância  muitas vezes ?

Re: Maquinas de estados ou Instance Change ?

Enviado: Seg Dez 03, 2018 4:32 pm
por All-x
É um questionamento interessante até. Lembro que na primeira semana com o Game Maker, ao invés de ter um player eu tinha 4, um pra cada direção.

Em questão de desempenho não vai mudar praticamente nada em vista do que temos hoje. Você mesmo pode usar o profiling e checar isso.

Só tem que ter o máximo de cuidado com recursos dinâmicos criados dentro desses objetos (Sprites, Backgrounds, surfaces, particulas, listas, grades e etc). Ex: você criou uma surface dentro desse objeto, e fez a troca DE OBJETO sem deletá-la da memória, em pouco tempo você terá aumento significativo no gasto de memória RAM, pois estará sempre recriando este objeto. Então antes da troca, sempre delete recursos criados principalmente com variáveis locais e faça uma verificação de existência caso usar variáveis globais.

Vai da sua comodidade e principalmente organização.

FLWS!

Re: Maquinas de estados ou Instance Change ?

Enviado: Qui Dez 06, 2018 2:53 pm
por AdrianoPpaula
E ai jonnyall blz ^^
Rapaz eu gosto muito da ideia de usar switch com estado em objetos.
Esse vídeo explica mais sobre isso
https://youtu.be/DYkJ91eg67Y

Mas basicamente é algo assim uma variável estado="normal"

switch ( estado) {

case: "envenenado":
hp - 5
break;

case: "cagado":
cheiro_fedendo
break

}

Com o switch vc pode determinar de maneira fácil estados gerais e de acordo com eles fazer o que quiser.

Eu também no começo eu criava um montão de personagem com situações diferente e no caso não perde muito em processamento do jogo se vc souber fazer direitinho....o problema em fazer vários objetos pra mim é a questão de gerenciamento mesmo pois se de algum erro sera mais difícil gerenciar um monte de objeto assim!

Pesquisa mais sobre sistema de state e switch isso tem me ajudado muitoooo mesmo ^^