Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: haitortiya on February 29, 2012, 09:18:29 PM

Title: Control de contenido en la nube
Post by: haitortiya on February 29, 2012, 09:18:29 PM
 Bueno pienso que el titulo lo dice todo, pero voy a intentar aclararos todas mis dudas para ver si alguien puede resolvérmelas,
son algo complicadas, espero vuestra ayuda.

He tenido varias preguntas respecto a la conexión que puede llegar a tener Bennu con la web, ya que como vengo diciendo
desde hace tiempo mi proyecto actual se basa en una comunicación totalmente Online. ¿Pero Bennu es capaz de interactuar
junto a una Pagina Web o incluso a Hosting Web?

Mis dudas (Y su solución si puede ser):
        - Me gustaría saber si se puede, y como, saber si existe un archivo (exists,file_exists...) en una dirección HTML del estilo:
          http://haitortiyagames.com.ar/juegos.html
        - ¿Se puede llegar a descargar archivos desde la nube? Por ejemplo, algún get... O algo así, para descargar los archivos
        - ¿Se pueden incluir LINKS (Direcciones Web con Hipervínculos) dentro del entorno de Bennu?

Gracias por leer mis dudas y por la ayuda. Un saludo.


Title: Re:Control de contenido en la nube
Post by: Arcontus on February 29, 2012, 09:42:08 PM
Sobre descargar ficheros, yo creo que si se puede. Tienes que hacer un socket en ambos extremos y mediante esa conexión transfieres el binario. El cliente debería generar el archivo correspondiente con los binarios que recibe por el socket. Pero vamos, es como pasar un entero por la red y guardarlo en un fichero.

Respecto a la pregunta de los LINKS, no tengo ni idea de si se puede hacer, pero yo también estoy interesado en ella. Por lo pronto estuve investigando por mi cuenta pero no fui capaz de encontrar ninguna forma de hacerlo.

Por último, respecto a la primera pregunta que haces, yo más bien haría lo siguiente:
1. Socket contra el servidor de turno
2. Descargar un fichero que indique los archivos más nuevos, o lo que tienes publicado en el servidor.
3. Con la info del paso 2 descargamos lo que sea necesario.

Espero haberte ayudado.

Saludos!
Title: Re:Control de contenido en la nube
Post by: KeoH on March 01, 2012, 12:10:28 AM
Creo q uno de las ultimas librerias que se ha currao Josebita "mod_curl" trata precisamente de hacer eso. Bajarse archivos de la red http://forum.bennugd.org/index.php?topic=2846.0 (http://forum.bennugd.org/index.php?topic=2846.0)
Title: Re:Control de contenido en la nube
Post by: haitortiya on March 01, 2012, 03:45:52 PM
Primero de todo, gracias Arcontus y KeoH por contestar.

Tu idea, Arcontus, la tenia pensada, pero no se como hacerlo con Bennu, ya que las librerias de transmision de paquetes, como
bennuplaynet, solo funcionan entre codigo Bennu, a lo mejor no he entendido muy bien tu respuesta, pero si lo he echo, podrias
ponerme algun ejemplo en codigo Bennu, y que hago en el servidor ( Uso Apache y PHP 5 ). Ya que mi duda es: Bennu no es
compatible con HTML5, Ajax, etc.. no? :S

Gracias KeoH por el Link, mirare haber que tal me funciona.

Gracias a los dos, un saludo
Title: Re:Control de contenido en la nube
Post by: Erkosone on March 01, 2012, 08:16:13 PM
Con cURL puedes, Josebita la ha preparado para windows, macos e iOS, simplemente la inicializas, mandas descargar el file desde una dirección web y listos, es muy sencilla, incluso en el hilo de la curl para bennugd josebita montó un pequeño ejemplo que se descarga de una web un archivo .png y lo usa ingame.


Busca el hilo en la sección 'extensiones', te va a servir seguro.
Title: Re:Control de contenido en la nube
Post by: haitortiya on March 01, 2012, 09:08:34 PM
Me ha funcionado perfectamente esa Libreria, gracias por las respuestas, en una tarde de trabajo ( Y de momento ), mi juego
ya descarga automaticamente las actualizaciones. Se actualizara solo cuando haya alguna actualizacion, avisara de que esta
actualizando y se ejecutara con total normalidad.

Gracias a todos, un saludo
Title: Re:Control de contenido en la nube
Post by: Arcontus on March 01, 2012, 09:32:53 PM
Fantastico, veo que entonces te me has adelantado en esa parte.
Yo también tengo que hacer un módulo para mi juego que se baje de una web sus actualizaciones y te he comentao simplemente lo que yo iba a hacer en un futuro. Me alegro de que funcione la idea :)

Saludos!

Title: Re:Control de contenido en la nube
Post by: KeoH on March 02, 2012, 12:02:02 AM
Si, yo también había pensado en hacer eso con la libreria, me alegro de que sirva para eso . Una pregunta para los que habeis hecho esto .. las acutalizaciones para el juego incluyen el archivo dcb?? porq tendras q reiniciar el juego despues de actualizar no? xD
Title: Re:Control de contenido en la nube
Post by: Rein (K´)ah Al-Ghul on March 02, 2012, 12:47:36 AM
la actualizacion se descarga es un archivo comprimido o que?
Title: Re:Control de contenido en la nube
Post by: Arcontus on March 02, 2012, 03:24:57 PM
La actualización puede bajar un archivo comprimido, desde luego. Y si bajas un nuevo motor del juego, pues se tendrá que reiniciar para que los cambios tengan efecto, pero quizas lo ideal es que se trate de 2 ejecutables, 1 que es el juego propiamente dicho y el lanzador del mismo, que es el programa que se encargaría de actualizar al juego. Lo más "complicado" sería entonces actualizar el lanzador, pero bueno, supongo que para esto, el lanzador tendría que llamar a un 3er programa que sea el actualizador y listo.

Simple y a la vez complejo :)
Title: Re:Control de contenido en la nube
Post by: Rein (K´)ah Al-Ghul on March 02, 2012, 03:41:51 PM
Lo mejor no seria que un tercer programa se encargue de las actualizaciones y luego vuelva a executar el programa pŕincipal o el actualizacodr?
Title: Re:Control de contenido en la nube
Post by: haitortiya on March 02, 2012, 05:08:57 PM
Bueno, veo que andais un poco verdes en el tema programacion algunos por aqui, os pongo cual ha sido mi solucion... :)
y muchos os copiais ( jeje ).

Mirad, como bien decis, hay un gran problema a la hora de tener que reiniciar el juego, por que si no los INCLUDE no funcionan,
no hace falta descargarse el dbc, ni nada parecido. Yo he mezclado Bennu con Ms2, lo mas a mano que tenia y cercano a Bennu
en el entorno Windows, en Linux podeis usar algun Script.

Cuando quiero descargar, yo tengo un archivo en mi equipo local que va guardando la actualizacion(1,1.1,1.2,...) Entonces, cada
vez que se inicia mi juego, compara esa actualizacion, con un arcchivo que se descarga de 4kb de el hosting.  Si son iguales no hace
nada, si es mayor, descarga otro archivo, llamado "Actualizacion" y este lleva dentro todo lo que hay que descargar en la nueva
actualizacion. Una vez descargado todo, lo que hace es reiniciar, como? Pues muy facil, aqui mezclamos el Ms2 y el Bennu:
Cuando todo este descargado, creamos un archivo llamado por ejemplo "actualizacion_esperando", y despues de esto
tiramos un exit. Para que esto funcione el codigo con el que se llama al juego (yo uso un exe basado en un bat) deberia
quedar asi:

echo off
"LLamamos al juego"
if exist actualizacion_esperando.dat goto :actualizacion
:actualizacion
del actualizacion_esperando.dat
call juego.bat

Espero haberme explicado bien, y que os haya quedado mas o menos claro la forma en la que yo he realizado el codigo.

Un saludo