Entradas con la etiqueta ‘fenix’

Lista “engines” 2D libres (+ algunos vídeos)

Jueves, 12 de Noviembre de 2009

Los Engines (link a la wikipedia) son una forma como programador de no andar metiéndose siguiendo una metáfora culinaria a coger las patatas del campo, coger los huevos de nial de las gallinas…para hacer una tortilla de patata, vamos que para que hacer eso si lo que quieres es cocinar una rica tortilla solo quieres los huevos, las patatas y demás ingredientes y cacharros.

Mola programar, yo conozco gente que andan obsesionados con hacerse sus librerías gráficas/engines/kits y se pierden en el bosque por andando mirando los arboles (¿Cual era el refrán…sale en la peli Kill Bill?), si es una tarea noble pero infructuosa porque se te va el tiempo y al final el videojuego no viene.

Y las librerías básicas que ofrece el software libre como LibSDL ayudan pero hay peldaños para subir mas arriba y crear lo que queremos crear, el videojuego…o aplicación multimedia ;) .

Nos centramos en 2D porque 3D aunque tenemos grandes engines como Ogre3D o Cristal Space son otro campo mas largo. De los 2D listados pues a mi entender son los mas “estándar” es decir los que mas probabilidades existan en tu distribución de GNU/Linux o incluso consola y los que mas se acercan al concepto de engine y mas se alejan de simple librería multimedia (porque hay otros conocidos como clanLib, Allegro… que son poco mas que librerías mas o menos de mas alto nivel), bueno vamos al turrón:

  • PyGame librería para Python (link a la wikipedia) que da muchas facilidades para programar videojuegos. Frente a los otros 2 engines 2D que te comentare es que trabajas con Python un lenguaje bastante conocido y que vale para mas cosas que solo en engine.

    Primer vídeo son los 1100 proyectos que hay escritos con PyGame:

    Una demo de un juego que anda haciendose en PyGame:

    Ventajas: Python, bastante estandarizado, muy maduro con lo que hay muchos ejemplos y hay incluso documentación (no oficial) en español.
    Inconvenientes:Python (si no lo dominas al 100% como el que escribe), “”lento”" (eso dice por ahí las malas lenguas), poca penetración en consolas…dicese GP2X.

  • Löve engine basado en el joven lenguaje de script Lua (link a la wikipedia), al igual que la Lua este engine es bastante nuevo (creo que comenzó su andadura por el 2007) y por tanto aunque esta bastante estables todos los conceptos, apenas hay documentación (la oficial…esta un poco a medias hay funciones que no sabes que retornan por ejemplo jajaja) y apenas ejemplos…olvidaos de documentación en español. Pero este es un engine, engine que abstrae mucho trabajo (que ya esta hecho en el engine) como la gestión de físicas (todavía ando intentando comprenderla), esta muy estructurado el código (no es identación obligatoria como Python) por ejemplo tienes que rellenar en el main.lua 3 funciones, load (ahí cargas los ficheros y haces otras cosas), update (la que se ejecuta con cada frame) y draw (que es la que dibuja en cada frame).

    Apenas hay vídeos:

    Ventajas: Lua como Python aunque es bastante nuevo el lenguaje es un lenguaje que puedes usar en otros ámbitos, engine bastante completito, simple de programar y rápido.
    Inconvenientes:Lua (si no lo dominas al 100% como el que escribe), bastante joven es decir apenas documentación y ejemplos.

  • Fenix o el actualizado fork y con mas vida Bennu, primero que decir, su historia, es un engine muy muy viejo (aunque desde mi punto de vida muy poco maduro) comenzó como un clon libre del DIV (link a la wikipedia) un engine español privativo de los 90. Hay multitud de proyectos que usan Fenix/Bennu y esta muy extendido en el mundo de la GP2X, Dreamcast… La documentación pues si os digo la verdad nunca la he buscado. Pero el principal problema es que no se basa en un lenguaje genérico porque se basa en una mezcla de Pascal/C, y porque es un problema porque es “”perder”" tiempo aprendiendo un lenguaje que solo puedes usar con Fenix/Bennu, frente a aprender, programar durante largo tiempo en los otros caso Python o Lua te da dotes para usar tus habilidades en otros sitios. Ademas el código que leído de proyectos de Fenix/Bennu, el usar su propio lenguaje no simplifica la labor, frente por ejemplo a Löve que te simplifica mucho la vida. Pero bueno ahora pasen trolls por los comentarios jejeje…no hombre es broma, esta bien el Fenix/Bennu para hacer videojuegos.

    Ventajas: proyecto viejo, muchos ejemplos y mucha comunidad hispana, consolas porque mola ver tu videojuego en una consola.
    Inconvenientes: Lenguaje no genérico, percepción de poca comunidad internacional.

Y eso es todo amigos, yo ando últimamente pegándome con el Löve y esto picandoles a los webmaster para que metan en el wiki mas idiomas ;) .

Actualización: Gracias a Divido nos ha dado otro engine 2D basado en java http://slick.cokeandcode.com que incluso se puede hacer aplicaciones multiplataforma basadas en java.

  • Share/Bookmark

PyGame la alternativa seria

Viernes, 17 de Marzo de 2006

A rey muerto, rey puesto y en el mundo del software libre, ya llevabamos arrastrando un cadaver mucho tiempo. Ese cadaver no es otro sino que:


Si efectivamente Fenix, supuestamente la madre de todos los proyectos (nunca mejor dicho para cuando es lenguaje-kit de desarrollo), basicamente iva a ser un clon libre de DIV2. Y para los que no son tan perros viejos, DIV2 no es un divx pai, era junto con el chupachus y el futbolin uno de esos grandes inventos patrios (tambien el DIV1 pero triunfo el 2), el DIV2 era una mezcla entre kit de desarrollo de videojuegos y lenguaje de programacion, un lenguaje de programacion parecido al Pascal con alguna cosa nueva por ahi, fue el sueño de cualquier jonko de los videojuegos la potencia programar pero sin los suplicios que por aquellos tiempos todavia existian de tirar de ensamblador o directx a cual mas porculero para iniciar la pantalla y trabajar con ella. La cosa no era moco de pavo, yo visto verdaderas obras de arte que podian haber pasado por videojuegos profesionales y superarlos a estos, y era un lenguaje medianamente potente que permitia casi sin conocimientos de programacion hacer alguna milonga…mas o menos como con el basic cuando eramos crios con nuestros spectrum. Hay que decir que aun sobrevive una amplia comunidad en internet de programadores de div2.

He te aqui que el DIV2 se estaba desvaneciendo cuando el movimiento del software libre comenzaba a tener fuerza, entonces aparecio otro muchacho español que dijo “pues vamos hacer un clon del div2″ y se empezo el proyecto del Fenix que iva ser un clon hipermejorado del div2, yo recuerdo de verlo en tiempos hace en un portatil de un ilusionado APG (desarrollador de Gnome), la cosa pintaba bien. Pero con el paso del tiempo este proyecto al igual que paso con el DIV2, ha ido desvaneciendose, en varios puntos, la pagina del proyecto que es la cara que refleja el alma de cualquier proyecto esta desactualizada, en español (solamente) y con errores (links rotos y demas). Despues hay mil ports unonificiales para gp32, dreamcast ydemas arquitecturas que aunque en principio no tengan nada de malo, en cambio pueda ser beneficioso, si el proyecto principal no los asimila en el fork principal o les ayuda a que tomen fuerza o los conduce para mantener la calidad del proyecto original, pues se queda en eso, en nada. Despues el proyecto esta engordando con añadidos y añadidos, dejando cosas a medias como la compatibilidad con DIV2 ademas de otras cosas. Y sumale a eso que llevan casi un año sin sacar una version nueva. Eso claramente es desvanecimiento del proyecto, pese a que en el foro hay algo de movimiento. Tambien hay un comunicado oficial (nose cuanto) que dice que se estan centrando en Fenix2.0 que va ser ultra ligero, ultra modular y rescrito desde cero…sabio camino pero costoso.

Aparte de Fenix, hay otras alternativas no libres como DarkBasic que es un pseudo qbasic para directx, el cual frente al DIV2 tiene mucha mas potencia bruta grafica pero es muy bruto programar para el, yo fui uno de los que se gasto sus 10.000pts de antaño cuando aparecio emocionado de encontrar el sustituto al DIV2, lo intente domar pero al final desisti, es muy de masocas, merece mas programar a mano.

Y bueno como tambien queda la alternativa de programar a pelo, usando unas buenas librerias, es decir libSDL.

Pero volviendo a la frase de inicio del articulo, a rey muerto, rey puesto, la alternativa mas seria a un kit de desarrollo de videojuegos que sustituya a DIV2 y o Fenix. Ese algo con el cual cualquiera puede hacer el videojuego de sus sueños (o por lo menos intentarlo), vamos ese algo con el cual el tipico usuario medio, no tenga que sufrir (o disfrutar) de aritmetica de punteros, que ni siquiera sepa programar, vamos el tipico nivel de programacion que teniamos de crios cuando aporreabamos el teclado de nuestro quedido spectrum. Ese algo es:

Que basicamente son una capa de abstraccion mas sobre las SDL, o como dijo mi colega alfayate “ohh dios otra capa mas de abstraccion”. Pygame usa Python un lenguaje interpretado muy muy potente pero muy sencillo y por supuesto usa las omnypresentes SDL ademas de otras librerias (que nose porque no mirado :P ), simplificando el trabajo de todas estas con su propia capa. Total merece hecharle un vistazo a Pygame, ademas creo que ya funcionan los proyectos de pygame en gp2x, ahora no estoy seguro al 100% pero creo haber visto algo por la red sobre esto.

De entre todos los kit de desarrollo/lenguajes de programacion, Pygame destaca en que se sigue actualizando, es muy modular, es muy muy potente….porque claro es Python, hay mucha documentacion y es software libre. Y por supuesto la curva de aprendizaje es suave.

  • Share/Bookmark