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 »

seryu

 cualqier archivo se puede sacar, al principio parece molon esconderlos del usuario, pero finalmente no merece la pena. Lo qe publiqes tiene ya una proteccion de copyright.

yo personalmente prefiero perder el tiempo denunciando y sacando pasta de gente qe use mis texturas, qe perder tiempo programando movidas raras.

sinceramente, gasta tiempo solo en temas de zipeo por compresion, no por proteccion.

seryu

 x cierto a mi me horroriza lo de que haya archivos de nombres repetidos, y es algo qe yo al menos no permito que exista, eso solo da lugar a confusion.

En motores pensados para cargar mods como los quake si puede resultar util en el sentido que cargando un nuevo pak puedes reemplazar texturas originales. Lo cual aun me sigue escamando un poco..

como el asunto de las mayusculas y minusculas en archivos, nunca se lo perdonare a windows.  (nooo)  

javiel

 que quede claro que yo no quiero denunciar a nadie por utilizar mis gráficos. En el caso del software lo pienso publicar bajo GPL ya que me parece lo mejor (por supuesto esto es cuestion de gustos), pero en el caso de los gráficos quiero protejerlos, pero no para que nadie los pueda utilizar, sino para poder utilizar mis naves sólamente yo y si alguien los quiere utilizar que me pida permiso. No es que vaya a decir que no pero quiero saber donde se ponen y para que ya que la parte gráfica es la parte que se ve de un juego (claramente) y no me gustaría que se me relacionase con otros proyectos en los que no tengo nada que ver o no me gustan.

Esto no quiere decir que nadie quiera utilizar mis gráficos, a lo mejor son una mierda y a nadie les interesa, pero si a alguien les gusta quiero ser yo quien decida si los pueden o no utilizar. También forma parte de la explotación del juego ya que si yo creo un personaje concreto para el juego no me gustaría que mi personaje sea utilizado por nadie sin mi permiso. Entiendo que esto sale fuera de la filosofía del Software Libre y es por eso por lo que no quiero dar facilidades y poder protejerlo. Está claro que el que quiera pillarlo lo podrá hacer, pero si los camuflo un poco mejor, y después los registro para que no haya problemas

Por ultimo me gustaría saber, si sabéis algo sobre esto, si puedo poner mi código bajo GPL y los gráficos bajo otra licencia que me proteja de que nadie los pueda usar sin mi permiso. Sabéis algo de esto??

saludos

uper-Tirititran: el superhéroe gaditano (http://www.super-tirititran.com)

seryu

 Es perfectamente posible, muchos juegos son asi.

http://www.eternal-lands.com/
Solamente ofrece opensource el programa cliente, ni el servidor ni el arte son gpl.

http://www.planeshift.it/pslicense.html
el programa es gpl, el arte no.


shephiroth

 Wenas. Na, que pasaba por aqui, y aprobechando pues os dejo una pregunta que viendo vuestros post os seá fácil responderla. Si meto mis imagenes (y texto y demas) en un zip (arj se puede??) o en pak, como hago luego para en el programa poder usarlo???

Tengo la ligera idea que me diréis que descomprimiendola de forma temporal en algun sitio, digase c:\TEMP, pero eso queda muy evidente, y dependiendo del tamaño de los comprimidos puede llevarle demasiado tiempo a la máquina l tener que descomprimir todo el archivo si solo quiero acceder a un archivo.

Como veis tengo dudas, algun amable veterano que me ayude??? sino al final, me quedare sin casa  (nooo)  

BeRSeRKeR

 Para leer un archivo insertado en un pak, zip, rar o lo que sea, tendrás que descomprimirlo en memoria y leerlo desde ahí mismo.

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

shephiroth

 wenas. Si, la teoría muy bonita, pero a mi me va más la práctica.....como lo descomprimo en memoria, y como le digo yo que lea un archivo en memoria, porque yo si esta en el ordenata se, si esta en memoria ya no se xDD

BeRSeRKeR

 Pues lo de descomprimir en memoria ya se encarga la librería que utilices para ello. Esa librería tendrá una función a la que le pasas el nombre del archivo a descomprimir y te devolverá un puntero al comienzo de la zona de memoria donde está el archivo descomprimido.

Después para leerlo pues por ejemplo, en Direct3D tienes la funciones de D3DX (supongo que OpenIL también tendrá esa opción) que te cargan una imagen desde memoria. Tu le pasas el puntero y ella se encarga de cargarlo.

Pero si lo que quieres es cargarlo por tí mismo, pues todo es punteros y más punteros. Con un puntero vas recorriendo la zona de memoria donde está el archivo y vas leyendo los datos (es más o menos como leer un archivo en disco con fread, fseek, etc. Tal vez algo más complicadillo ya que los punteros se suelen atragantar :D). Eso ya es algo que es básico saber a la hora de programar.

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

shephiroth

 Buenas. Lo primero decir que lo hago todo a mano xDD. Pero sigo sin entender como hacerlo.

Veamos, tengo un archivo (voy a hacerlo con zip, pero tambien necesitaría otros formatos, el q hablais de pak no estaría nada mal) llamado sprites.zip en el que tengo las imagenes sprites1.tga y sprites2.tga

Si hago un FILE archivoZIP = fopen("datos/sprites.zip","r"); me devolverá un puntero al archivo.....pero como lo descomprimo en memoria, y una vez q este descomprimido, como sé donde empieza el fichero sprites1.tga, y donde el sprites2.tga (de los cuales por anticipado no se el tamaño exacto, lo unico que es q estan comprimidos, pero ya tengo la funcion para descomprimirlos xDD).

No se si se me entiende la duda xDD

BeRSeRKeR

 Pues la verdad es que no lo entiendo muy bien. ¿Quieres decir que eres capaz de descomprimir el archivo pero no sabes su tamaño?. Eso me parece bastante contradictorio.

Yo te aconsejaría que si vas a utilizar el formato zip, utilizases alguna librería para ello ya que, mas que nada, es un curro bastante gordo crearse uno mismo las funciones de descompresión para el formato zip. Además, con estas librerías no sólo se te devuelve el archivo descomprimido en memoria sino que también te devuelve el tamaño del mismo.

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

BeRSeRKeR

 Por cierto, como tampoco es cuestión de que te diga cómo se hace un manager de archivos zip, te aconsejo, si quieres saber cómo hacerlo, que te descargues el código fuente de las herramientas del quake3. Ahí verás que hay una librería (con el código fuente) y código para utilizar esa librería. Lo puedes descargar de aquí (creo que ese es el archivo).

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

shephiroth

 Buenas. Lo siento, pero debí de escribil mal y te llevé a confusión. En ningun momento he querido decir que sepa como descomprimir el zip en memoria, simplemente he expresado mis desconocimientos y no he sabido hacer la pregunta.

Actualmente mi proyecto accede a las imagenes directamente, manteniendo subcarpetas para tenerlo un poco "ordenado". Al ver este post me pareció muy buena idea la de poder introducir archivos de información similar en un unico archivo (lo de zip era un ejemplo, por lo q leo tirare más por los paq por eso de ser mas usado xDD).

Segun he leido hay que leer el archivo en memoria, descomprimirlo en memoria, y acceder a la imagen en memoria, de ahi vienes mis dudas.

1) Abrir el archivo y volvarlo a memoria. Fenomenal, un fopen, y un fread que lea todo el archivo y lo lleve a un char*.

2) Descomprimir en memoria (ni idea xDD)

3) Acceder a las imagenes en memoria (ni idea xDD)

En mi anterior post me salte directamente al tercer punto, lo q te llevo a error xDD

Cual librería me recomendais para esto??

GRACIAS

BeRSeRKeR

 Ya que te pones a meter las cosas en un "pak", ¿por qué no utilizar compresión?. Al fin y al cabo, con la ayuda de una librería es lo mismo que si metieras tus archivos en un "pak" sin compresión.

Con respecto a la librería, depende de qué formato quieras. Si quieres utilizar zip, utiliza la zlib o la que viene con el código fuente de las herramientas del quake3. Si vas a utilizar rar, píllate la librería unrarlib.

Con respecto a cómo descomprimir en memoria, depende. Si vas a utilizar un "pak" sin compresión no necesitas descomprimir nada, sólamente saber en que posicón dentro del "pak" comienza el archivo a extraer y qué tamaño tiene. Con eso haces un fseek para posicionarte en la posición correcta dentro del "pak" y haces un fread de tantos bytes como tamaño tenga el archivo. Pero si utilizas una librería como las que te he dicho, te olvidas de todo esto. La librería se encarga de ese trabajo.

Leyendo el punto número 1, me hace pensar que estás confundido. A ver, lo que tienes que cargar en memoria no es todo el pak (sería una barbaridad teniendo en cuenta que podría llegar a ocupa un capazo de megas) sino solamente el archivo que necesites (una imagen, un script, un sonido, etc).

Y finalmente, con respecto a lo de leer cosas en memoria, lo único que te puedo aconsejar es que te leas, en algún libro o tutorial en internet, el tema de punteros y cómo utilizarlos para desplazarse en una zona de memoria.

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

shephiroth

 Wenas. Creo que porfin empezamos a entendernos xDD.

La verdad el proyecto esta en una fase demasiado temprana como para empezar a hacer este tipo de cosas, pero tomo nota. Lo más seguro utilizaré alguna libreria (de codigo libre, porsupuesto) a poder ser de arj que me gusta más xDD

Muchas gracias a todos por vuestros comentarios ^_^

Mars Attacks

 Los programadores creo que ya te han solventado las dudas (o están en ello). Filosofeando un poco te diría que te olvides de ponerle "las cosas difíciles" al usuario. Si no quieres que usen tus imágenes sin tu permiso, simplemente pon un letrerito en el ejecutable que ponga "envíame un mail a tal si quieres usar las imágenes para tu proyecto".
Total, el que lo quiera hacer lo va a hacer igual, así que ¿para qué complicarse mutuamente la vida?

Un saludo GPL.






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.