Instalación de un juego en Linux

Started by osk, August 01, 2009, 06:14:28 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

osk

Hola.
Estaba dándole vueltas a qué ficheros tendría que incluir si quiero pasarle un juego a alguien que tiene Linux sin nada más. En Windows simplemente tengo que copiar todas las dll de la carpeta "externals" y luego las librerías y módulos que haya utilizado de las carpetas "libs" y "modules", respectivamente (además claro está de los recursos,compilador/intérprete, etc). Pero en Linux no lo tengo tan claro.

1º) ¿Las librerías de /usr/lib/bgd/lib y los módulos de /usr/lib/bgd/module las puedo copiar a la misma carpeta de mi juego, y simplemente así ya funcionarán en otra máquina?

2º)¿Y qué pasa con las "externals" que en Linux se han de haber instalado previamente (SDL, SDL_Mixer, etc...)¿Cómo se puede hacer para instalar todas esas dependencias previamente (o al menos, comprobar que ya estén) a la instalación de nuestro juego? Porque según veo estas dependencias no las puedes empaquetar así como así con tu juego como se hace con Windows...

Muchas gracias.

SplinterGU

podrias ponerleas y forzar su uso con la variable LD_LIBRARY_PATH. he incluso algunas con LD_PRELOAD... pero seguramente los expertos en linux podran darte mas ayuda.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

DCelso

pueden estar todas en la misma carpeta del exe y del dcb siempre y cuando en el ld_library_path tengas insertado que busque en el directorio actual, eso se hace insertando un punto entre puntos y comas, por ejemplo: LD_LIBRARY_PATH=/usr/lib;/usr/local/lib;.;/otrodirlib.

También para evitar que el usuario toque su sistema podrías hacer un script que ejecutara el programa e insertara lo necesario en el library path.
ejemplo de runme.sh

#!/usr/bash
LD_LIBRARY_PATH=.;$LD_LIBRARY_PATH
bgdi juego.dcb
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

SplinterGU

Download Lastest BennuGD Release: http://www.bennugd.org/node/2

osk

Ah...muchas gracias. Ya veo.

Pero, la segunda cuestión...¿cómo puedo incorporar todas las dependencias externas de Bennu a mi juego para evitar que el usuario las tenga que tener instaladas previamente? Que yo sepa no existe un "SDL.so" ó un "libpng.so" para incorporarlas al paquete, tal como se hace en Windows.

Graacias de nuevo.


DCelso

A ver, no es lo suyo no instalarlos, pero sí que deben de existir los .so de SDL y png.
Por ejemplo en debian, el paquete libsdl instala el libSDL-1.2.so.

Así que en cualquier otro linux será parecido, tendrás que ver la lista de archivos que instala el paquete libSDL o libPNG.

A las malas, puedes bajarte el código de libSDL y libpng, hacer configure && make y copiar los .so generados.

Lo ideal en linux y en windos es que se instalen las libs de SDL y png, se instale el programa bennugd, y distribuir los juegos con el dcb y con un runme_windows.bat y un runme_linux.sh en los que se ejecute "bgdi  nombredemidcb" para que el sistema se encague de buscar el ejectuable y las librerías necesarias.
ya que así haces el juego accesible tanto a usuarios linux como usuarios windows y no repites el envío constante de información redundante de binarios y librerías para cada juego compartido.

Ahora que también hay soporte wiz, quizás también se podría hacer otro script adicional llamado "runme_wiz" con sinstaxis entendible por el sistema operativo de la wiz que también ejecutase el "bgdi nombredcb" y así ampliar nuestros juegos a usuarios wiz. Ahora bien, no entiendo si esto sería factible porque no he indagado mucho en el tema de la wiz al no tener una en mi posesión :D.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

josebita

Puedes dar por hecho que el usuario tiene la libpng y la libsdl, porque se instalan por defecto en casi cualquier linux moderno.
Si quieres un ejemplo de juego empaquetado para linux, mi karaoke lo hace:
http://www.megaupload.com/?d=NGB3XM6O

FreeYourMind

Quote from: DCelso on August 02, 2009, 01:58:30 AM
pueden estar todas en la misma carpeta del exe y del dcb siempre y cuando en el ld_library_path tengas insertado que busque en el directorio actual, eso se hace insertando un punto entre puntos y comas, por ejemplo: LD_LIBRARY_PATH=/usr/lib;/usr/local/lib;.;/otrodirlib.

También para evitar que el usuario toque su sistema podrías hacer un script que ejecutara el programa e insertara lo necesario en el library path.
ejemplo de runme.sh

#!/usr/bash
LD_LIBRARY_PATH=.;$LD_LIBRARY_PATH
bgdi juego.dcb


No he entendido muy bien, cual seria el script exacto, para que tire por ejemplo del juego que este en un usb, y que en la misma carpeta tenga todos los ficheros del bennu y de nuestro juego, SIN que dependa de nada instalado en Linux ni de permisos, ponme el ejemplo si puedes, imaginando que en esa carpeta los ficheros de bennu (.so y compilador) estan dentro de una carpeta llamada libs.

He tenido problemas al intentar compilar en Linux, aparte de los caracteres que no reconoce (por el formato del texto) y que no son visibles, y aparte de eso no me encuentra el 'mod_sound'.

A que se debe esto ? He visto que mod_sound.so si existe, y tal como en Windows no existe una libsound.so (.dll), sólo el modulo.

osk

Supongo que será porque no tienes la SDL_Mixer instalada. Ésa librería es la que se encarga del sonido.

FreeYourMind

Pero en Windows la tenia antes de descompactar Bennu ?
No es supuesto que todo lo que viene Con Bennu es suficiente ?

Si hay dependencias tengo que conocerlas todas, sino me pongo a distribuir el juego y despues no funciona por falta de algun archivo...

Drumpi

Si te fijas, en windows, en externals están las libs de SDL, por lo que no necesitas instalarlas.
Aun no he mirado en Linux, pero si no están, toca instalarlas (aunque cualquier linuxero medio debería saber añadirlas ;D).
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Brieree09

Convoco a los guruses de Linux que nos den una clase de cуmo instalar el conocido sistema.
Algo fбcil para que todos entendamos.
Propongan una instalaciуn desde cero con Linux ъnicamente, y otra con una particiуn de disco donde convivan amistosamente Windows y Linux.
Pбginas de descargas. Descargas de programas que suplanten a Office y esas cosas.
Se que mucha de esta informaciуn esta desparramada por el foro y quisiera reunirla en este thread.
Ea chavales a aportar

Windgate

Ya hay un hilo por ahí sobre como crear un paquete con toda la "maquinaria" (dll/so)... De hecho recuerdo que ya subieron un ejemplo, siento no tenerlo a mano pero últimamente sólo uso Linux para guardar datos importantes.

Incluso tenía por ahí una versión de juego con todas las dll y un .bat para correrlo en Windows y todas las so y un .sh para correrlo en Linux, pero no lo encuentro para dejártelo aquí, sorry... En el hilo del que te hablo tiene que estar la info.
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

Drumpi

Wind, creo que está pidiendo info de cómo instalar Linux, no Bennu.
Para eso hay muy buenos tutoriales en ubuntu-es.org, y no te preocupes por los programas que sustituyen otros de windows, ya vienen pre-instalados la gran mayoría.

Y en cuanto lo tengas, busca en el foro, en desarrollo creo, la PPA de josebita, o en su firma, que viene un completo tutorial de los pasos a seguir para instalar Bennu (yo lo hice sin tener ni repajolera idea).
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Windgate

La info que daría yo para instalar Ubuntu es:

1) Mete el CD de Ubuntu
2) Reinicia
3) Sigue los pasos

Es muy fácil, en serio, apenas hace un par de años que me hice ubuntero, y si no usa un tuto cualquiera, que no es tan difícil como se piensa en un principio, es como instalar un XP sólo que legal ;D ;D ;D
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es