Página 1 de 1

Solucionando dúvidas sobre sistema de save

Enviado: Seg Jan 07, 2019 11:42 pm
por Mysterious Stranger
Boa noite, pessoal.

Estou aqui pra tirar dúvidas q tenho a muito tempo sobre sistema de save/load.
Eu estou fazendo um jogo de tabuleiro que tem uma modalidade de CARREIRA onde o jogador vai evoluir sua coleção de peças até conseguir enfrentar os melhores jogadores desta carreira.

Como podem perceber, o jogo não vai terminar em um dia e preciso criar um arquivo de save para guardar estas informações, mas por mais que eu leia na ajuda do GM sobre ini files eu não entendo nada!
Também não sei se os arquivos ini seriam a melhor solução no meu caso porque além de salvar as coleções de peças do jogador, preciso guardar as coleções dos players IAs da carreira e cada carreira vai ter mais ou menos 200 players.

A extrutura das informações que precisam ser salvas é mais ou menos a seguinte:

CARREIRA
- PERFIL 1
-- JOGADOR
--- COLEÇÃO 1
---- PEÇA 1
---- PEÇA 2
--- COLEÇÃO 2
---- PEÇA 1
---- PEÇA 2
--- COLEÇÃO 3
---- PEÇA 1
---- PEÇA 2
--- DINHEIRO
-- IA 1
--- COLEÇÃO 1
---- PEÇA 1
---- PEÇA 2
--- COLEÇÃO 2
---- PEÇA 1
---- PEÇA 2
--- COLEÇÃO 3
---- PEÇA 1
---- PEÇA 2
--- DINHEIRO
-- IA 2
...
-- CONFIGURAÇÕES GERAIS DE CARREIRA
--- TOTAL DE JOGADORES
--- BANCO DE DADOS DE PEÇA
---- PEÇA 1
---- PEÇA 2
---- PEÇA 3
...

FIM

Outra dúvida sobre os INI files é como eu testo eles sem criar um executável? Quer dizer, como eu acho eles? De onde devo carrega-los?

Se puderem me ajudar vou agradecer muito. Já tenho praticamente toda a parte de código pronta nos esquemas, mas não consigo seguir sem descidir essa parte.

Valeu pessoal!

Re: Solucionando dúvidas sobre sistema de save

Enviado: Ter Jan 08, 2019 12:39 am
por None
Eu creio que a documentação do game Maker é super clara em relação às ini file.

Se você vai passar do limite dele (a documentação fala o tamanho máximo) o ideal é usar json.

Dá para testar ini file apenas por iniciar o jogo (no GM mesmo), fazer alguma alteração e então salvar, depois você fecha e da load, as informações vão estar salvas, não tem muito segredo para ser honesto.

No meu curso na Udemy eu explico como usar, se você quiser posso desbloquear as aulas para você dar uma olhada.

Re: Solucionando dúvidas sobre sistema de save

Enviado: Ter Jan 08, 2019 4:45 pm
por Mysterious Stranger
None escreveu:Eu creio que a documentação do game Maker é super clara em relação às ini file.

Se você vai passar do limite dele (a documentação fala o tamanho máximo) o ideal é usar json.

Dá para testar ini file apenas por iniciar o jogo (no GM mesmo), fazer alguma alteração e então salvar, depois você fecha e da load, as informações vão estar salvas, não tem muito segredo para ser honesto.

No meu curso na Udemy eu explico como usar, se você quiser posso desbloquear as aulas para você dar uma olhada.
Humm... então os ini files são para o projeto aberto e não para o executável já fechado? Eu preciso de um sistema de save/load para o jogo já fechado.
Eu não entendo a estrutura das funções. Por exemplo: ini_write_real(section, key, value). Se as peças tem nomes como "peça 1", "peça 2" e são guardadas em arrays na variável var_peca[ 0 ] = "peça 1", var_peca[ 1 ] = "peça 2"... como eu guardo isso, entende? Eu não peguei a lógica. Mas enfim, se só serve para o projeto aberto, eu preciso usar outra coisa.

Vou ler sobre esses arquivos json.

Re: Solucionando dúvidas sobre sistema de save

Enviado: Ter Jan 08, 2019 6:59 pm
por None
Não, ini files funciona para o projeto pronto também.

Para salvar vetores em ini você pode fazer com um laço de repetição, ou simplesmente converter o array em uma ds_list ou a matriz em uma ds_grid porque o game Maker já tem recursos para salvar eles no ini.

Re: Solucionando dúvidas sobre sistema de save

Enviado: Qua Jan 09, 2019 2:48 pm
por Mysterious Stranger
Ahhh agora comecei a pegar a coisa! Vi uns videos aqui e começou a fazer sentido pra mim. Quando vc diz um laço de repetição é tipo:

Código: Selecionar todos

repeat( n )
{
     variavel_storage[ a ] = ini_write_real("VARIAVEIS", variavel_peça[ a ], "peça 1");
     a += 1;
}
Estou correto?
Eu não conheço essas DS lists então vi uns videos aqui também e tenho a noção que parece bastante com a maneira de recuperar dados do mysql com php como funções tipo mysql_fetch_assoc. Existiria alguma vantagem de usar essas ds lists ao invés do código acima ou seria a mesma coisa?

Re: Solucionando dúvidas sobre sistema de save

Enviado: Qua Jan 09, 2019 7:50 pm
por None
Ele é apenas uma estrutura de dados do game Maker, ds_list = vetor com mais funcionalidades, é mais fácil adicionar valores e coisas do tipo (é uma lista do Java).
ds_grid = matriz com mais funcionalidades.

É mais interessante guardar informações que serão salvas em uma DS porque o sistema de save do game Maker já é ajustado a elas, assim você nem precisa de um laço de repetição para salvar todas informações dentro do ini, apenas um comando.

Re: Solucionando dúvidas sobre sistema de save

Enviado: Qui Jan 10, 2019 10:49 am
por Foxy Of Jungle
Uma boa alternativa é usar ds_map, você pode facilmente adicionar as variáveis e carregá-las depois, e ainda pode salvar o arquivo em um formato que não é possível ler humanamente (pelo que descobri, é que o arquivo é um json codificado com base64 e uma estrutura, tipo index). Usando ds_map_secure_save() e ds_map_secure_load().