Notxor tiene un blog
  • Inicio
  • Categorías
  • Tags
  • Archivo

Compilando un juego de Löve 2D

A raíz del artículo de ayer en este blog, hay quien me ha preguntado cómo se compila un juego para el game engine Löve 2D. Aunque en realidad, no sería correcto llamar a ese proceso compilar, lo dejaremos así para no liarnos con tecnicismos –que por otra parte a mí también se me pueden escapar matices (recuerdo que soy sólo un psicólogo aficionado a la tecnología)– y nos pondremos manos a la obra, porque la cosa no puede ser más sencilla.

Generar el fichero juego.love

Supongamos que tenemos ya nuestro proyecto realizado y lo queremos empaquetar en un fichero en formato .love para distribuirlo a nuestras amistades, por ejemplo. Tenemos todo nuestro proyecto en un directorio con sus correspondientes subdirectorios con imágenes, recursos y demás cosas, tal que:

 juego/imagenes/personaje.png
 juego/imagenes/obstaculo.png
 juego/main.lua
 juego/conf.lua

Lo único que debemos hacer es empaquetar todo el proyecto dentro de un zip con extensión .love. Supongo que en windows utilizarán alguna herramienta tipo WinZip, en GNU/linux yo hago en el mismo directorio:

 $ cd proyectos/juego
 proyectos/juego$ zip -9 -r juego.love .

Atención porque esto lo que hace es comprimir todo el directorio y subdirectorios dentro del zip, pero hay que tener cuidado y no comprimir el directorio también. En ocasiones, con herramientas gráficas es posible que se seleccione el directorio también y Löve 2D no encontrará los ficheros. La estructura dentro del zip debe ser:

 imagenes/personaje.png
 imagenes/obstaculo.png
 main.lua
 conf.lua

Y con eso ya tenemos empaquetado nuestro juego. Ahora sólo debemos lanzarlo, arrastrando el fichero al icono, haciendo doble click o, simplemente, utilizando la línea de comandos:

 $ love juego.love

Producir un ejecutable

Para la pregunta de si se puede producir un ejecutable que distribuir, pues sí: se puede, pero hay que tener varias cosas en cuenta:

  1. Me estás preguntando por windows y es un sistema operativo que no utilizo ni tengo uno a mano. Así que no puedo comprobar mis aseveraciones y deberías acudir a la documentación de Löve 2D.
  2. Para android he visto que también se puede distribuir una app pero necesitas tener instaladas las herramientas pertinentes: SDK y demás. Así que explicaré cómo he hecho para cargar el paquete .love en la tablet.

Primero lo del ejecutable

Para crear un ejecutable sólo hay que poner el fichero .love creado detrás del ejecutable. En GNU/linux la cosa es sencilla:

 $ cat /usr/bin/love juego.love > juego
 $ chmod +x juego

En GNU/linux como se puede ver no puede ser más sencillo. En windows es un poquitín más complejo pero sólo por cuestiones estéticas. El comando (sí, tendrás que lanzar una terminal en windows) es:

 copy /b love.exe+juego.love juego.exe

La parte estética a la que me refería antes es que eso sólo crea el ejecutable, al que debes añadir las librerías necesarias, como la de Lua, las de SDL y alguna más. Además si quieres cambiar el icono de la aplicación tendrás que recurrir a herramientas como resource hacker.

También hay que recordar que es buena política incluir en la distribución un fichero conf.lua con al menos el contenido de la versión de Löve 2D que se necesita para que el juego funcione correctamente. Por ejemplo:

function love.conf(t)
    t.version = "0.10.1"
end

Aunque esto sea menos necesario en una distribución de windows porque se supone que lo acompañas con las librerías que necesitará... pero nunca se sabe.

Lanzarlo en android

En android como ya he dicho también se pueden generar aplicaciones con este game engine pero necesitas el SDK de google y algo más de trabajo –aunque tampoco resulta, según la documentación, muy complicado–. Pero mientras puedes ir haciendo otras cosas, como instalar la apk para android, que se puede descargar de la página web del proyecto Löve 2D. En ese sitio puedes descargarte el fichero .apk directamente. Para instalarlo recuerda que tienes que configurar android para que acepte aplicaciones de terceros. Algo que ya tendrás hecho si utilizas también repositorios como f-droid. Si no es así, también la puedes descargar de google play. Lo que te sea más cómodo.

Una vez tienes instalado en tu móvil o tablet el intérprete sólo tienes que copiar allí, en algún sitio el fichero .love que has generado. Lo puedes hacer con un cable usb desde el ordenador, subiéndolo a algún servidor y descargándolo desde android, etc.

Luego sólo tienes que ir, con algún gestor de archivos para android –yo estoy utilizando amaze para esas cosas– y abrirlo. Para ello es mejor utilizar la opción «abrir con...» y seleccionar la aplicación Löve, porque es posible que el sistema lo reconozca como el zip que es e intente descomprimirlo o abrirlo con otras herramientas.

Conclusión

Todo, y mucho más, está en el wiki del proyecto de Löve, incluso la documentación de los distintos módulos en varios idiomas. Como game engine 2D tiene bastantes capacidades de las que no he hablado. Por ejemplo en el artículo de ayer, el código, utilizaba un módulo de físicas para simular el funcionamiento de un péndulo doble en el ejemplo. También hay módulos para sonido, para pantallas táctiles, para joystick (o ratón, teclado...).

Además, la distribución de cualquier aplicación o juego se hace de una forma sencilla. Los paquetes son fáciles de hacer y generar un ejecutable no depende de complejas instrucciones de compilado, ni makefiles, ni ninguna de esas cosas que a los no programadores les parecen magia arcana. Así puede ser, creo, un game engine para meterse en temas de programación de juegos para gente que está empezando:

  1. Utiliza un lenguaje interpretado, Lua, del que se puede encontrar mucha información para aprender, incluso en español.
  2. No necesita complejos IDE's con miles de opciones. Cualquier editor de texto nos sirve. Emacs tiene modos para Lua y Löve, por ejemplo.
  3. La documentación es extensa y completa (en inglés), pero hay proyectos de traducción de la misma a distintas lenguas. Algunos módulos la tienen traducida ya al español. En el caso en que el idioma sea un problema.
  4. Hay toda una comunidad detrás en los foros y como sucede en muchas comunidades formadas al rededor de proyectos de software libre está formada por gente amable dispuesta a ayudar a los novatos.

Y con esto y un bizcocho, creo que he respondido las preguntas que me habéis hecho. Podéis seguir haciendo más, aunque no sé si seré capaz de contestar, porque tampoco he utilizado esta herramienta más allá de algunas pruebas que he hecho.


  • « Löve-2D un Game Engine en Lua
  • Charla sobre seguridad en las comunicaciones »

Publicado

El lunes 2017-05-01 10:00

Categoría

Programación

Etiquetas

  • cajón desastre 71

Enlaces

rss feed Diaspora GNUsocial Creative Commons License

  • «Notxor tiene un blog» por Notxor se licencia como Attribution-NonCommercial-ShareAlike 4.0 International.
  • Powered by Pelican. Tema retocado, basado en: Elegant by Talha Mansoor