Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: rogerskate en Mayo 20, 2014, 03:53:57 PM

Título: Como crear archivo con mi propio formato?
Publicado por: rogerskate en Mayo 20, 2014, 03:53:57 PM
He visto que algunos archivos no solo se pueden guardar como .sav, .ini, .txt, si no que hay otros como .CGM (que es un juego de aquí), quisiera saber que necesito hacer para guardarlo con mi propia extension donde mi programa lo lea, gracias de antemano.
Título: Re:Como crear archivo con mi propio formato?
Publicado por: Markus en Mayo 20, 2014, 04:16:37 PM
Es más fácil de lo que piensas. Crear un archivo de texto o un archivo ini y le cambias la extensión por alguna que tú inventes.

Ahora, el tema es que si haces "solamente" eso, es fácil abrir tu archivo con el block de notas (independiente de la extensión que tenga) y cambiar algún parámetro que guardes en él.

Para evitar este problema, no solo creas una extensión propia, sino que codificas lo que quieres guardar y luego la decodificas en tu juego. De ese modo ya no se hace tan fácil descubrir lo que quieres guardar en ellos.

Saludos.
Título: Re:Como crear archivo con mi propio formato?
Publicado por: rogerskate en Mayo 20, 2014, 04:20:09 PM
Bueno, en realidad eso ya lo sabía... entonces formule mal la pregunta, entonces sería: Como codificar un archivo donde tenga información guardada y que solo lo lea mi juego?
Título: Re:Como crear archivo con mi propio formato?
Publicado por: Markus en Mayo 20, 2014, 04:29:01 PM
He visto por ahí uno que otro script. Incluso puedes buscar dll que te lo permitan, también hay varias.

El principio básico para codificar un archivo es tomar cada caracter, obtener su valor en byte, aplicarle una fórmula para que el valor cambie, luego volverlo a caracter. Para la decodificación, es aplicar la fórmula inversa.

Por ejemplo: recuerdo hace tiempo haber hecho algo bastante simple:
string texto = "esto es un texto a codificar";
string textocodificado = "";
for (var i = 1; i <= string_length(texto); i++)
{
  var c = string_char_at(texto, i); //obtiene el caracter en la posicion i
  int n = ord(c); //obtiene el valor del caracter
  n++; //le aplico la formula, que es aumentar el valor en 1
  var nc = chr(n); //convierto el nuevo valor en caracter
  textocodificado += nc; //lo agrego al nuevo texto
}

No tengo el game maker a mano, así que puede que no estén correctamente escritos los códigos. Pero espero se entienda la idea.

Saludos.
Título: Re:Como crear archivo con mi propio formato?
Publicado por: rogerskate en Mayo 20, 2014, 04:32:58 PM
Mmmm entiendo, pero creo que necesito un poco más de info y práctica ya que es algo que requiere mucha atención, gracias por tu ayuda Markus :D
Título: Re:Como crear archivo con mi propio formato?
Publicado por: Markus en Mayo 20, 2014, 06:06:33 PM
De nada, RogerSkate.

Es algo simple, pero eso no quiere decir que sea fácil de entender y ejecutar. Infórmate harto y aprende a hacerlo, eso te ayudará también a tu experiencia como programador ;D

Saludos.