arquivos externos - criação e desinstalação

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

arquivos externos - criação e desinstalação

Mensagem por saim em Sex 26 Abr 2013, 11:06

Com a criação das novas seções, fico em dúvida em qual delas postar. Eu postaria num "GMS" geral, mas se tenho que escolher, escolho o iOS, que tem mais a ver com meu objetivo final. Mas as perguntas valem (ou devem valer, não sei) pra android também.

Na maioria dos jogos que eu faço eu uso arquivos externos. Backgrounds e sprites, principalmente, mas também bancos de dados, .inis, entre outros.
Tenho duas três perguntas com relação a eles.

criação
Eu costumo criar sprites via código, pra deixá-los adaptados à tela. Aí, eu uso um código do tipo
Código:
if (!file_exists(working_directory + "\imagens\fulano.png")){ // se não existe o arquivo
// cria a sprite ou BG, com surfaces
sprite_save_strip(fulano,working_directory + "\imagens\fulano.png"); // cria o arquivo
}
else{ // se existe o arquivo
   fulano = sprite_add(working_directory + "\imagens\fulano.png", imgnumb, 0, 0,xorig,yorig); // pega a imagem, diretamente
   }
(ia deixar só um pseudocódigo, mas o endereço das imagens é interessante de manter, caso alguém queira mostrar algum possível problema)
Faço isso pra só criar a sprite na primeira vez que o jogo rodar.
Pergunta 1:
Vale a pena fazer isso ou é melhor criar a imagem toda vez? Ou depende da complexidade do código que cria a imagem?
Pergunta 2: em HTML5, isso vai gravar a sprite em que diretório? De qual computador?

desinstalação
Essa vale pra qualquer tipo de arquivo externo.
Quando eu desinstalo qualquer aplicativo de um iPhone, eu faço ele "tremer" e clico no "x". Não tenho acesso às pastas e sub-pastas do aparelho, simplesmente clico no "x" e acredito que o programa foi desinstalado.
Pergunta 3:
Qualquer arquivo externo ao jogo é desinstalado junto com o jogo? Isso é garantido? Se não, como garantir isso? Como evitar que os resquícios do meu jogo poluam o hardware dos meus jogadores?

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: arquivos externos - criação e desinstalação

Mensagem por LightSpeedy em Sex 26 Abr 2013, 11:58

não entendi nada

LightSpeedy

Ranking : Nota C
Número de Mensagens : 354
Data de inscrição : 24/04/2013
Notas recebidas : C
Reputação : 40
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: arquivos externos - criação e desinstalação

Mensagem por NPH em Sex 26 Abr 2013, 12:36

A única pergunta que posso lhe garantir resposta é a terceira...
Essa aqui!:
desinstalação
Essa vale pra qualquer tipo de arquivo externo.
Quando eu desinstalo qualquer aplicativo de um iPhone, eu faço ele "tremer" e clico no "x". Não tenho acesso às pastas e sub-pastas do aparelho, simplesmente clico no "x" e acredito que o programa foi desinstalado.
Pergunta 3:
Qualquer arquivo externo ao jogo é desinstalado junto com o jogo? Isso é garantido? Se não, como garantir isso? Como evitar que os resquícios do meu jogo poluam o hardware dos meus jogadores?
Nessa questão eu posso lhe garantir:
A desinstalação de arquivos externos é 50% garantida, pois na memória do aparelho, ficam alguns vestígios dos apps desinstalados, como "Pastas", alguns arquivos "não reconhecidos" pelo PC nem pelo Android/iOS e afins.
O que mais dá dor de cabeça são as "milhares" de pastas que ficam.
Se o seu caso é o iOS, procure na "app store" algum app gerenciador de arquivos para ter certeza se ao desinstalar algum app (o seu no caso) não fique vestígios de arquivos e pastas.
Espero ter te ajudado.

NPH

Ranking : Nota B
Número de Mensagens : 452
Idade : 22
Data de inscrição : 28/11/2010
Notas recebidas : B
Reputação : 32
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: arquivos externos - criação e desinstalação

Mensagem por saim em Sex 26 Abr 2013, 14:20

ninja33733 escreveu:não entendi nada
Dando uma simplificada:
1 - Vale a pena criar arquivos externos pra ser reimportados ao iniciar o jogo?
2 - Onde é o "working_directory" quando o jogo roda em html5?
3 - Posso usar arquivos externos sem problemas para o usuário?

Agora releia o primeiro post. Essas perguntas, soltas, não fazem sentido, mas podem ajudar a entender o post.

PHProductions escreveu:A desinstalação de arquivos externos é 50% garantida, pois na memória do aparelho, ficam alguns vestígios dos apps desinstalados, como "Pastas", alguns arquivos "não reconhecidos" pelo PC nem pelo Android/iOS e afins.
O que mais dá dor de cabeça são as "milhares" de pastas que ficam.
Isso responde parte da terceira pergunta
Se o seu caso é o iOS, procure na "app store" algum app gerenciador de arquivos para ter certeza se ao desinstalar algum app (o seu no caso) não fique vestígios de arquivos e pastas.
Talvez uma dll? O que eu quero não é garantir a limpeza do MEU iPhone, mas dos iPhones dos meus jogadores. O que os outros programas fazem é problema deles, mas eu gostaria de assegurar que, ao ser desinstalado, meu jogo não deixasse nenhum resquício. Quero que o sujeito que instalar algum jogo meu não tenha nenhum tipo de problema.
Tem como eu colocar tudo numa pasta que VAI ser deletada ou estabelecer algum tipo de rotina que garanta a limpeza completa do sistema, ao desinstalar o jogo?

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: arquivos externos - criação e desinstalação

Mensagem por Kabeção em Sex 26 Abr 2013, 16:21

Não carregue imagens externamente em um jogo para mobile.
Não importa o que você faça, o modo que o GMS lida com as imagens (sprites e background) dentro do jogo é o mais otimizado e eficiente possível.

O GMS junta tudo em texture pages que é um arquivo com muitas imagens juntas e as imagens são "recortadas" desse arquivo apenas na hora de desenhar o que minimiza bastante o gasto de memoria com pixel desnecessários.
Quando você carrega uma imagem de um arquivo externo ela vira uma potencia de 2, ou seja, uma imagem de 28x25 vai virar 32x32, de 450x190 vai virar 512x256 e etc.
Você só vai fazer o jogo consumir mais memória e além disso cada nova imagem vai valer uma texture page inteira e segundo os desenvolvedores do GMS o iOS tem limite de apenas 12.

Kabeção

Ranking : Sem avaliações
Número de Mensagens : 2314
Data de inscrição : 08/06/2008
Reputação : 100
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 0
   : 1

http://blackcapapps.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: arquivos externos - criação e desinstalação

Mensagem por saim em Sex 26 Abr 2013, 17:04

Eu já li a respeito dessas "texture pages" (coisinha genial, não?) mas tem algumas imagens que ficam melhor se adaptadas à tela (como um mapa de cores que ocupe a tela inteira, por exemplo).
Meh, eu posso criar uma sprite pra cada resolução e soltar uma versão do jogo pra cada.

Mas importar arquivos externos pode ser mandatório num jogo (ou aplicativo). Por exemplo, se eu quiser permitir ao jogador escolher uma foto pra ser a background. Eu ESTOU desenvolvendo um jogo que é personalizado. No caso, é pra uma pessoa apenas, então posso embutir as imagens, mas e se eu conseguir permitir que o usuário escolha quais são elas? Certamente vou precisar de mais que 12. Isso pode ser um problema.

De qualquer forma, e quanto aos .inis, arquivos de texto, etc? Eles somem quando o usuário deleta o aplicativo ou ficam lá, feito fantasmas? Como garantir que sumam?

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: arquivos externos - criação e desinstalação

Mensagem por PedroX em Sex 26 Abr 2013, 18:33

Você precisa fazer com que o jogo reconheça. Talvez criando manualmente um arquivo vazio com o nome igual ao que você vai escrever. Assim, na hora de instalar, ele vai escrever que esse arquivo faz parte do jogo e então irá excluir (isto é, se o iOS trabalhar igual ao MSI).

Ou então delete por conta própria.

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: arquivos externos - criação e desinstalação

Mensagem por Kabeção em Sex 26 Abr 2013, 18:48

Mas saim, no Android tem tantas resoluções diferentes quando aparelhos.
Imagina se os desenvolvedores fossem criar imagens diferentes para cada resolução.

O que costumam fazer é planejar o jogo para diversas resoluções e fazer os graficos na maior definição possível e então alterar o tamanho da view para se adaptar automaticamente e manter o aspect-ratio sem distorção, o que é algo muito fácil de se fazer e sem gastos ou esforços amais.

Mas importar arquivos externos pode ser mandatório num jogo (ou aplicativo). Por exemplo, se eu quiser permitir ao jogador escolher uma foto pra ser a background. Eu ESTOU desenvolvendo um jogo que é personalizado. No caso, é pra uma pessoa apenas, então posso embutir as imagens, mas e se eu conseguir permitir que o usuário escolha quais são elas? Certamente vou precisar de mais que 12. Isso pode ser um problema.
Você não pode mexer nos arquivos que não são do jogo, ou seja, não pode pegar uma imagem do cartão SD ou da memória. De um jeito ou de outro o usuário só poderia selecionar imagens predefinidas e que veem com o jogo.

De qualquer forma, e quanto aos .inis, arquivos de texto, etc? Eles somem quando o usuário deleta o aplicativo ou ficam lá, feito fantasmas? Como garantir que sumam?
Não sei quanto ao iOS mas no Android parece que são deletados quando se apaga.
Parece que os arquivos ficam na mesma pasta da aplicação então tudo é apagado.

Kabeção

Ranking : Sem avaliações
Número de Mensagens : 2314
Data de inscrição : 08/06/2008
Reputação : 100
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 0
   : 1

http://blackcapapps.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: arquivos externos - criação e desinstalação

Mensagem por Markituh em Sex 26 Abr 2013, 19:00

Não sei quanto ao iOS mas no Android parece que são deletados quando se apaga.
Parece que os arquivos ficam na mesma pasta da aplicação então tudo é apagado.
Se não me engano, os dados ficam no SD mas a aplicação em si parece que fica em outra partição, escondida. Há um tempinho atrás deletei 2 apps (que tinham muitos arquivos na pasta) e os dados continuaram no SD. Talvez seja algum bug, erro de I/O, ou simplesmente porque ele não deleta automaticamente (pelo menos no meu Gingerbread)

Mas dando uma leve pesquisada aqui, a informação procede, os dados escritos pela aplicação são removidos quando o app é desinstalado. Não possuo iOS, então não posso dizer com mais clareza.

___________

"Não deixe para amanhã o que se pode fazer hoje"

Links úteis:
Índice de Tutoriais
Manual online do GMS

Markituh

Ranking : Sem avaliações
Número de Mensagens : 2183
Data de inscrição : 11/10/2009
Reputação : 106
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: arquivos externos - criação e desinstalação

Mensagem por Rodrigo Santiago em Sex 26 Abr 2013, 21:55

working_directory - é o diretório do jogo(.exe,.apk,.blablabla)
Mais dentro do ios, pode parar no s.o. ou no sd, numa área específica , nunca testei.

Você pode alterá-lo ao usar algum save, não sei ao certo quando mudo, mais é chato, pq não sei como mudei e nem como voltar.

--Porque você precisa salvar as sprites externamente?
Achei isso um absurdo.
Fazer as TODAS sprites, e carregar novamente uma delas? Praquê? Ela já não vai estar no aplicativo? bounce

Porque você não faz assim:
Cria a sprite no máximo de resolução, depois usa draw e sprite_create_from screen,(pra mais de um frame use add_from_screen), com uma resolução menor. Eu acho que usar views perde muito processamento ao diminuir as imagens, dependendo do jogo pode nem rodar de tão lento. Basketball Pelo menos acho.

Rodrigo Santiago

Ranking : Nota B
Número de Mensagens : 1281
Idade : 20
Data de inscrição : 28/07/2012
Notas recebidas : C + C + B
Reputação : 73
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 1
   : 3

Voltar ao Topo Ir em baixo

Re: arquivos externos - criação e desinstalação

Mensagem por saim em Seg 29 Abr 2013, 09:51

PedroX escreveu:Você precisa fazer com que o jogo reconheça. Talvez criando manualmente um arquivo vazio com o nome igual ao que você vai escrever. Assim, na hora de instalar, ele vai escrever que esse arquivo faz parte do jogo e então irá excluir (isto é, se o iOS trabalhar igual ao MSI).
Boa idéia! Se ele já for criado com o arquivo existente, a probabilidade de eliminar o arquivo ao ser deletado é maior.
...Mas aí, como criar o arquivo SE o arquivo não existir ainda? Quer dizer, ele já vai estar lá, só não vai ter a informação correta.
...
...
...
Tamanho do arquivo, talvez?
PedroX escreveu:Ou então delete por conta própria.
É possível fazer isso? Quer dizer, o GMS não tem um evento "game delete", então seria necessária alguma ação "extra" do jogador, não seria?

Kabeção escreveu:Mas saim, no Android tem tantas resoluções diferentes quando aparelhos.
Imagina se os desenvolvedores fossem criar imagens diferentes para cada resolução.
Por isso eu queria elaborar a(s) imagem(ns) em função da resolução. O que me importa mesmo é a proporção da tela. A gente vê um bocado de aplicativos com opções de download em função do aparelho, achei que pudesse ser por causa desse tipo de coisa.
Kabeção escreveu:O que costumam fazer é planejar o jogo para diversas resoluções e fazer os graficos na maior definição possível e então alterar o tamanho da view para se adaptar automaticamente e manter o aspect-ratio sem distorção, o que é algo muito fácil de se fazer e sem gastos ou esforços amais.
Talvez seja uma dificuldade minha, então. Adaptar a view à tela é mole, mas e uma HUD, por exemplo, que forme uma moldura na tela inteira? Usa-se 2 views? Não é o meu problema imediato, mas seria legal saber o que fazer num caso desses.

Kabeção escreveu:Você não pode mexer nos arquivos que não são do jogo, ou seja, não pode pegar uma imagem do cartão SD ou da memória. De um jeito ou de outro o usuário só poderia selecionar imagens predefinidas e que veem com o jogo.
No windows, eu posso, mas a questão realmente não é quanto ao windows. E quanto àqueles aplicativos de alteração de imagens, que distorcem fotos e coisa e tal? Impossível fazer algo assim no game maker? Deixemos as questões éticas pra mais tarde. Isso é realmente impossível?

Markituh escreveu:
Não sei quanto ao iOS mas no Android parece que são deletados quando se apaga.
Parece que os arquivos ficam na mesma pasta da aplicação então tudo é apagado.
Se não me engano, os dados ficam no SD mas a aplicação em si parece que fica em outra partição, escondida. Há um tempinho atrás deletei 2 apps (que tinham muitos arquivos na pasta) e os dados continuaram no SD. Talvez seja algum bug, erro de I/O, ou simplesmente porque ele não deleta automaticamente (pelo menos no meu Gingerbread)

Mas dando uma leve pesquisada aqui, a informação procede, os dados escritos pela aplicação são removidos quando o app é desinstalado. Não possuo iOS, então não posso dizer com mais clareza.
Parece que muita gente pensa isso, mas ainda não consegui uma resposta concreta. Vou tentar entrar em contato com a yoyogames e volto a postar aqui.


Rodrigo Santiago escreveu:working_directory - é o diretório do jogo(.exe,.apk,.blablabla)
Mais dentro do ios, pode parar no s.o. ou no sd, numa área específica , nunca testei.
E no HTML5? Nesse caso, eu não sei nem em que computador fica. Tenho a impressão que fique nos arquivos temporários de internet, mas nada sólido.

Rodrigo Santiago escreveu:--Porque você precisa salvar as sprites externamente?
Achei isso um absurdo.
Fazer as TODAS sprites, e carregar novamente uma delas? Praquê? Ela já não vai estar no aplicativo? bounce
Não são TODAS as sprites. E não, elas não vão estar no aplicativo, apenas o código que as cria. Como citei acima, posso querer usar uma moldura na tela inteira, então a proporção da tela influenciaria na proporção da moldura, que pode ser criada a partir da repetição de um padrão (não apenas uma textura, mas espinhos, por exemplo), o que me impede de simplesmente esticá-la a deus-dará.
Se for um código rápido, talvez até valha a pena criar a imagem toda santa vez que o jogador for carregar o jogo, mas eu já criei uma sprite pra seleção de cor que tinha TODAS as cores. E eu fiz isso com 255*256 linhas (draw_line_color). Muito simples de escrever, mas meio lento de processar - quase um segundo inteiro. Se na segunda vez que o jogador fosse rodar esse jogo ele carregasse uma imagem externa (que foi gravada na primeira vez que o jogo foi rodado), o carregamento seria mais rápido (nesse caso específico, fiz e funciona - pelo menos no windows).

Rodrigo Santiago escreveu:Cria a sprite no máximo de resolução, depois usa draw e sprite_create_from screen,(pra mais de um frame use add_from_screen), com uma resolução menor. Eu acho que usar views perde muito processamento ao diminuir as imagens, dependendo do jogo pode nem rodar de tão lento. Basketball Pelo menos acho.
- A sprite em máxima resolução vai aumentar (talvez desnecessariamente) o peso do arquivo
- Continua com o problema de esticar a imagem de forma desproporcional.
Não é uma idéia ruim, só não é adequada pro tipo de caso que estou tentando solucionar.

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: arquivos externos - criação e desinstalação

Mensagem por PedroX em Seg 29 Abr 2013, 10:20

Não sei como funciona a instalação de jogos no iOS, por isso estou usando apenas uma lógica. Creio que na hora de montar o instalador (pelo GM:S) seja possível escolher os arquivos que deseja embutir. Então coloque arquivos vazios no instalador, de forma que sejam deletados depois.

PedroX

Ranking : Nota C
Número de Mensagens : 6034
Idade : 21
Data de inscrição : 26/07/2008
Notas recebidas : C+B
Reputação : 286
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

Voltar ao Topo Ir em baixo

Re: arquivos externos - criação e desinstalação

Mensagem por Conteúdo patrocinado Hoje à(s) 08:28


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum