H2Omega Game Engine 2D

Encuentra personas para llevar adelante tu proyecto, muestra el progreso de esos proyectos y participa en competencias grupales.

Moderador: Dokan

H2Omega Game Engine 2D

Notapor Raito » Vie Feb 20, 2009 12:35 am

Hola a todos.

Soy nuevo en el foro y esta es la primera vez que escribo y les traigo un motor 2D hecho en C++ basado en las APIs gráficas SDL.

El motor trae clases fáciles de utilizar para realizar animaciones, sistema de particulas, reproducir música y sonidos WAVs, manejo de joysticks, etc. También trae una clase para realizar mapas y para poder verificar colisiones en el mismo.

Acá les dejo el link para descarga gratuita:

http://rapidshare.com/files/200176892/H ... D.zip.html

Lamentablemente por falta de ganas no le he realizado una documentación, pero si he hecho un ejemplo de especie RPG para demostrar como utilizar los mapas y las animaciones, como así también el manejo de sonidos.

Agradecería si lo pudieran probar y reportarme sobre fallas que vallan encontrando, como así también gente que estén dispuestas a ayudar para ir mejorandolo e ir implementando nuevas cosas como por ejemplo un render 3D.

Con el tema de la licencia no he hecho nada al respecto ya que no entiendo muy bien los términos legales xD ( re pirata -.- )

Gracias de antemano
"The bird of Hermes is my name eating my wings to make me tame."
Avatar de Usuario
Raito
 
Mensajes: 7
Registrado: Jue Feb 19, 2009 8:07 pm
Ubicación: Argentina

Notapor sofoke » Vie Feb 20, 2009 3:03 am

Bienvenido al foro...
Me preguntaba si el engenie (motor) lo hiciste tu?
Ahora yo te recomendaria una licencia GPL (pues aqui entre nos es la mejor en mi opinion) Esta licencia (segun entiendo) permite a todo que sepa y quiera programar en el lo puede hacer respetando al creador y sus creditos...
lo checare suena muy interesante...
...cuando lo popular no es suficiente...
Gnu-Linux-y-Más
Avatar de Usuario
sofoke
 
Mensajes: 102
Registrado: Jue May 24, 2007 8:10 pm
Ubicación: México

Respuesta

Notapor Raito » Vie Feb 20, 2009 5:11 pm

Si, el código fuente del engine lo comencé yo desde 0, como así también el sistema para describir algunos objetos necesarios ( EasyDescription ).

Con el tema de la licencia voy a leer en wikipedia para ver las diferencias entre las distintas licencias.
"The bird of Hermes is my name eating my wings to make me tame."
Avatar de Usuario
Raito
 
Mensajes: 7
Registrado: Jue Feb 19, 2009 8:07 pm
Ubicación: Argentina

Notapor Juan Carlos » Sab Feb 21, 2009 1:23 pm

Parece un buen engine, pero no hay codigo para leer. Solo hay cabezeras de funciones y metodos pero no hay codigo. :(

Saludos
Juan Carlos
 
Mensajes: 97
Registrado: Sab Jul 07, 2007 1:05 pm

Respuesta

Notapor Raito » Mié Feb 25, 2009 12:40 pm

El codigo fuente del engine no lo publico, pero si se encuentra el codigo fuente del ejemplo. Está el proyecto hecho en el IDE Dev C++.

Saludos
"The bird of Hermes is my name eating my wings to make me tame."
Avatar de Usuario
Raito
 
Mensajes: 7
Registrado: Jue Feb 19, 2009 8:07 pm
Ubicación: Argentina

Re: Respuesta

Notapor endaramiz » Mié Feb 25, 2009 8:32 pm

Raito escribió:El codigo fuente del engine no lo publico
Lástima... entonces pierde casi toda la gracia. Mejor intentar crear uno yo, que al menos lo podré modificar a mi gusto y sabré lo que hace cada cosa.

Yo también te recomendaría la GPL, en el libro 'Software libre para una sociedad libre' (se puede descargar desde esta web) se dan algunas buenas razones. Si no recuerdo mal, en las charlas del final, R. Stallman hace una especie de resumen.

Saludos.
Avatar de Usuario
endaramiz
 
Mensajes: 283
Registrado: Vie Ago 31, 2007 9:25 am
Ubicación: Barcelona

Notapor sofoke » Jue Feb 26, 2009 6:11 am

Si es una lastima no hay codigo fuente y parece ser que depende de unas .dll exclusivas lo cual hace aun mas dificil poder portarlo a otros sistemas...
...cuando lo popular no es suficiente...
Gnu-Linux-y-Más
Avatar de Usuario
sofoke
 
Mensajes: 102
Registrado: Jue May 24, 2007 8:10 pm
Ubicación: México

Respuesta

Notapor Raito » Jue Feb 26, 2009 12:24 pm

Hola.

Con el tema de las librerias dinámicas lo he hecho así para poder mejorar el rendimiento en Windows y para evitar recompilar si hay que hacer modificaciones menores.

Lo de portarlo a otros sistemas no es problemas, ya que el código es totalmente multiplataforma, pero no lo he compilado en sistemas UNIX o Mac debido a que no uso esos sistemas.

Agradesco que me recomendarán el libro ('Software libre para una sociedad libre'), pero no comparto la filosofía del software libre.

Saludos !
"The bird of Hermes is my name eating my wings to make me tame."
Avatar de Usuario
Raito
 
Mensajes: 7
Registrado: Jue Feb 19, 2009 8:07 pm
Ubicación: Argentina

Notapor Juan Carlos » Jue Feb 26, 2009 11:39 pm

Bien, buscando un poco de informacion en la web, encontre lo siguiente:

La libreria SDL tiene licencia GNU LGPL. Dicha licencia establece que si un "programa" USA la libreria (como SDL), el programa NO esta bajo la licencia GNU LGPL.
Por ejemplo, cualquier juego que use la libreria SDL puede tener una licencia distinta a GNU LGPL, e incluso puede tener una licencia privativa.

Sin embargo, la licencia en cuestion dice que si un "programa" es un derivado de una libreria (como SDL) este programa DEBE estar bajo la licencia GNU LGPL.
Un "engine" grafico, que tiene las mismas funcionalidades que SDL, evidentemente es un derivado de dicha libreria. Como por ejemplo la libreria "pygame" es un derivado de SDL. O la libreria "cocos" es un derivado de "pyglet"

Formalmente, estarias incumpliendo la ley. Pero nadie de aqui piensa en denunciarte ni nada por el estilo.

La pregunta es, y ahora que?. Bien, para tu engine no tengo idea, si no quieres liberar el codigo esta todo OK. (personalmente queria ver el codigo del manejador de particulas, pero no importa :( )
Para tus futuros proyectos tal vez te interese leer las licencias Creative commons. Estas licencias son bastante adaptables y pueden ser de tu agrado.

Saludos
Juan Carlos
 
Mensajes: 97
Registrado: Sab Jul 07, 2007 1:05 pm

Notapor Geo » Vie Feb 27, 2009 4:20 am

No está incumpliendo la licencia. No se trata de un trabajo "derivado" de SDL, un trabajo derivado incluiría modificaciones al código fuente de SDL, o necesitaría recompilación de la librería por algún añadido.

En fin, que ya estamos desviando el tema :p.

Lamentablemente, por ahora no he tenido tiempo de darle un vistazo a la librería, quizá la próxima semana y con gusto trataré de comentar, gracias por la info, lo único es que espero que haya un poco de documentación sobre el uso :).
La imaginación es el límite.
Visita mi blog en inglés o en español.
Geo
 
Mensajes: 244
Registrado: Jue Ago 10, 2006 3:51 am
Ubicación: México

Respuesta

Notapor Raito » Vie Feb 27, 2009 11:34 pm

Hola.

Jeje , no pensé que mi "reveldía" hacia las licencias causara tanto alboroto ....

Me disculpo si he violado sus término y si es necesario voy a retirar los archivos para no causar más problemas.

Con respecto a la documentación he estado flojo para escribirla ya que estoy con otro proyecto, pero por cualquier consulta te dejo mi mal: gastoncito_ngt@hotmail.com

Saludos !
"The bird of Hermes is my name eating my wings to make me tame."
Avatar de Usuario
Raito
 
Mensajes: 7
Registrado: Jue Feb 19, 2009 8:07 pm
Ubicación: Argentina

Notapor lacabra25 » Dom Mar 15, 2009 12:19 am

Raito, voi a decirte varias cosas y espero poder plasmarlas de forma ordenada y clara en este post sin que se entienda mal nada.

Para empezar, eres libre de no compartir la filosofia del software libre si esa es la conclusion a la que has llegado despues de leerte el documento que ya te han recomendado, solo tengo una pregunta ¿podrias argumentarme que te ha llevado a esa conclusion? es mas que nada por curiosidad y por poder escribir mas en este tema abierto ya que no lo entiendo.

Como veo que tu engine usa dll lo que llamais engine es de forma formal una libreria por lo que deberias ponerle una licencia en primer lugar (o por lo que he leido, un copyright en el que detalles las condiciones de uso).

Como supongo que habras leido en la pagina de inicio de este sitio "losersjuegos", es un grupo de programadores y artistas que hacen juegos bajo la licencia GPL por lo que si tu biblioteca no es libre, tiene poco sentido que la anuncies aqui ya que no es util a nadie de aqui que la quisiera usar para hacer un programa libre puesto que de nada sirve que el programa sea libre si para poderlo usar el usuario necesita una biblioteca privativa, es como decirle a una persona que es libre y no se la va a llevar a la carcel y ponerle unas esposas.

Como no se nada de ti mas que lo que he leido en este tema hay algunas cosas que debo suponer y otras que dezconozco por completo sin poder suponerlas. ¿como has aprendido a programar?, ¿como crees que se aprende mejor a programar, leyendo mil y pico paginas de un libro y recibiendo durante semanas errores de un compilador o leyendo codigo de programas que funcionan y añadiendo pequeños cambio para asi aprender a programar codigo extenso aprendiendo primero a programar trozos pequeños? si tu elegcion es la segunda opcion a esta ultima pregunta, eso solo es posible con software libre; ¿te gustaria llegar a un restaurante y cuando preguntases que que lleva el plato que quieres pedir te dijeran "no es asunto suyo, no tiene por que saber nada del plato, simplemente comaselo"? imagina que eres diabetico o celiaco ¿te arriesgarias a pedir el plato? imagina que no te gusta el limon y el plato que quieres pedir lo contiene pero como no sabes que lo tiene lo pides, despues no te lo comes por que no te gusta y te lo cobran igual pero no era asunto tuyo saber que tiene el plato que pides, pues con el software es igual, las recetas son instrucciones para un cocinero y un programa instrucciones para un ordenador pero igual que como comensal es algo normal que si preguntas que lleva un plato te lo digan tambien deberia ser normal que si un usuario pregunta "¿que coño hace este software?" reciba como respuesta el codigo del programa. A cualquiera que le preguntes como se hace una tortilla (tortilla francesa, no se como se dira en tu pais) seguro que te dira que batiendo huevos echandole sal y cocinandola en una sarten (despues habra quien le eche alguna otra cosa...) ¿ves normal que todos tuviesemos que comernos la tortilla igual, huevos batidos y cocinados simplemente? ¿no te parece mas normal que si le quieres echar (por ejemplo) jamon o queso o un toque de pimienta pudieses hacerlo? pues con el software es igual, si es el usuario quien va a usar el software en su ordenador, ¿por que no puede cambiarlo para que se adapte a lo que necesita?. Ya que comentas que tu biblioteca usa SDL ¿que te parece SDL? supongo que lo suficiente buena como para usarla, como ya sabes SDL es software libre, ¿no te parece ironico, o por lo menos hipocrita, que no publiques tu biblioteca como software libre pero sin embargo uses una biblioteca que si es software libre?, ¿no crees que el que SDL sea software libre habra echo que diferentes personas la hayan podido ir mejorando aportando cada uno una parte de codigo y modificaciones?, ¿no te ha picado la curiosidad por aprender y has echado un vistazo al codigo de SDL nunca? ¿no te gustaria que si usas algo puedas aprender como funciona? ¿nunca de pequeño has cogido un despertador, ese coche radiocontrol que se te rompio o cualquier trasto asi y lo has abierto para ver como funciona por la curiosidad de aprender que hace que funcione? ¿nunca has querido cambiar algo de windows (digo windows por ser el sistema que tu usas) y cambiarlo por que no te gusta simplemente o por que crees que podrias mejorarlo? pues con software privativo no puedes saber como funcionan las cosas, no puedes cambiarlas, no tienes ninguna libertad sino que eres un simple esclavo; con el software libre eres libre.

No se si lo sabras pero el software libre puede distribuirse ya sea gratuitamente o cobrando (por si es el dinero por lo que no te gusta el software libre).

Has dicho que tu biblioteca solo la has compilado para windows y no la has compilado para otros sistemas por que no los usas, ¿que te hubiera parecido que SDL no estuviese compilada para windows y no te diesen el codigo fuente y te dijeran "si quieres usar SDL usa GNU/Linux"? ¿mal verdad? pues es lo que tu estas haciendo al no ser tu biblioteca software libre, nadie tiene tu codigo fuente y aunque lo tuviesen de que sirve si no podrian compilarlo y usarlo en otros sitemas, obligas a la gente a o usar el sistema que tu quieras o no usar tu biblioteca (como una dictadura, para que lo entiendas). Quieres que lo probemos para ir diciendote los fallos que le encontremos y que quieres encontrar gente que te ayude a mejorarlo ¿COMO SI NO DEJAS QUE SEAMOS LIBRES DE PODER AYUDARTE A MEJORARLO?, NO NOS DEJAS AYUDARTE A MEJORARLO sin el codigo fuente ES IMPOSIBLE que te podamos AYUDAR ademas de que me parece hipocrita que pidas ayuda para mejorar un software privativo aqui y encima eso, quieres ayuda para mejorarlo pero no aceptas que los demas lo puedan modificar y mejorar ni que puedan aprender de el, quieres ayuda pero no dar ayuda a la comunidad de la que puedes recibir ayuda.

Yo estaria dispuesto a ayudarte a mejorarlo, tengo algunos codigos en C con los que obtener numeros aleatorios que podrian ser de utilidad para dar aleatoriedad y realismo por consiguiente al sistema de particulas, pero no puedo ayudar a un software privativo, tengo principios morales (eso a parte de que si tu no quieres mostrar tu codigo y permitir usarlo, modificarlo y distribuirlo ¿por que deberia dejarte yo hacerlo con mi codigo?). Ademas, para que ayudar si yo uso GNU/Linux y no podria usarlo ya no solo por el sistema sino por que no admito que me quieran esclavizar digitalmente.

Disculpa si he podido ser algo duro en algunas ocasiones o si hay algo que se pueda malentender. Como ya te dije al principio si me dices que motivaciones tienes para no compartir la filosofia del software libre podria hablarte de forma mas clara y precisa y mantener una conversacion con menos supuestos. En cualquier caso piensa si a ti te gusta estar esclavizado y si quieres ser un tirano mas esclavizando usuarios.

NOTA: ¿cuantos perifericos tienes en tu ordenador (externos e internos, ambos)?, te has leido la licencia de windows XP, no puedes tener más de 5 perifericos o la estarias incumpliendo (y no creo que la licencia del vista sea mas permisiva, mas bien al contrario) esto te lo digo para que veas como (aunque no lo sepas) el software privativo es una forma moderna de esclavizar.

La libertad no hace libres a los hombres, sencillamente los hace hombres.
¡VIVA EL SOFTWARE LIBRE!, ¡A LA .... MIERDA EL SOFTWARE PRIVATIVO!

EDITO:
Para resolver la duda creada entre Juan Carlos y Geo sobre si estas incumpliendo la licencia LGPL (por como tu al abrir el tema dijistes "basado en las APIs gráficas SDL") he enviado un correo electronico a la Free Software Foundation planteandoles la cuestion para asi obtener una respuesta clara sobre si efectivamente incumples la licencia LGPL o no.
Esta cuenta ahora a pasado a la cuenta jhg
Avatar de Usuario
lacabra25
 
Mensajes: 222
Registrado: Mié Abr 02, 2008 9:45 pm
Ubicación: Tenerife (España)

Re: Respuesta

Notapor sofoke » Dom Mar 15, 2009 4:16 am

Hay algo que yo todavia no comprendo (perdonen mi ignorancia)+
Raito escribió:Con el tema de las librerias dinámicas lo he hecho así para poder mejorar el rendimiento en Windows y para evitar recompilar si hay que hacer modificaciones menores.

Lo de portarlo a otros sistemas no es problemas, ya que el código es totalmente multiplataforma, pero no lo he compilado en sistemas UNIX o Mac debido a que no uso esos sistemas.

Hace mucho no programo en windows pero segun recuerdo para hacer una .dll necesita codigo exclusivo de windows de lo contrario podriamos tenerla en Linux Mac y etc...
si estoy en un error me disculpo, pues nunca hice una libreria dinamica... Creo que nunca me vi en la necesidad de semejante rriesgo (lo digo por que siento se aislaria mi codigo a un sistema)

Ahora con lo respecto a si lo quieres liberar o no, y como dice el amigo = 'lacabra25' es irazional e incluso insultante (a mi modo de ver) que en un foro donde se fomenta el software libre des a conocer una libreria privatiba y pidas ayuda para mejorarla....
Lo que me suena mas ironico (que muchos lo hacen) es usar un IDE libre para programar un software privado... (no estoy diciendo que seas el unico, pero si que es algo raro...)
...cuando lo popular no es suficiente...
Gnu-Linux-y-Más
Avatar de Usuario
sofoke
 
Mensajes: 102
Registrado: Jue May 24, 2007 8:10 pm
Ubicación: México

Re: Respuesta

Notapor lacabra25 » Dom Mar 15, 2009 12:35 pm

sofoke escribió:... hacer una .dll necesita codigo exclusivo de windows ...


Sofoke, en cierto modo estas en lo cierto ya que una DLL no es mas que una libreria dinamica que son trozos de instrucciones usadas por varios programas y que para economizar (memoria por ejemplo) lo que se hace es compilar las instrucciones en un archivo separado del programa que cuando se carga en memoria para un programa, si otro programa necesita la misma libreria dinamica la usaria estando ya en memoria, para esto pues si se necesita codigo que no es portable, pero si el codigo de la libreria dinamica es portable, para que un programa no tenga que incluir codigo no portable lo que se suele hacer es crear librerias estaticas de forma que el programa enlaza con la libreria estatica (esto si es multiplataforma) y la libreria estatica es la que enlaza con la dinamica (aqui la parte monoplataforma). Por ejemplo SDL tiene DLL para windows y librerias dinamicas para GNU/Linux, asimismo tienes librerias estaticas para windows y para GNU/Linux, un programa simplemente enlaza con la libreria estatica (ya sea compilado en GNU/Linux o en Windows) y esta se encarga de enlazar a la libreria dinamica, de este modo se mantiene portable, obviamente supone mas trabajo pues es necesario hacer una compilacion condicional en la libreria dinamica y diferentes librerias estaticas segun el sistema o una compilacion condicional si no es mucho lo que cambia de un sistema a otro.

Espero haber podido ayudar si tenias cualquier duda respecto a esto Sofoke y estoi de acuerdo con lo que comentas, la actitud de raito en este tema abierto puede llegar a ser insultante, ya no solo por en un foro que fomenta el software libre presentarnos software privativo y encima pedir ayuda para mejorarlo, sino por que si ha estado viendo el codigo fuente de los ejemplos de la web y le ha gustado poder aprender del codigo de otros es una ironia negarselo a los demás, porque si ha estado viendo articulos de esta web y le ha gustado aprender, es una ironia negarselo a otros, porque si le ha gustado ser libre usando software libre es una hipocresia negarselo a otros.
Esta cuenta ahora a pasado a la cuenta jhg
Avatar de Usuario
lacabra25
 
Mensajes: 222
Registrado: Mié Abr 02, 2008 9:45 pm
Ubicación: Tenerife (España)

Notapor sofoke » Dom Mar 15, 2009 4:46 pm

Gracias lacabra25 me a quedado claro eso de las .dll, estaba algo perdido con respecto eso... :oops:
...cuando lo popular no es suficiente...
Gnu-Linux-y-Más
Avatar de Usuario
sofoke
 
Mensajes: 102
Registrado: Jue May 24, 2007 8:10 pm
Ubicación: México


Volver a Propuestas de desarrollo y concursos

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado