BennuplayNet

Started by l1nk3rn3l, July 19, 2010, 02:11:55 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

l1nk3rn3l

nueva version , y el chat esta mejorado....


--1.3
  * nuevo ejemplo de chat muy basico
  * nuevos ejemplos hard
  * nueva variable BNP_NOT_ALLOW_CONN
  * nueva funcion BNP_KICK_CLIENT


Mr Matsusaka

KICK_CLIENT premio a la nombre de la funcion mas explicito del año  ;D

Windgate

A los que no la hayáis probado, os recomiendo que la probéis, es tan sencillo como correr el server y correr unos cuantos clientes, se comunican a la perfección y sin retardo.

Yo lo bajé temiendo alguna dependencia, pero todo funciona a la primera y el código está bien espaciado y sencillo de entender, si os interesa el tema de conexiones recomiendo echarle un buen vistazo, seguro que termináis dando karma xD
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

FreeYourMind

Vale pues le doy uno ahora, Y 10 CUANDO LA UTILIZÉ :)

Prg

Hola, yo ya lo probé. hice un gato pero sólo para dos personas en interconexión. Que entre entre los ejemplos básicos, super básicos.
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

l1nk3rn3l

nuevo ejemplo tres en linea disponible

l1nk3rn3l

gracias prg pronto incluire tu ejemplo



---
recordar usar set_fps(0,0)

para ver el rendimiento real...

Windgate

He planteado la situación de comenzar un juego online 3D con tu librería Link, su nombre es Bullet y no quiero entrar en detalles de su jugabilidad por ahora. Antes de comenzar con diagramas y protocolos de comunicación cliente/servidor (Los tengo en mente) he probado a hacer una buena organización de directorios y mi primer problema lo he encontrado a la hora de incluir tu librería, me explico:

Si pongo la bennuplaynet.dll en el subdirectorio /dll tengo un error de compilación que dice: Unknown identifier BNP_MAXCONN

Aquí te dejo el link a las 2 versiones. La primera (0.0.1) hace un INCLUDE con la bennuplaynet.dll en el mismo directorio que el .prg y compila con total normalidad pulsando F6 desde el Notepad (Probadlo), mientras que la segunda (0.0.2) hace un INCLUDE de dll/bennuplaynet.dll y me saca el errro anterior...

DESCARGAS: http://trinit.es/DescargaDirecta/BennuOthers/BennuPlayNet/Bullet

Me interesa mucho tu librería l1nk y ya sabes que me comprometo a testearla a fondo, hacer ejemplos funcionales en código abierto e incluso mejorar la documentación y hacer tutoriales ^^ pero este primer error me ha matado.

También he hecho alguna prueba previa con varios clientes y he visto que el ejemplo oficial tiene problemas para comunicar a partir de los 6/8 clientes conectados, si tienes alguna versión mejorada, por favor, súbela.

Te debo unos karmas ^^
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

Es posible que se deba a que no está en un directorio accesible mediante PATH ¿Has probado a ponerlas junto a las DLL de Bennu, o a ejecutarlo con un script que añada la carpeta /dll al PATH?
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

Quote from: Drumpi on October 24, 2010, 01:25:17 AM
Es posible que se deba a que no está en un directorio accesible mediante PATH ¿Has probado a ponerlas junto a las DLL de Bennu, o a ejecutarlo con un script que añada la carpeta /dll al PATH?

Con la dll en las de Bennu funcionaría, pero es que lo quiero para que la gente pueda descargarlo y usarlo sin "movidas" :P
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

Pues eso, haz un .bat con "set PATH=/direccion/a/tu/dll;%PATH%" y que invoque a BGDI o como lo tengas hecho ;)
Así no necesitas modificar la variable a mano, ni configurarlo ni instalarlo y todo queda como antes tras terminar el script.
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

Pues el problema sigue igual y francamente no lo entiendo... Ahora mismo mi .bat hace:

@echo off

set PATH=/dll;%PATH%

bgd_win\bgdc.exe client.prg

pause

bgd_win\bgdi.exe client.dcb

pause


En el subdirectorio /dll se encuentra la librería bennuplaynet.dll, pero estando ahí no la localiza, sólo la localiza si la tengo en el mismo directorio que el .prg principal.

Como os dije antes, no es necesario ni mirar el código. Simplemente observad lo que pasa al pulsar F6 para compilar y ejecutar desde el Notepad (Windows) respectivamente en una versión y en otra del siguiente programa Bennu:

http://trinit.es/DescargaDirecta/BennuOthers/BennuPlayNet/Bullet/

Como veréis la única diferencia es si la bennuplaynet.dll está en el mismo directorio que el .prg principal o si está en un subdirectorio.

De momento voy a seguir trabajando con la dll en el mismo directorio porque sólo así consigo que funcione, pero me parece bastante sucio cuando el resto de las dll las tengo en el subdirectorio /dll y las pilla a la primera ???
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

Windgate

#57
Bien, he dejado la cosa bastante usable, partiendo del ejemplo oficial he hecho lo siguiente:

1) Añadir un par de .bat para arrancar server o client respectivamente.
2) Separar en módulos teniendo separados módulos comunes, del cliente o del servidor.
3) Mejorar el tabulado y añadir algún comentario y cabecera de descripción, aunque todavía me falta "limpiar" alguna cosa.

De momento lo quiero dejar como plantilla base para CUALQUIER proyecto que use la librería, a continuación comenzaré a sacar la plantilla base para Bennu3D y alguna cosilla más, os mantendré informados ^^

DESCARGA: http://trinit.es/DescargaDirecta/BennuOthers/BennuPlayNet/Bullet/Bullet%200.0.3.zip

EDIT: Maldita sea, ¿Cuál es el puerto por defecto? He visto que BNP_PORT vale 45000 pero abriendo ese puerto no consigo conectar desde un PC remoto...

EDIT 2: BNP_PORT es el puerto y es 45000 por defecto, funciona ok, lo he probado con Sandman, yo en España y él en Alemania, latencia próxima a 0 y sin pérdida de paquetes... BRUTAL!
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

SplinterGU

muy buena noticia...

karma por la prueba y un nuevo karma a link por la lib
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Windgate

DESCARGA: http://trinit.es/DescargaDirecta/BennuOthers/BennuPlayNet/Bullet/Bullet%200.0.4.zip

La nueva versión totalmente bien tabulada y comentada hasta la saciedad, eliminando variables globales y campos de estructuras de datos que no se usan. El jugador es un módulo independiente y las réplicas otro. Como plantilla 2D es jodidamente perfecto, cualquier añadido estaría de más así que lo siguiente que haga serán plantillas específicas para ciertos tipos de juego.

Ningún módulo, por muy espaciado y comentado que esté, incluyendo varias líneas de cabecera, supera las 40 líneas de código :D

Espero que lo disfrutéis tanto como yo, humanos.
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