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.
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.
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
;)
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.
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.
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
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.
Supongo que será porque no tienes la SDL_Mixer instalada. Ésa librería es la que se encarga del sonido.
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...
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).
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
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.
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).
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
Buenas, he llevado una pequeña sorpresa.
Ya tengo el juego rulando en Linux, pero el sonido va un 30-40% mas lento que en Windows y en la Wiz.
Utilizo una imagen virtual de Ubuntu, y he instalado las siguientes versiones:
libsdl-mixer1.2_1.2.6-3_i386.deb, libsdl-mixer1.2-dev_1.2.6-3_i386.deb
despues las actualize a la ultima version (1.2.8-5), y lo mismo....
HELP please, el juego es compilado en Windows (SDL Mixer 1.2.7.0), pero en la Wiz no tengo problemas la cual tambien se basa en Linux...
¿Cómo has instalado los paquetes?.
¿Qué versión de Ubuntu usas?.
Pinchando en ellos ;)
Despues los actualize en el gestor de programas, que tiene opcion de instalar la versión más reciente y te la descarga y substituye.
El problema surge con ambas versiones.
Ubuntu Jaunty Jackalope 9.04
Bien, esa no es la forma óptima de instalarlos.
Deberías ir a "Sistema->Administración->Gestor de paquetes synaptic" buscar el nombre del fichero (sin número de versión) e instalarlo de ahí.
A parte de eso, el audio debería funcionar bien. Puede que sea cosa de que estés ejecutando el juego en una máquina virtual...
Si quieres pásame un enlace al juego en cuestión y lo pruebo en mi ordenador....
El juego sólo sale dia 06/12/09 ::)
Bueno si me confirmas que es problema de la instalación, no me afectaria, ya que es problema del usuario y el modo de instalar las sdl en su maquina.
Lo que podemos hacer es si te comprometes, te envio el juego antes de publicarlo Domingo y si te funciona bien tendriamos el visto bueno, o si no pues intentarlo arreglar antes...
P.S: El update la hice de esa forma, en el gestor de paquetes... La dependencia libsdl-mixer1.2-dev_1.2.6-3_i386.deb la instalo descargandolo de internet, pero el fichero local al que pinche para instalar fue sólo este: libsdl-mixer1.2_1.2.6-3_i386.deb
Sí, hombre, yo no digo nada a nadie :)
Es probable que el problema sea sólo de la máquina virtual, pero así nos aseguramos :)
Vale, si llego a tener todo listo sabado ya te comento, te lo envio, lo pruebas y ya veremos :P
Ok :)