Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Formato De Las Imágenes

Iniciado por javiel, 05 de Abril de 2004, 01:42:22 PM

« anterior - próximo »

javiel

 Bueno a ver como explico yo ahora esto....

Las imágenes de mi juego están en PNG, y estoy bastante contento con este formato, pero tengo un pequeño problema. El problema es que es muy fácil modificarlo. Como las imágenes las carga en tiempo de ejecución, pues nada mas que cambiar una nave se puede cambiar la navecita. Esto no está mal, de todas formas tengo pensado poner el juego con Licencia GPL, pero no se hasta que punto está bien esta facilidad de cambio de sprites.

He visto en juegos como "Pachi el marciano"

http://dragontech.sourceforge.net/index.ph...main=news&game=

que tiene el formato en una extensión llamada ".T8", bueno o eso creo que son las imágenes después de ver el código, pero no tengo ni la mas remota idea de que es esto, o como funciona ¿alguien sabe de que va?

No me gustaría cambiar de formato, ya que PNG es lo mejor que he visto hasta ahora, pero no se como se podría (o si se puede) enmascarar un poco las imágenes para que no se modifiquen con demasiada facilidad.

Gracias a todos y un saludo
uper-Tirititran: el superhéroe gaditano (http://www.super-tirititran.com)

BeRSeRKeR

 Podrías empaquetar tus imágenes que no se puedan modificar en un zip (modificando su cabecera) o un rar (poniéndole una contraseña) o incluso inventándote tú mismo un formato. Evidentemente tendrías que crear un manager de archivos empaquetados para extraer los archivos en memoria y posteriormente cargar las imágenes o lo que sea desde esa zona de memoria.

Por la red hay librerías para manejar los formatos zip (zlib, por ejemplo) y rar.

Saludos.
¡Si te buscan en nombre de la ley, huye en nombre de la libertad!!

tewe76

 ese es el método ideal, pero si qieres uno de medio andar por casa, pero eficaz en la mayoría de los casos, basta con q cambies la extensión de los archivos .png por .xxx (por ejemplo). Por supuesto, así se puede descubrir el truco con un poco de investigación, pero la mayoría de la gente ni se molestará en hacerlo.
Tewe
www.TAPAZAPA.com : Funny and easy to play games for all ages! - Fairy Match - Brain Crash
www.LaRebelionDelBiberon.com : Experiencias de unos padres primerizos

tamat

 renombra los pngs a .F4KU y ya está :D
Por un stratos menos tenso

[EX3]

 Hombre yo en principio la idea de ke me modifiken las imagenes de mi juego pos me jorobaria un poco pero luego tb lo veria bien para ke la gente hiciera sus propios skins y demas historias (eso le da vida a un juego) cosa ke tb se puede hacer sin modificar las fuentes originales.

En tal caso yo optaria por paquetes, ya sean sin comprimir (PAK, WAD u cualquier formato conocido) o comprimido (ZIP, PK3, etc...) o crearte tu mismo tu propio formato de paquete. Esto luego a la larga tb es muy comodo para poder organizar los recursos de tu juego e incluso para hacer modificaciones de skins como he dicho antes añadiendo por ejemplo paquetes adicionales en el directorio del juego con los archivos modificados del original, luego suplantas los originales por los del pakete en la carga del juego y tal, como hace el Half-Life o el QuakeIII. Con esto de los paquetes nadie podria modificar los archivos a no ser ke tuvieran el editor con el ke se hizo el paquete, cosa ke es facil si usas formatos como el PAK o PK3, pero si te creas tu propio formato de paquete solo tu podrias modificar los archivos.

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

Zaelsius

 Buenas, nosotros tenemos un empaquetador de archivos muy chulo, tiene una interfaz en C++ muy sencilla, admite compresión, y tenemos una GUI para Windows para crear los paquetes.

Viene incluido en un paquete de herramientas más general que hemos llamado "LemonGT", y puedes descargarlo junto a los tutoriales en www.LemonTeam.com

Aunque verás que pone versión "Beta", no hemos detectado errores en esta versión.

En la sección de tutoriales puedes ver un tutorial más extenso sobre el formato y cómo añadir encriptación fácilmente.

Si tienes algun problema utilizándolo contáctanos por este foro, el nuestro o por mail.

Edit: una captura del GUI para que veais que fácil es

[EX3]

 Yo estoy implementando una pekeña modificacion en el formato PAK del Quake/Half-Life, compresion mediante ZLIB. El tema de usar el PAK como base es por ke para crear los paketes prefiero el editor ke tengo para los PAK, el PAKScape, es un editor con una interfaz muy sencilla y flexible ke permite arrastrar elementos desde una carpeta al programa y viceversa (drag&drop) y eso es algo ke veo muy util y como yo estoy muy perro como para currarme un editor como ese pos se me ocurrio la idea de crear un programa aparte ke, una vez creado el PAK, extragera en memoria los archivos, los comprimiera y volviera a crear el nuevo PAK (*.TPK, TLSA PAK  :P ) pero comprimido, variando incluso la cabecera con alguna informacion adicional que fuese util para el motor.

Luego si por alguna causa se kisiera modificar el contenido del TPK se usaria el mismo programa para realizar la tarea al reves, osea, extraigo en memoria los archivos, los descomprimo y creo otra vez el PAK original.

Se ke suena un poco a chapuza (pero solo un poco xDDD) pero weno, si me da el venazo ya me pondre hacer un editor en condiciones xDDDDD


PAKScape

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

Lord Trancos 2

 Como muy bien dices, si lo vas a hacer GPL no tiene mucho sentido que protejas los graficos.
on los años y mucho esfuerzo he llegado a atesorar una ignorancia total sobre casi todas las cosas.
Gate to Avalon (mi Blog)

Zaelsius

 Hombre, los fuentes de Quake 1/2 son GPL y el arte sigue siendo copyright de Id Software. Javiel, en este caso deberias incluir una licencia adicional para los gráficos o dejar muy claro que no se pueden usar, porque teniendo el código fuente no cuesta nada sacarlos.

Aunque pienso como Lord Trancos, que mientras tu juego no sea comercial no te tendrias que molestar en proteger los gráficos, pero si lo haces, pues algo más habrás aprendido :).

TheAzazel

 Bueno, a mi no me gusta q se modifiquen los graficos... yo stoy con la mayoria, hazte un formato propio que sea sencillote y ya esta, personalmente tengo un empaquetador multimedia donde puedo meter archivos de sonido,musica,imagenes,tiles,botones,sprites y fuentes y lo q hace es importar los formatos mas conocidos y luego internamente usa formato propio, tambien puedes exportar, en fin esta bastante bien... a ver si en una de esta saco ganas de algun sitio, lo documento un poco y lo pongo en la web para que lo utiliceis todos los q querais ya que puedes criptar con password cada "paquete" asi nadie te podra toketear tus datos(bueno, eso de nadie... en la informatica si alguien te la quiere liar te la lia, es cuestion de cto interes tenga, cto tiempo y cto sepa jejeje)
pos na mas, un saludo

Lord Trancos 2

 
Cita de: "ZaelSiuS"Hombre, los fuentes de Quake 1/2 son GPL y el arte sigue siendo copyright de Id Software. Javiel, en este caso deberias incluir una licencia adicional para los gráficos o dejar muy claro que no se pueden usar, porque teniendo el código fuente no cuesta nada sacarlos.

Aunque pienso como Lord Trancos, que mientras tu juego no sea comercial no te tendrias que molestar en proteger los gráficos, pero si lo haces, pues algo más habrás aprendido :).
Que el codigo sea GPL no quiere decir que los de ID hayan renunciado al Copyright © del codigo. (y tampoco de los graficos, claro).

Con lo de que si el juego iba a ser GPL no valia la pena proteger los graficos, y tal y como dices, me referia a que puesto que se tiene el codigo se pueden sacar/convertir los graficos (aunque sin el codigo tb se pueden sacar), por lo que el trabajo de esconderlos resulta un poco tonto (mejor gastar el esfuerzo en otras cosas). Otra cosa es que simplemente quieras empaquetarlos para meter un poco de orden.
on los años y mucho esfuerzo he llegado a atesorar una ignorancia total sobre casi todas las cosas.
Gate to Avalon (mi Blog)

[EX3]

 Yo la razon por ke decidi usar paketes en mi juego es simplemente por tener una organizacion de los archivos y para poder hacer añadidos de forma sencilla. Mi motor busca, por orden alfabetico, en un directorio determinado todos los *.pak ke haya y luego genera una lista con todos los archivos encontrados en los *.pak, pero la lista solo contiene archivos unicos:

QUOTE ("pak0.pak")
GFX/Logo.bmp
GFX/Main.png
Sound/Shoot.wav
Credits.txt[/quote]
QUOTE ("pak1.pak")
GFX/Sky.bmp
GFX/Main.png
Credits.txt[/quote]
QUOTE ("La lista final seria")
GFX/Logo.bmp (pak0.pak)
GFX/Main.png (pak1.pak)
GFX/Sky.bmp (pak1.pak)
Sound/Shoot.wav (pak0.pak)
Credits.txt (pak1.pak)[/quote]
Los archivos contenidos en la lista siempre son los ultimos archivos leidos, si se lee un archivo ke ya existe en la lista, el antiguo se cambia por el nuevo. Es el mismo mecanimso ke usan motores como el del Quake, Quake 2, Half-Life, Quake3 o Jedi Knight 2 entre otros.

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

Lord Trancos 2

on los años y mucho esfuerzo he llegado a atesorar una ignorancia total sobre casi todas las cosas.
Gate to Avalon (mi Blog)

tewe76

 
CitarLos archivos contenidos en la lista siempre son los ultimos archivos leidos, si se lee un archivo ke ya existe en la lista, el antiguo se cambia por el nuevo
¿Por qué tienen prioridad los últimos leídos? No hay ningún motivo, ¿no? Supongo que lo haces simplemente por seguir un criterio.  
Tewe
www.TAPAZAPA.com : Funny and easy to play games for all ages! - Fairy Match - Brain Crash
www.LaRebelionDelBiberon.com : Experiencias de unos padres primerizos

[EX3]

 
Citar¿Por qué tienen prioridad los últimos leídos? No hay ningún motivo, ¿no? Supongo que lo haces simplemente por seguir un criterio.
Pues si, es mas por criterio ke por otra cosa, recuerda ke el motor hace una lista por orden alfabetico de los paquetes que se encuentran en el directorio, y luego genera la lista de los archivos en conjunto de todos los paquetes y lo mismo, la lista se hace leyendo los paquetes por orden alfabetico, tal y como estan en la lista anterior, de ahi la razon de por ke doy prioridad a los ultimos archivos leidos, por ke asi y tal como se leen los paquetes, asi me aseguro ke cuando kiero hacer una modificacion esta se haga, asi en vez de leer el archivo original leo el nuevo.

No se exactamente como lo hara el Half-Life (por ejemplo) pero me imagino ke este usara un patron de busqueda con los *.pak, algo asi como buscar solo pak*.pak, asi solo lee pak0.pak, pak1.pak, pak2.pak, ... asegurando asi actualizaciones correctas de los archivos originales pero esto para hacer addings o plugins en un poco mas puñetero.

Tal y como lo tengo yo es como funciona en el Jedi Knight 2, estan los paquetes originales (assets0.pk3, assets1.pk3, assets3.pk3, ...) pero luego tb te lee cualquier *.pk3 lleve el nombre ke lleve como por ejemplo el modelo de Luke SkyWalker ke le meti al modo multiplayer (anhluke.pk3).

Si tengo ke elegir uno de los dos modos me kedo con el ke uso ahora ya ke es mas personalizable en cuanto a los nombres.

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.