Bennu Game Development

Foros en Español => Extensiones => Mensaje iniciado por: l1nk3rn3l en Julio 19, 2010, 02:11:55 pm

Título: BennuplayNet
Publicado por: l1nk3rn3l en Julio 19, 2010, 02:11:55 pm
es un prototipo de lo que sera la libreria de red definitiva para bennu
http://code.google.com/p/otherfenixbennuprojects/downloads/list

(http://hosting11.imagecross.com/image-hosting-47/5968screenshot.JPG)


Título: Re: BennuplayNet
Publicado por: laghengar en Julio 19, 2010, 03:23:49 pm
muy bueno, karmita sin haberlo probado, que no doy casi nunca y esta lo merece  ;D
Título: Re: BennuplayNet
Publicado por: osk en Julio 19, 2010, 03:51:18 pm
Oh, qué osado! La librería "definitiva" de red! Después de tantos años...ojalá tengas razón!
Título: Re: BennuplayNet
Publicado por: Windgate en Julio 19, 2010, 10:20:31 pm
Vaya, justo después de habernos devanado los sesos con la Net de Sandman y luego pasarnos a la de sockets para dejar funcionando un servidor concurrente... Ahora tendremos que volver a cambiar ;D

Qué bonita es la informática, guardo tu karma para cuando haya un ejemplo de código funcional, por mínimo que sea :P

PD: ¿Viste l1nk el cliente/servidor con Bennu 3D que hicimos JMP, yo y otro más que no recuerdo su nick?
Título: Re: BennuplayNet
Publicado por: SplinterGU en Julio 19, 2010, 10:59:59 pm
conta un poquito como funciona, describi el api (lista de funciones y que hacen, algunas pocas lineas)

saludos, y gracias por la cantidad de cosas que haces por el proyecto.
Título: Re: BennuplayNet
Publicado por: Prg en Julio 19, 2010, 11:02:20 pm
que sea fácil de usar,
que sea fácil de usar!  ;D ;D ;D

link, karma++ :)
Título: Re: BennuplayNet
Publicado por: Drumpi en Julio 20, 2010, 01:11:29 am
Yo doy un karma de motivación, esperemos que esta sea la definitiva, que no hacemos más que ver cambios, mejoras y demás :P
¡Ánimo!
Título: Re: BennuplayNet
Publicado por: l1nk3rn3l en Julio 21, 2010, 07:38:34 pm
muchas gracias,

bueno , sera facil de usar inclusive mas facil que la de sadman

- funcionaria de esta manera ... + o -

hay la posibilidad de crear replicas en el servidor para los disparos ,
bonus y demas
posibilidad de que el servidor cambie cosas del cliente..
y bueno es que estoy en el diseño y bueno ya tendre algo funcional
es que he estado ocupado con el concurso de wiz

y espero que esta sea la mas usada para proyectos de red...

cuando termine lo de wiz , le dedicare todo el tiempo libre, para
hacerlo lo mas facil que se pueda... al estilo de div2 o mas aun...

inclusive pedire la ayuda para que alguien haga un juego cooperativo
en red , que tanto es tan de moda.. asi sea un bomberman...
o un mario...




Título: Re: BennuplayNet
Publicado por: JMP en Julio 21, 2010, 07:49:39 pm
Genial, otra más!  ;D

animos para que consiguas acabarla, y un karma!
Título: Re: BennuplayNet
Publicado por: l1nk3rn3l en Agosto 29, 2010, 04:05:40 am
http://code.google.com/p/otherfenixbennuprojects/downloads/list

esta lista otra version de prueba , ya es funcional , pero solo
para propositos de prueba...

es un minijuego donde mueves 2 figuras.. solo para ver la funcionalidad...

el nucleo ppal de la libreria ya esta casi listo...

Título: Re: BennuplayNet
Publicado por: l1nk3rn3l en Septiembre 03, 2010, 02:37:46 pm
ya hay algo funcional, podria hacerse un juego sencillo,
puedo decir que es la librería de red mas sencilla de usar , disponible para bennu...


pero claro....... para los mas expertos , habrá funciones ocultas
para operaciones mas complejas...

dentro de poco habra nuevas opciones
como replica de objetos para usarlo como items del escenario(bonus,monedas,armas, )



desearía que la probaran y me dieran sus sugerencias o comentarios para mejorarla..
Título: Re: BennuplayNet
Publicado por: l1nk3rn3l en Septiembre 06, 2010, 03:23:39 pm
a nadie le gusto? es muy basica pero le adicionare
mas cosas , pero aparte.. para que sea facil de usar
para novatos y avanzados

fps? logradas?
Título: Re: BennuplayNet
Publicado por: l1nk3rn3l en Septiembre 07, 2010, 10:00:28 pm
nadie la probo?
(http://4.bp.blogspot.com/_jVnTqywfUQw/TCQMuM_JHII/AAAAAAAABtw/i_BV34OTOt4/s1600/20070610095317-nelson.gif)

Título: Re: BennuplayNet
Publicado por: FreeYourMind en Septiembre 07, 2010, 11:14:51 pm
Yo todavia no, sorry, pero me vendrá bien para las funciones online que quiero para el juego de cartas.
Estoy muy liao :)
Título: Re: BennuplayNet
Publicado por: Mr Matsusaka en Septiembre 08, 2010, 11:05:38 pm
Es que no parece facil de probar. Vamos, que no creo que haya gente con mucha experiencia con el juego en red. Y si a eso le unimos que hacen falta dos ordenadores para probarlo... Aun asi... estoy empezando a sopesar la idea de incluir juego online en el juego en el que estoy trabajando ahora. Se trata de un juego de lucha. Crees que la libreria estaria lista para un juego asi?
Título: Re: BennuplayNet
Publicado por: l1nk3rn3l en Septiembre 09, 2010, 03:11:12 pm
no necesitas 2 ordenadores para probarlo

solo ejecutas en el mismo prg (desde el IDE del bennupack preferiblemente)

y ejecutas el server primero , luego abres el cliente y guala..!!!! puedes hacer las pruebas
que consideres...


me dicen que tal el rendimiento.. que mejorar , etc
Título: Re: BennuplayNet
Publicado por: JMP en Septiembre 09, 2010, 03:24:19 pm
Pues yo lo probe y la pelota que representa al otro avanza a tronpicones y los fps estan a 25 fps

Esta bien aunque el ejemplo es solo para cliente servidor y no he encontrado las funciones avanzadas
Título: Re: BennuplayNet
Publicado por: Mr Matsusaka en Septiembre 09, 2010, 06:30:09 pm
Ya veo ya veo, perdon por decir boludeces xd
Ya lo probe. Bastante emocionante la verdad!

Ya me decidi, voy a incluir juego online en mi juego de lucha. Aunque soy consciente de que voy a tener que luchar bastante contra problemas de sincronizacion y tal, pero puede merecer la pena.

Karma++;

EDIT: Podrias escribirnos un .txt con algo de documentacion con las funciones?
Título: Re: BennuplayNet
Publicado por: l1nk3rn3l en Septiembre 10, 2010, 05:43:29 pm
para mas rendimiento le colocas al inicio
set_fps(0,0) y anda a mas de 700fps

las funciones estan ahi,
las avanzadas pronto estaran disponibles

el juego sólito se sincroniza, no se pierden paquetes... si es alo que se refieres?

Título: Re: BennuplayNet
Publicado por: Mr Matsusaka en Septiembre 10, 2010, 06:07:20 pm
BNP_CONNECT("",players,sizedata)
Que es lo que va entre las comillas? Es el nombre del servidor? Puede el cliente leer los nombres de los servidores disponibles para asi poder elegir una partida? Podemos añadir un password?

netplayer(10,10,100,i) ;
que son esos numeros de entrada?
Título: Re: BennuplayNet
Publicado por: JMP en Septiembre 10, 2010, 06:14:25 pm
no las comillas son la direccion a la que te conectas por lo que si no pones ninguna creas un servidor, el cliente tiene que poner la direccion donde esta el servidor

Título: Re: BennuplayNet
Publicado por: Mr Matsusaka en Septiembre 10, 2010, 06:49:53 pm
Puede ser que yo sea un poco corto y por eso tengo que preguntarte cosas que lo mismo son chorradas. Pero del mismo modo que yo lo estoy haciendo muchos otros directamente pasaran del tema y no van a querer ni probarlo. Principalmente porque hay mucha gente que no sabe ni lo que es un server y un cliente (bueno, esto a lo mejor es un poco exagerado, aunque alguien habra). Por mucho que digas que todo el codigo esta ahi yo veo algunos "magic numbers" de los que no tengo ni idea que quieren decir. Por eso te recomiendo escribirte una pequeña documentacion. Si aun asi no quieres pues nada, pero en mi opinion la gente sera menos reacia a probarlo cuantas mas facilidades les des.

Bueno, al tema.

1. Vale, dejame suponer. Una vez que hemos llamado al BNP_CONNECT ya no necesitamos llamar a ninguna funcion mas, y automaticamente envia los paquetes de informacion que hayamos introducido en el segundo parametro. Me equivoco? O no es asi?

2. Como saber el cliente la direccion del servidor? Mejor dicho, donde esta y que forma tiene esa direccion? De donde lo saco? En el client.prg pone "localhost". Esto quiere decir que solo funcionara en el mismo ordenador, no? Si yo quisiese jugar con, por poner un ejemplo, Drumpi, que pasos tendriamos que hacer para poder conectar nuestros ordenadores?
Título: Re: BennuplayNet
Publicado por: FreeYourMind en Septiembre 10, 2010, 09:02:20 pm
Me alegro que te pelees con el, yo de momento estoy con otras cosas y no tengo mucho tiempo, pero lo quiero utilizar más adelante, así que te doy un karma por ti trabajo adelantado, que seguramente me será despues muy util :)

(http://danielitapaz.com/wp-content/uploads/2009/12/good-karma.png)
Título: Re: BennuplayNet
Publicado por: Mr Matsusaka en Septiembre 10, 2010, 09:26:56 pm
Es que pienso implementarlo en el Total Devastation. Juego online en un juego de lucha seria orgasmico ;D
Y claro, tengo que preguntar cosas para saber hasta que punto me vale para lo que quiero hacer. Al mismo tiempo espero ser de ayuda a JMP para mejorarlo.
Título: Re: BennuplayNet
Publicado por: l1nk3rn3l en Septiembre 11, 2010, 03:12:38 pm
nueva version y aqui un pantallazo del rendimiento , usando varios clientes:

(http://hosting11.imagecross.com/image-hosting-47/5968screenshot.JPG)


puedo decir que es la libreria de red , mas avanzada y mas facil de usar
para bennu...
Título: Re: BennuplayNet
Publicado por: FreeYourMind en Septiembre 11, 2010, 03:26:56 pm
Kaaaaarrrrrrmaaaaaa Up!!!!

(http://89decibeles.com/files/u371/evilmonkey.jpg)
Título: Re: BennuplayNet
Publicado por: Mr Matsusaka en Septiembre 11, 2010, 03:50:39 pm
Muy buena pinta. Karma++  ;)

l1nk3rn3l please, contestame al menos a esta pregunta: de donde saco la direccion del servidor?
Título: Re: BennuplayNet
Publicado por: Windgate en Septiembre 11, 2010, 04:36:22 pm
Acabo de bajarla, le echaré un vistazo en cuanto tenga tiempo y sacaré algunos tests sencillitos, gracias de nuevo l1nk
Título: Re: BennuplayNet
Publicado por: Phoenix en Septiembre 11, 2010, 06:40:57 pm
Mola!! gracias l1nk! Karma UP

He estado trasteando esta tarde con ella y parece que va bastante bien y es sencillota de usar. Mmm, se pueden mandar Strings? Hice ahora un intento y no me las coge correctamente, aunque tampoco se si lo estoy haciendo bien xD.

Mr Matsusaka lo de la direccion del Servidor que te refieres... si estas ejecutando la aplicacion desde tu ordenador la ip del servidor es la de tu conexion, de todas formas para probarlo en red tendrias que abrir también los puertos, no se si te aclare lo que querías o te contao algo que ya sabias xD.

Título: Re: BennuplayNet
Publicado por: Mr Matsusaka en Septiembre 11, 2010, 06:57:42 pm
Si me has aclarado algo, gracias.
Eso que dices de los strings, es precisamente algo que estaba pensando.

Al crear el servidor se deberia poder pasar un nombre para que tus amigos te reconozcan, y la posibilidad de añadir password para que nadie pueda cojer tu partida. Habia pensado en que se podia pasar el nombre con la morcillita de datos que se le pasa (sino se puede pasar strings se pueden transformar en una morcilla de bytes) pero lo que no tiene sentido es enviar el nombre mas que la primera vez cuando se crea la conexion.
Título: Re: BennuplayNet
Publicado por: BoMbErLiNk en Septiembre 11, 2010, 07:47:42 pm
Yo hice un chat online con la Fsock y lo que si funcionaban eran los CHAR, los string no.

No me la he mirado pero, que diferencias tiene esta dll con la fsock ? Una inicialización más sencilla ? Un mejor control de datos ?
Es necesario abrir puertos en el router en modo no filtrado ?
Esta portada a linux ?  ;D
Título: Re: BennuplayNet
Publicado por: Drumpi en Septiembre 12, 2010, 12:44:29 am
Mr Matsusaka ¿soy yo o me estás retando a un combate al mejor de 3 rounds? ;D

Nah, sólo pasaba para dar un nuevo Karma, porque es posible que use esta librería...no sé cuando, pero en la pila de proyectos está cobrando mucha fuerza el Sonic Drift 2, y aun tengo la espinita clavada de tener la GG, el cable 2P, y no haberme podido jugar una partida decente (ni aun teniendo la posibilidad en el emu de GC).
Título: Re: BennuplayNet
Publicado por: Mr Matsusaka en Septiembre 12, 2010, 07:51:43 am
Durmpi, TE DESAFIO! ;D
Título: Re: BennuplayNet
Publicado por: SplinterGU en Septiembre 12, 2010, 01:04:26 pm
drumpi, el de sonic ya es hora.
Título: Re: BennuplayNet
Publicado por: Drumpi en Septiembre 12, 2010, 05:07:51 pm
Juer, ahora le ha dado a todo el mundo por desafiarme ¡las cosas bien hechas! ¡¡¡los desafíos en los concursos!!! :D :D :D

drumpi, el de sonic ya es hora.

Splinter, no te confundas: Sonic Drift es un proyecto de carreras de coches que estaba en la pila pero no había salido a la luz:
http://www.youtube.com/watch?v=xUsMO9IEa7A
(Por fin un video con un ratio de resolución correcto ;D).
Quería haberlo hecho como el original, incluyendo rampas y esas cosas, como el OutRun, pero no sé hacerlo. Luego quería intentarlo con VSE añadiendo cosas nuevas (de ahí mi empeño inicial). Pero las últimas pruebas con el modo7 han terminado por decidirme a hacer el intento con él en, digamos, una especie de remake.

No tiene nada que ver con FenixLand, donde salía Sonic porque eran los sprites que tenía más a mano, ni con el plataformas 3D con VSE, porque aun no he arreglado VSE ;)
Título: Re: BennuplayNet
Publicado por: SplinterGU en Septiembre 12, 2010, 09:36:00 pm
Juer, ahora le ha dado a todo el mundo por desafiarme ¡las cosas bien hechas! ¡¡¡los desafíos en los concursos!!! :D :D :D

drumpi, el de sonic ya es hora.

Splinter, no te confundas: Sonic Drift es un proyecto de carreras de coches que estaba en la pila pero no había salido a la luz:
http://www.youtube.com/watch?v=xUsMO9IEa7A
(Por fin un video con un ratio de resolución correcto ;D).
Quería haberlo hecho como el original, incluyendo rampas y esas cosas, como el OutRun, pero no sé hacerlo. Luego quería intentarlo con VSE añadiendo cosas nuevas (de ahí mi empeño inicial). Pero las últimas pruebas con el modo7 han terminado por decidirme a hacer el intento con él en, digamos, una especie de remake.

No tiene nada que ver con FenixLand, donde salía Sonic porque eran los sprites que tenía más a mano, ni con el plataformas 3D con VSE, porque aun no he arreglado VSE ;)

mejor aun, vamos con el sonic.
Título: Re: BennuplayNet
Publicado por: l1nk3rn3l en Septiembre 13, 2010, 02:11:43 pm
La libreria es un clon del diseño de red , que realizaron en div2, me parecio interesante
ese concepto , pero le faltaron bastantes cosas que si se incluyeron en esta libreria
como saber si un cliente esta conectado, control automatico de paquetes sin perdida,
compresion interna de paquetes, enviar solo paquetes modificados, y muchas mas..
no mas mirar el rendimiento logrado...

Actualmente estamos logrando varias de las caracteristicas que se pueden conseguir en librerias
comerciales como raknet, pero a un nivel de abstraccion mucho mayor , cosas que los mas iniciados
agradeceran...


Habran funciones avanzadas futuras como:
- publicar un puntaje online ----  BNP_PUBLISHSCORE("127.0.5.11", "1500","LUCAS",);
- enviar un archivo --- BNP_SENDFILE("/score.dat"); BNP_RECEIVEFILE();
- y otras ideas que se me estan ocurriendo ,

hemos investigado , y herramientas como darkbasic y blitzbasic, no tienen una libreria tan facil de usar
solo tienen algo como :  envia_paquete  , recibir_paquete , udp_send , tcp_send, etc que alguien
que no ha tocado una herramienta , se retirara de inmediato.
-----------


para mandar un string tienes que mandarlo como char[12] con 12 caracteres pienso que estara bien...

recuerda que un dato string es un puntero ... no es la cadena en si...

asi que si mandas una string ese numero no existira en el pc donde envias los datos

....
para saber la ip del servidor ya voy a crear un a funcion para tal proposito..

Gracias por las sugerencias....

--------

BoMbErLiNk, no esta portada a linux, pero esta disponible el codigo , que es 100% multiplataforma
asi que correra en MAC y Linux perfectamente...
y en si es facil de usar, pues deberias echarle un vistazo y me das tu opinion ,
lo que yo diga solo seria spam...


--------------
Si encuentran errores desearia que nos lo reportaran ...
Título: Re: BennuplayNet
Publicado por: Drumpi en Septiembre 13, 2010, 04:17:25 pm
Yo me conformo con que se pueda usar como si de lectura/escritura de ficheros se tratase (enviar una struct, un array o un tipo de datos definidos, por ejemplo). Si encima lleva incorporado gestión de errores y de paquetes ya sería... :D

De todas formas, aun no estoy preparado para ponerme a ello ^^U
Título: Re: BennuplayNet
Publicado por: Phoenix en Septiembre 13, 2010, 05:24:23 pm
Si lo de pasar la cadena con chars funciona perfecto!

Estoy probandola con una aplicacion sencilla, en la que el cliente se conecta al servidor y pulsando la tecla h(cambia el valor de una variable de las que está compartiendo) le saluda, entonces el Servidor le devuelve el saludo(cambiando otra vez el valor de dicha variable), pero a partir de aqui el cliente ya no se entera de que el servidor cambio el valor de la variable que comparten y entonces no coge la respuesta (Parece un trabalenguas con tanto saludo xDDDD). La pongo por aquí a ver si le puedes echar un vistazo, por que yo no soy capaz de encontrar el error xD. Gracias de nuevo.

Título: Re: BennuplayNet
Publicado por: l1nk3rn3l en Septiembre 14, 2010, 04:43:03 pm
nueva VERSION
Título: Re: BennuplayNet
Publicado por: SplinterGU en Septiembre 14, 2010, 10:57:00 pm
karma por adelantado! pero cuales son los cambios o mejoras de esta nueva version?
Título: Re: BennuplayNet
Publicado por: Windgate en Septiembre 15, 2010, 12:15:42 pm
Lo he probado y me ha funcionado de lujo, además veo que es muy poco el código necesario.

Mil gracias l1nk, en cuanto me ponga a fondo te reporto errores, si los encuentro :P

Por cierto, ¿Algún listado de funciones por ahí?, también me comprometo a ampliarlo/mejorarlo/traducirlo
Título: Re: BennuplayNet
Publicado por: l1nk3rn3l en Septiembre 15, 2010, 04:30:12 pm
nuevo ejemplo de chat disponible.. (para los que desean el viejo estilo de enviAR paquetes)
Gracias a Phoenix , por el aporte...

con ese ejemplo alguien puede crear un lobby(aceptar/rechazar  interactivamente a los clientes/chatear mientras esperan)

si alguien tiene ejemplos sencillos , me serian de mucha ayuda..


como puede verse los ejemplos basicos, alguien puede hacerse un simple
pong , un tres en linea , etc, con pocas lineas..
 

Las mejoras que no nombre:
documentacion disponible
nuevas opciones como fast_mode , ejemplos expert,  entre otras cosas..
ver changelog..

actualmente se podria hacer un mariobros cooperativo..

ahora, estoy terminando los ejemplos hard... que estaran en la proxima... version..


Comparaciones:


aqui un ejemplo en darkbasic tan complejo que es usar multiplayer
http://www.thegamecreators.com/?m=view_product&id=2030&page=dbep

ejemplo en blitzbasic
http://www.blitzbasic.com/Community/posts.php?topic=83448
Título: Re: BennuplayNet
Publicado por: Prg en Septiembre 15, 2010, 04:56:36 pm
No había podido probar la librería, pero a ver si en esta semana puedo revisarla. Si hago algun ejemplo sencillo te lo pasaré. Saludos :)
Título: Re: BennuplayNet
Publicado por: Phoenix en Septiembre 16, 2010, 08:50:09 am
Gracias por mirar el ejemplo que pusé! Y por las demas cosas que estas añadiendo a la liberia! :D

De todas formas... el ejemplo de chat que pusiste solo vale para una conexion de un cliente con el servidor, luego si conectas otro ya el server se vuelve loco por que esta pendiente solo de lo que dice el primero y los saludos se disparan. He estado modificando algunas cosillas para hacerlo generico, pero me sigue sin ir correctamente. Cuando el primer cliente saluda, el valor del id_text lo pone a 1, entonces el server se da cuenta de que vale 1 y modifica el valor de id_text para ese cliente lo pone a 2, pero este cliente ya no se da entera de que lo modificaron(aunque realmente si vale 2). He puesto unos textos para saber el valor de id_text solo del primer cliente, con lo que si pruebas a conectar un cliente y saludas al servidor, el servidor pone el valor id_text este a 2, pero el cliente no se da cuenta, ahora, si ejecutas en ese momento, otro cliente, este ya si ha actualizado el valor del id_text del cliente 1 que vale 2  :'(. ( Te dejo una captura por si no me explique en condiciones xD http://img203.imageshack.us/f/serverclient.png/)

Editado:

He empezado también ahora a hacer un 3 en raya y me pasa exactamente lo mismo que con el "chat" , llega un momento que uno de los 2 no se da cuenta que se modifico un valor de la estructura que comparten, con lo que entonces ya no se si lo estoy haciendo bien  ;D, ni idea, en fin, dejo el ejemplo del 3 en raya por aqui tb.


 
Título: Re: BennuplayNet
Publicado por: l1nk3rn3l en Septiembre 16, 2010, 01:49:21 pm
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

Título: Re: BennuplayNet
Publicado por: Mr Matsusaka en Septiembre 16, 2010, 06:42:48 pm
KICK_CLIENT premio a la nombre de la funcion mas explicito del año  ;D
Título: Re: BennuplayNet
Publicado por: Windgate en Septiembre 16, 2010, 06:51:28 pm
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
Título: Re: BennuplayNet
Publicado por: FreeYourMind en Septiembre 16, 2010, 07:05:56 pm
Vale pues le doy uno ahora, Y 10 CUANDO LA UTILIZÉ :)
Título: Re: BennuplayNet
Publicado por: Prg en Septiembre 17, 2010, 03:04:11 am
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.
Título: Re: BennuplayNet
Publicado por: l1nk3rn3l en Septiembre 20, 2010, 02:20:52 pm
nuevo ejemplo tres en linea disponible
Título: Re: BennuplayNet
Publicado por: l1nk3rn3l en Septiembre 21, 2010, 05:03:03 pm
gracias prg pronto incluire tu ejemplo



---
recordar usar set_fps(0,0)

para ver el rendimiento real...
Título: Re: BennuplayNet
Publicado por: Windgate en Octubre 23, 2010, 11:03:09 pm
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 (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 ^^
Título: Re: BennuplayNet
Publicado por: Drumpi en Octubre 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?
Título: Re: BennuplayNet
Publicado por: Windgate en Octubre 24, 2010, 10:51:47 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
Título: Re: BennuplayNet
Publicado por: Drumpi en Octubre 24, 2010, 07:03:15 pm
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.
Título: Re: BennuplayNet
Publicado por: Windgate en Octubre 26, 2010, 09:28:20 pm
Pues el problema sigue igual y francamente no lo entiendo... Ahora mismo mi .bat hace:

Código: [Seleccionar]
@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 ???
Título: Re: BennuplayNet
Publicado por: Windgate en Octubre 26, 2010, 10:51:45 pm
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 (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!
Título: Re: BennuplayNet
Publicado por: SplinterGU en Octubre 27, 2010, 12:38:39 am
muy buena noticia...

karma por la prueba y un nuevo karma a link por la lib
Título: Re: BennuplayNet
Publicado por: Windgate en Octubre 27, 2010, 11:17:41 am
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.
Título: Re: BennuplayNet
Publicado por: Drumpi en Octubre 27, 2010, 11:43:42 pm
Gracias por el ejemplo, será estudiado con detenimiento para futuros proyectos :D
Karma.
Título: Re: BennuplayNet
Publicado por: Windgate en Noviembre 23, 2010, 01:18:05 am
Bien amigüitos, tengo aquí un interesante proyecto desarrollado con esta librería y con Bennu3D, se trata de un shooter en primera persona que usa modelos y escenarios de Quake.

Está hecho por unos alumnos (Brutal trabajo en apenas mes y medio), tengo que pedirles permiso para publicarlo, mientras tanto: ¿Alguien se ofrece para hacer alguna prueba e intentar detectar algún bug? Que me mande privado y le doy un link de descarga directa :P
Título: Re: BennuplayNet
Publicado por: FreeYourMind en Noviembre 23, 2010, 09:21:38 am
Me of course, te lo pruebo al llegar a casa  :D
Título: Re: BennuplayNet
Publicado por: l1nk3rn3l en Noviembre 23, 2010, 08:19:43 pm
nadie del grupo puede ver la pagina desde Colombia

probamos desde cali, bogota y barranquilla
 ;D

Coloca 3 pantallazos aqui para verlo ..

Gracias...
Título: Re: BennuplayNet
Publicado por: Windgate en Noviembre 24, 2010, 01:15:48 pm
Aquí tenéis, no os excitéis demasiado:

(http://trinit.es/araforem/2010/Proyecto2/screenshot/3dit_18-11-10_20h26m23s.jpg)
(http://trinit.es/araforem/2010/Proyecto2/screenshot/3dit_18-11-10_20h26m32s.jpg)
(http://trinit.es/araforem/2010/Proyecto2/screenshot/3dit_24-11-10_14h10m30s.jpg)
(http://trinit.es/araforem/2010/Proyecto2/screenshot/3dit_24-11-10_14h11m04s.jpg)
(http://trinit.es/araforem/2010/Proyecto2/screenshot/3dit_24-11-10_14h11m20s.jpg)
(http://trinit.es/araforem/2010/Proyecto2/screenshot/3dit_24-11-10_14h11m44s.jpg)

PD: l1nk, si no puedes acceder a trinit.es desde Colombia tampoco deberías poder verlas, dame un correo por MP y te las mando... Si alguien más lee esto y no puede entrar a http://trinit.es que me avise para meterle un palo por el culo a mi compañía de hosting.
Título: Re: BennuplayNet
Publicado por: oriun en Noviembre 24, 2010, 01:52:33 pm
Desde España si se puede acceder a trinit.es
Título: Re: BennuplayNet
Publicado por: l1nk3rn3l en Noviembre 24, 2010, 02:04:06 pm
http://www.google.com.co/#hl=es&source=hp&biw=1024&bih=655&q=image+hosting&aq=0&aqi=g10&aql=&oq=image+hostin&gs_rfai=&fp=97686081f41759df (http://www.google.com.co/#hl=es&source=hp&biw=1024&bih=655&q=image+hosting&aq=0&aqi=g10&aql=&oq=image+hostin&gs_rfai=&fp=97686081f41759df)

puedes usar cualquier servicio de hosting de imágenes..

estoy ansioso por ver un pantallazo, o porque no subes un video a youtube

http://www.softonic.com/s/capturar-pantalla


mira para que pruebes tu pagina , desde navegador anonimo le metes trinit.es
pero no carga, le metes otra .. voila...
http://www.hidemyass.com/youtube-proxy/
Título: Re: BennuplayNet
Publicado por: l1nk3rn3l en Noviembre 25, 2010, 02:16:12 am
utlizando


http://www.recure.com/

si funciona , pero desde la barra del navegador nop
Título: Re: BennuplayNet
Publicado por: Windgate en Diciembre 03, 2010, 01:30:07 am
Nueva versión del test 2D. Lo he probado y soporta hasta 96 conexiones, no puede pasar de 100 porque uno de los vectores de la librería está limitado a ese tamaño, ¿No hay forma de poder aumentarlo sin complicar la librería, l1nk?

Os dejo un zip con todo listo para descargar y ejecutar cliente y/o servidor, ya compilado pero con el código abierto, limpio y tabulado de p. madre y bien comentado por si queréis modificar cualquier cosa. Consiste en un scroll infinito con estrellas, donde los clientes aparecen en coordenadas aleatorias y pueden moverse con las teclas direccionales.

Os recomiendo arrancar directamente el server.exe y pulsar F1, con eso se crearán 50 clientes automáticamente y veréis las capacidades de la librería. Eso sí, tened cuenta que 50 bgdi corriendo en el mismo PC saturan bastante la CPU.

Podéis cambiar el número de clientes generados desde /prg/server/client_spree.prg

También podéis cambiar la IP a la que conecta (Ahora es localhost) desde /prg/common/const.prg

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

Espero que lo disfrutéis tanto como yo :D
Título: Re: BennuplayNet
Publicado por: l1nk3rn3l en Diciembre 03, 2010, 04:49:20 am
¡Vaya! Google Chrome no ha podido establecer conexión con la página trinit.es.







La conexión ha caducado         

El servidor trinit.es está tardando demasiado en responder.   


    *   El sitio podría estar no disponible temporalmente o
         demasiado ocupado. Vuelva a intentarlo en unos momentos.

    *   Si no puede cargar ninguna página, compruebe la conexión
         de red de su equipo.

    *   Si su equipo o red están protegidos por un cortafuegos
         o proxy, asegúrese de que Firefox tiene permiso para
         acceder a la web.
Título: Re: BennuplayNet
Publicado por: Windgate en Diciembre 04, 2010, 06:09:48 pm
Me cago en la calavera de Cristo...

No tengo idea de lo que puede ser, intenta acceder mediante proxy.

Aquí te dejo un ejemplo de videojuego 2D con la bennuplaynet que seguro que te gustará, no está terminado pero menús, conexión, gui y cosas así está todo funcional, además tiene diagramas de jerarquía de procesos y toda la pesca:

http://trinit.es/DescargaDirecta/BennuOthers/BennuPlayNet/Bullet/Bullet%200.1.1.zip (http://trinit.es/DescargaDirecta/BennuOthers/BennuPlayNet/Bullet/Bullet%200.1.1.zip)

En breve abriré hilo sobre él.
Título: Re: BennuplayNet
Publicado por: l1nk3rn3l en Diciembre 04, 2010, 07:39:45 pm
porfa no nombres a cristo de esa forma..    :(

Windgate, ya lo mire y esta super el juego subelo  a
booleansoup.com, seccion juegos full,

Ahora si puedo accesar, sin hacer nada  .... tan raro...
Muchas Gracias... (Estos ejemplos nos inspiran para hacer cosas geniales)


Título: Re: BennuplayNet
Publicado por: Windgate en Diciembre 05, 2010, 04:54:03 pm
HOYGAN NESECITO HALLUDA!

A ver l1nk, tengo un problema con el juego:

Cuando un disparo colisiona con una réplica, obtiene su id en el vector de conexión e intenta modificar la vida de ese cliente.

El caso es que la vida no se modifica... ¿No es posible modificar los datos de un cliente? Da la impresión de que son de sólo lectura.

Puedo solucionarlo haciendo que cada cliente detecte la colisión con el disparo y se quite vida, pero para según qué casos sería interesante poder modificar los valores de un cliente.
Título: Re: BennuplayNet
Publicado por: l1nk3rn3l en Diciembre 06, 2010, 01:41:10 am
por velocidad no es posible modificar los datos de un cliente

solo mediante replicas...

es interesante el diseño de esta libreria (ya que se diseño con
el proposito de que fuera 100% optimo )

se pueden realizar cosas interesantes con las replicas
y los datos de los clientes... con el diseño actual...

lo que dices se podria realizar , pero no es optimo para el diseño como tal


imaginate 300 clientes conectados , seria un caos y seria super lento
manejar tantos paquetes al tiempo...

Asi que ...  si se puede.. pero no se debe.. :)

aqui , cuando empece el diseño
http://forum.bennugd.org/index.php?topic=1553.0 (http://forum.bennugd.org/index.php?topic=1553.0)
Título: Re: BennuplayNet
Publicado por: Windgate en Diciembre 06, 2010, 08:49:13 am
Ok, entonces entiendo que los datos de un cliente sólo puede modificarlos el propio cliente.

De esa manera los datos de otros clientes son de "sólo lectura", así que por ejemplo, si recibes un golpe con una espada, puedes acceder al cliente que te golpeó a través de su réplica, y ser tú quien se quita vida :D

Me parece bien que sea por razones de velocidad, pero veo limitaciones para situaciones complejas, iré comentándolas a medida que siga con el proceso de desarrollo.

Ahora tengo una duda:

En el array de datos de los clientes he añadido un campo de tipo string para implementar un sistema de chat. Tengo la impresión de que falla, ya que el texto que se muestra no es el que escribo, ¿Debo entender que no se pueden mandar datos de tipo string u otros datos que tengan que ver con punteros?

En ese caso, ¿Cómo se podría implementar fácilmente un sistema de chat, quizás mediante un vector limitado de char?

Gracias por todo l1nk, este juego que estoy haciendo con tu lib no te defraudará, Sandman se ha ofrecido para dejarlo hosteado en su servidor xD
Título: Re: BennuplayNet
Publicado por: l1nk3rn3l en Diciembre 06, 2010, 05:59:18 pm
no ya subi tu ejemplo a la pagina de descarga de bennuplaynet hace dias..
es excelente...(nada bueno decepciona :) )

En ese caso, ¿Cómo se podría implementar fácilmente un sistema de chat, quizás mediante un vector limitado de char?
alguien planteo la misma duda asi, que la solucion seriua
un tipo char

char nombre[12]

phoenix , pregunto lo mismo ver
http://forum.bennugd.org/index.php?topic=1519.30

y listo ....

Título: Re: BennuplayNet
Publicado por: l1nk3rn3l en Diciembre 07, 2010, 08:36:33 pm
windgate , agradeceria nos pasaras el juego de quake multiplayer que hiciste,
ya que puedo descargarlo ahora, unos compañeros del grupo desean verlo.

Muchas gracias
Título: Re: BennuplayNet
Publicado por: Windgate en Diciembre 08, 2010, 01:43:01 am
El proyecto no es mío, es de unos alumnos, pero parece que no entran mucho por el foro :(

http://trinit.es/araforem/2010/Proyecto2/Proyect%203D%20V0.0.4%20Windgate.zip (http://trinit.es/araforem/2010/Proyecto2/Proyect%203D%20V0.0.4%20Windgate.zip)

Lo acabamos a contrarreloj, tiene muchísimos bugs que arreglar... Habría que depurar el código.
Título: Re: BennuplayNet
Publicado por: l1nk3rn3l en Diciembre 08, 2010, 01:58:39 pm
gracias
Título: Re: BennuplayNet
Publicado por: Yawin en Diciembre 09, 2010, 11:53:20 pm
mmm iba a decir...
en Windows me va bien, pero en linux (Ubuntu 32bits) me dice que no tengo Bennuplaynet.so
y tengo todo lo que viene en el repositorio instalado.

¿No viene en el repositorio, o es que lo tengo pero con otro nombre?
Título: Re: BennuplayNet
Publicado por: l1nk3rn3l en Diciembre 10, 2010, 02:43:24 am
mmm iba a decir...
en Windows me va bien, pero en linux (Ubuntu 32bits) me dice que no tengo Bennuplaynet.so
y tengo todo lo que viene en el repositorio instalado.

¿No viene en el repositorio, o es que lo tengo pero con otro nombre?


MM, nadie lo ha compilado para linux que yo sepa(por desgracia no tengo linux)
Título: Re: BennuplayNet
Publicado por: Yawin en Diciembre 10, 2010, 08:12:35 am
ah, vale xD
Título: Re: BennuplayNet
Publicado por: josebita en Diciembre 10, 2010, 05:49:15 pm
Quedé en hacerlo, pero no lo he hecho... En algún momento lo intentaré.
Título: Re: BennuplayNet
Publicado por: Yawin en Diciembre 10, 2010, 06:02:17 pm
Técnicamente sólo es coger el código fuente de la librería y un compilador para linux y darle a compilar no?

En ese caso, qué compilador empleáis? que puedo intentarlo.
Título: Re: BennuplayNet
Publicado por: Windgate en Diciembre 10, 2010, 07:45:03 pm
Pues el Bullet me gustaría llevarlo a Canoo, así que si hace falta compilar para Canoo adelante :D
Título: Re: BennuplayNet
Publicado por: Drumpi en Diciembre 11, 2010, 02:17:56 am
Para compilar en Linux se usa, obviamente, el GCC que se descarga con el paquete build-essentials (si no viene ya con la distro). Otra cosa es que, además, se descargue un IDE y se configure :D
Título: Re: BennuplayNet
Publicado por: Yawin en Diciembre 11, 2010, 10:13:23 am
Y cómo compilo? gcc y la ruta del archivo.c?
Esque yo siempre he programado con el IDE Visual Studio y no tengo ni idea de qué tengo que hacer cuando salgo de ahí xD
Título: Re: BennuplayNet
Publicado por: Yawin en Diciembre 11, 2010, 10:39:03 am
Vae, me he metido dentro de la carpeta ddl (que es donde están los codes de BennuPlayNet) y he puesto:
Código: [Seleccionar]
gcc main.cpp
y me devuelve:
Código: [Seleccionar]
gcc: error trying to exec 'cclplus': execvp: No existe el archivo o directorio
Nunca he compilado nada en Linux asi que no entiendo de nada de esto xD
Título: Re: BennuplayNet
Publicado por: DCelso en Diciembre 11, 2010, 02:53:56 pm
Como que no era fácil compilarlo en linux.
Pero bueno ya que me puse lo hice, os traigo la versión linuxera de bennuplaynet.

l1nk3rn3l, he tenido que hacer varios retoques a tu código y he separado la librería en dos .so, uno que es el wrapper a bennu y otra que es la librería irrnet.so, así si alguna vez se migrase a una versión más nueva de irnet pues solo habría que sustituir este .so. (me interesaría mucho que vieras los cambios por si puedes insertar alguno de ellos en la versión oficial tuya.)
También he eliminado el código de enet, ya que linux dispone de ese .so en el sistema, y debido a este cambio he visto que la versión enet.h de linus es ligeramente diferente en algunas funciones que ahora necesitan de un parámetro más, así que lo adapté a esta.

Como resultado, el que quiera usar  esta librería en linux lo único que necesita es descargarse del repositorio de su distribución la librería "enet" y  copiar los dos .so que adjunto con su proyecto.
Título: Re: BennuplayNet
Publicado por: Noivern en Diciembre 11, 2010, 04:37:36 pm
excelente, karma
Título: Re: BennuplayNet
Publicado por: josebita en Diciembre 11, 2010, 05:02:29 pm
Como que no era fácil compilarlo en linux.
Pero bueno ya que me puse lo hice, os traigo la versión linuxera de bennuplaynet.

l1nk3rn3l, he tenido que hacer varios retoques a tu código y he separado la librería en dos .so, uno que es el wrapper a bennu y otra que es la librería irrnet.so, así si alguna vez se migrase a una versión más nueva de irnet pues solo habría que sustituir este .so. (me interesaría mucho que vieras los cambios por si puedes insertar alguno de ellos en la versión oficial tuya.)
También he eliminado el código de enet, ya que linux dispone de ese .so en el sistema, y debido a este cambio he visto que la versión enet.h de linus es ligeramente diferente en algunas funciones que ahora necesitan de un parámetro más, así que lo adapté a esta.

Como resultado, el que quiera usar  esta librería en linux lo único que necesita es descargarse del repositorio de su distribución la librería "enet" y  copiar los dos .so que adjunto con su proyecto.
Joé, ayer mismo la metí en mi PPA :) Aunque no he cambiado nada el código. La próxima versión la compilaré con tus cambios.

http://forum.bennugd.org/index.php?topic=496.msg33023#msg33023
Título: Re: BennuplayNet
Publicado por: l1nk3rn3l en Diciembre 11, 2010, 09:52:42 pm
muchas gracias
Título: Re: BennuplayNet
Publicado por: Yawin en Diciembre 11, 2010, 10:24:08 pm
Karma++

cuando aprenda a actualizar desde el repositorio (esque en linux todavía ando muy pez) me lo meteré.
Título: Re: BennuplayNet
Publicado por: Drumpi en Diciembre 12, 2010, 02:16:06 pm
El GCC requiere de entrenamiento, pues es un compilador por linea de comandos, por lo que tienes que añadirle parámetros, opciones y demás según se necesite. Hay que leer tutoriales, pero si te quieres hacer una idea escribe "man gcc".
Si el código está listo, lo normal es escribir:

GCC miprograma.c -o miprograma

La opción -o indica el nombre que quieres que tenga el ejecutable, de lo contrario se llamará out.o

Actualizar desde el repositorio es fácil, no tienes más que usar synaptic, hacer la búsqueda, seleccionar para actualizar y ejecutar los cambios. Con apt-get es algo más complicado, creo que es como instalar, solo que usas la opción update ^^U
Título: Re: BennuplayNet
Publicado por: josebita en Diciembre 12, 2010, 02:53:55 pm
Ubuntu por defecto te debería avisar en caso de que haya actualizaciones y sólo debería ser cosa de darle a "Actualizar".
Para comprobar si tienes actualizaciones a mano, ve a "Sistema->Administración->Gestor de Actualizaciones" y le das a "Comprobar". Si hay alguna actualización disponible, le das a "Instalar actualizaciones" y listo.


Para instalar en línea de comandos:
sudo apt-get install bennugd-module-playnet

Y para actualizar todos los paquetes:
sudo apt-get update; sudo apt-get upgrade

No creo que sea nada difícil.
Título: Re: BennuplayNet
Publicado por: DCelso en Diciembre 12, 2010, 03:02:33 pm
Siguiente rosquilla, :D.
Bennuplaynet para caanoo.
Molaría intentar usar un ejemplo en el que se emplease un servidor window con un cliente linux y otro caanoo :).
Título: Re: BennuplayNet
Publicado por: osk en Diciembre 12, 2010, 03:29:04 pm
YES!!!
Título: Re: BennuplayNet
Publicado por: l1nk3rn3l en Diciembre 12, 2010, 04:01:22 pm
joder , solo falta que digan bennuplaynet para 360
 :P

gracias, he subido a la pagina las mejoras...


Título: Re: BennuplayNet
Publicado por: FreeYourMind en Diciembre 12, 2010, 05:15:31 pm
Siguiente rosquilla, :D.
Bennuplaynet para caanoo.
Molaría intentar usar un ejemplo en el que se emplease un servidor window con un cliente linux y otro caanoo :).


No hay src/Makefile ?

Lo ideal seria un ejemplo para poder probarlo.
Título: Re: BennuplayNet
Publicado por: Windgate en Diciembre 12, 2010, 06:40:51 pm
En cuanto deje un poco mejor pulido mi Bullet lo intento pasar para Canoo, es tan "retro" que rulará a la perfección.

¿Habría alguna forma de tener un servidor dedicado sin tener que pagar 30€ al mes para un puto programita de 10Mb?
Título: Re: BennuplayNet
Publicado por: DCelso en Diciembre 12, 2010, 06:47:01 pm
Colgar los makefiles lo tengo pendiente, luego los pongo.
Título: Re: BennuplayNet
Publicado por: Yawin en Diciembre 12, 2010, 10:32:45 pm
En cuanto deje un poco mejor pulido mi Bullet lo intento pasar para Canoo, es tan "retro" que rulará a la perfección.

¿Habría alguna forma de tener un servidor dedicado sin tener que pagar 30€ al mes para un puto programita de 10Mb?

Te recomiendo http://zymic.com

Gratuito, con mysql y sin publicidad.
Título: Re: BennuplayNet
Publicado por: Noivern en Diciembre 19, 2010, 05:42:19 am
Pfff, cuando estaba a punto de postear lo de más abajo decidí hacer la prueba de compilar los prg de cada ejemplo con el último binario de bennu y ya funcionan!!
L1nk3rn3l debes actualizar los .dcb del archivo para evitar este tipo de confusiones ^^U
Probando ya mismo recompilar la dll para la webcam :P...

---------------------------------------
POST pre recompilado xD:

Probando los ejemplos que trae, algunos me van y otros no. Los que no van la tipica win32 exception no controlada.
Quizás tengo mal configurado algo con el visual studio y su maldito just-in-time debugging, ya que tu otra librería, la de la webcam tampoco me funciona 100%, la version mmultithread se va al carajo.

El listado de los ejemplos que no me funcionan:
01 Basic
02 Advance
03 Expert
04 Hard

Título: Re: BennuplayNet
Publicado por: l1nk3rn3l en Diciembre 19, 2010, 04:23:37 pm
no funcionan en que en windows o en linux?
Título: Re: BennuplayNet
Publicado por: Windgate en Diciembre 19, 2010, 06:20:28 pm
En cuanto deje un poco mejor pulido mi Bullet lo intento pasar para Canoo, es tan "retro" que rulará a la perfección.

¿Habría alguna forma de tener un servidor dedicado sin tener que pagar 30€ al mes para un puto programita de 10Mb?

Te recomiendo http://zymic.com

Gratuito, con mysql y sin publicidad.

¿Eso es sólo un hosting, no? Yo ya tengo un hosting privado con ancho de banda y espacio de sobras, pero para dejar en ejecución un servidor con una IP fija hace falta un servidor, que no es lo mismo.

¿Hay algún servidor gratuito donde dejar corriendo un programa Linux/Windows? No me digáis mi casa porque aquí uso portátil y paro poco en ella, además uso Timofónica y cambia de IP como quien cambia de sexo en Thailandia.
Título: Re: BennuplayNet
Publicado por: Noivern en Diciembre 19, 2010, 06:46:09 pm
no funcionan en que en windows o en linux?
Eran en windows xp. En linux van esos mismos dcb recompilados usando la bennuplaynet que esta en el ppa de josebita.
Título: Re: BennuplayNet
Publicado por: josebita en Diciembre 20, 2010, 02:21:31 am
Me alegro de ver que funcionan :)
Título: Re: BennuplayNet
Publicado por: gukan en Abril 21, 2011, 06:17:31 pm
Una duda. Lo he puesto en otro post pero aqui pega mas.

Me he bajado la dll y al probar con cualquiera de los ejemplos me sale el mensaje:

C:\soft\bennu\BennuPlayNet\prg\01 basic\client.prg:44: error: Data type not acce
pted here, found "PLAYERS"
C:\soft\bennu\BennuPlayNet\prg\01 basic\client: doesn't exist or isn't version 7
 DCB compatible
Presione una tecla para continuar . . .

La linea que se queja (en el ejemplo 1) es:

   if (!BNP_CONNECT("",players,sizedata)) //is server why not have address

Puede tener que ver que esta dll no sea compatible con la ultima version de bennu?
Título: Re: BennuplayNet
Publicado por: l1nk3rn3l en Abril 21, 2011, 09:11:00 pm
if (!BNP_CONNECT("",players,sizedata)) //is server why not have address


creo que las estructuras en este caso players, tiene que ser pasado con "&"

if (!BNP_CONNECT("",&players,sizedata))


la nueva version de bennu tiene que indicar que pasas las variables por referencia

cualquiera... solo en structs
&players
offset players


si tienes algun ejemplo interesante , seria bueno que lo compartieras..  :)
Título: Re: BennuplayNet
Publicado por: gukan en Abril 22, 2011, 09:03:20 am
De momento no tengo nada, si me quede clavado con el primer ejemplo :D
Pero con el & funciona así que me pongo a ver como va y si entiendo el funcionamiento!
Título: Re: BennuplayNet
Publicado por: gukan en Abril 28, 2011, 09:29:38 am
Buenas!
La libreria es una pasada y funciona perfectamente. Pero tengo varias dudas.

-La primera, sobre el BNP_NOT_ALLOW_CONN. Por alguna razon parece no funcinar en mi caso. He probado con BNP_NOT_ALLOW_CONN=1 y con BNP_NOT_ALLOW_CONN=true, pero en ninguno de los dos casos he conseguido que un cliente no pueda conectarse.

-La segunda sobre las replicas. Entiendo que las replicas solo pueden ser de un tipo, asi que si tienes que pasar info sobre disparos, enemigos, etc... todos comparten el mismo tipo con variables que usan unos u otros. Mientras el numero de diferentes tipos a replicar es bajo se puede controlar bien, pero si empezamos a tener demasiados tipos puede venir el descontrol. ¿Seria muy dificil que se pudiesen definir diferentes tipos de replicas?

-La tercera es sobre replicas y conexiones. Cuando estaba haciendo el juego de aviones. para controlar los disparos y el daño hecho empece del tiron sin mirarme mucho la documentación. La idea era que cada uno controlara sus disparos y sus colisiones. Me encontre que al ser los disparos replicas, solo podian ser creadas y modificadas por el servidor, por lo que los disparos no funcionaron bien. Pase a que todo lo controlaba el servidor, cada cliente avisaba cuando habia disparado y se creaba el disparo, el servidor controlaba las colisiones y restaba los puntos a todos los clientes. El problema vino en ese punto, como servidor al parecer no podia cambiar los valores de la estructura del cliente. Al final acabe creando replicas para cierta información del cliente. La pregunta es esta: ¿Es normal que una información (las replicas) solo puedan ser modificadas por el servidor y por otro lado la información de conexión (que puede tiene información como la x, la y o cualquier dato que el cliente necesite cambiar) solo pueda ser modificada por el propio cliente?

Gracias!
Título: Re: BennuplayNet
Publicado por: Windgate en Abril 28, 2011, 07:48:40 pm
Lo de los diferentes tipos de réplicas sería grandioso, complicaría un poco el uso de la librería pero le daría grandes funcionalidades, lo ideal para mí sería poder tener distintos arrays para cada tipo de réplica, a ver si l1nk nos dice si resultaría muy complejo de implementar o no...

Sobre los disparos, no es necesario replicar su posición, basta con que la réplica del jugador ponga a 1 una variable cada vez que dispara, así su réplica cuando ve el 1 lanza un disparo por su parte, ¿Entiendes?

Sobre la modificación de los valores, no es posible que un jugador modifique los valores de una réplica, l1nk me dijo que hacerlo así incrementaría muchísimo el tráfico de red, de momento tendrás que hacer que cada jugador sea dueño y señor de la escritura de valores en sus datos, los demás son de "sólo lectura".
Título: Re: BennuplayNet
Publicado por: gukan en Abril 29, 2011, 04:57:40 pm
No creo que diferentes tipos de replicas complicara el uso, mas bien al contrario, pero entiendo que el cambio que puede suponer eso es grande y por eso preguntaba si se podia hacer :)

Veo tu razonamiento sobre los disparos... y pensandolo bien es como lo tendria que haber hecho, pero de momento mientras no me sobrecargue demasiado el sistema lo dejare como replicas! Lazy rulez!

Si, un cliente no puede modificar los valores de las replicas, ok, eso fue fallo mio y lo entiendo, pero lo que no vi tan claro es que el servidor no pudiese modificar valores de los clientes (la x, la y o cualquier otra variable que se defina en el proceso que se le pasa a BNP_CONNECT y que pueda ser modificado por el cliente)... aunque tambien es posible que tuviese algun fallo y realmente si que pudiese y no lo hiciese bien!
Título: Re: BennuplayNet
Publicado por: Milton884 en Mayo 20, 2011, 05:57:03 pm
Hola, te hago una pregunta? Si yo quiero crear Replicas de Disparos, Criaturas, o sea todo lo demas excepto Players, como hago? Se supone que con este codigo conectas un user:

PROCESS connect ( string ip )
BEGIN
   BNP_MAXCONN = MaxConnections;
   
   sizedata = sizeof ( PlayerData );
   
   IF ( NOT BNP_CONNECT ( ip , &players , sizedata ) ) //is server why not have address
      //exit ( "Unable to stablish connection" );
   END

      FOR ( i = 0; i < MaxConnections; i++ )   //create net players
      IF ( i != BNP_ID )
         replica ( i ) ; //net player
      END
   END   
      
    WHILE ( NOT key ( _ESC ) ) 
      set_title ( "CLIENTE fps: " + fps );
        FRAME;
    END
   
   let_me_alone ( );
   FRAME;
   
   BNP_DISCONNECT ( );
   

Entonces, habria que hacer un Conectar para los disparos, otro conectar para los npcs? se que no es asi de hecho lo probe porque lo q hace es conectarse y reserva lugares BNP_ID) para los players
Título: Re: BennuplayNet
Publicado por: gukan en Mayo 20, 2011, 06:27:13 pm
No va con nuevas conexiones, va con replicas.

Mirate el proyecto de Windgate http://forum.bennugd.org/index.php?topic=1856.0 , yo me base en el para hacer el mio.

Tambien mirate el que hice yo http://forum.bennugd.org/index.php?topic=2245.msg40693#msg40693 (el que es online es el que esta en el post 28, creo que el link va directo)
Título: Re: BennuplayNet
Publicado por: Windgate en Mayo 21, 2011, 08:14:50 pm
Las réplicas están hechas para replicar jugadores, para que se comuniquen los disparos el jugador pone una variable a TRUE cuando dispara, y la réplica al ver el TRUE también dispara.

Ojala hubiese un sistema de varios arrays para replicar otras cosas, pero tal y como está la librería ahora funciona así.
Título: Re:BennuplayNet
Publicado por: Erkosone en Mayo 25, 2012, 02:19:04 pm
Hola, disculpad por reflotar el tema, quería hacer una consulta sobre esta librería.


Voy a hacer unos vídeo tutoriales sobre la programación de juegos en red y en concreto voy a hablar ampliamente de la PlayNet, después de realizar estos vídeos haré otros vídeos con ejemplos, estos ya no se si serán en lenguaje pepe o juan, pero todos los vídeos de teoría hablas básicamente sobre la programación en red usando la PlayNet.


Y necesitaría un par de datos para realizar una explicación mas acertada sobre la lib.


A groso modo así en plan aproximado.. que ancho de banda podría ocupar el sincronismo de la librería? supongo que dependerá de los clientes conectados y tal, pero..
Para sus calculos internos, decompresión de datos si la hubiera y todas estas cosas..  que % del ancho de banda podría gastar?


por ejemplo si tengo una estructura para players de 10 bytes + replicas 100 bytes..  cuanto aprox podría usar la lib para su control de flujo en bytes?


Bueno, gracias por adelantado al que pudiera solventarme esta duda, y de nuevo felicidades a los COLDEV por la lib, el API de la lib me parece genial.  ;)
Título: Re:BennuplayNet
Publicado por: Erkosone en Mayo 25, 2012, 04:40:55 pm
Bueno.. he realizado el vídeo, que me ha quedado bastante extenso XD.. y habla sobre las principales carácteristicas de la librería, en cuanto tenga compilado el vídeo y subido os paso el link.
Espero no haberla cagado demasiado, si hay alguna corrección que hacerle pues yo encantado de que me asesoréis sobre los errores que haya podido cometer.
Un saludo y en breve el vídeo sobre esta fantastica lib.
Título: Re:BennuplayNet
Publicado por: KeoH en Mayo 25, 2012, 05:07:24 pm
Espero con ansias el video xD hace cosa de un mes intenté meterle mano a esta libreria para usarla en los juegos pero no tenia ni idea xDD
Título: Re:BennuplayNet
Publicado por: Erkosone en Mayo 25, 2012, 06:18:09 pm
Ya estoy compilando los casi 30 minutos de vídeo, en cuanto esté subido a mi canal de youtube os paso el link po aquí.
Si he cometido algún error en la explicación agradecería que me lo comentarais, así para futuros vídeos lo corrijo.
Bueno, en breve el link, son 30 minutos de explicación sobre los juegos en red, que tener en cuenta antes de empezar y las diferentes formas de abordar el diseño de un juego online, en este caso especificamente un juego online para conexión a través de internet, he juntado mucha información sobre el tema sacada del foro de stratos y de unos cuantos blog´s de gente que habla sobre estos temas, así que creo que está bastante completo.


Ya para el próximo vídeo monto un ejemplo práctico de juego, pero creo que con este vídeo ya cualquiera le perderá el miedo al tema.
Un saludo y en breve os paso el link.
Y gracias a los creadores por la lib jeje, disfruto como un niño con ella ;)
Título: Re:BennuplayNet
Publicado por: Erkosone en Mayo 25, 2012, 08:13:23 pm
Vaya tela.. ahora youtube me dice que tengo una reclamación de sony.. y que no puedo colgar vídeos de mas de 15 minutos..
Haber donde cuelgo yo esto ahora..
Título: Re:BennuplayNet
Publicado por: Erkosone en Mayo 25, 2012, 10:13:32 pm
He terminado por partir el video en 2 partes, en breve online.
Título: Re:BennuplayNet
Publicado por: Erkosone en Mayo 25, 2012, 10:30:38 pm
Bueno, si he dicho alguna burrada no me lincheis XD.. solo indicadme que está mal y añadiré un comentario en el canal de youtube sobre ello, creo que mas o menos la información es acertada pero siempre puede uno cometer alguna metedura de pata.


En breve otro vídeo con un ejemplo sobre esto, aunque ya con esta información y los samples de código que trae la lib creo que se puede entender bastante bien.
Parte 1/2: http://www.youtube.com/watch?v=pKb8m5pz-_M&feature=youtu.be (http://www.youtube.com/watch?v=pKb8m5pz-_M&feature=youtu.be)
Parte 2/2: http://www.youtube.com/watch?v=VI31RWLvV7E&feature=youtu.be (http://www.youtube.com/watch?v=VI31RWLvV7E&feature=youtu.be)


Un saludo.
Título: Re:BennuplayNet
Publicado por: KeoH en Mayo 25, 2012, 11:11:40 pm
Muy bien los videos xD me han gustado xD ... le he dado me gusta al primer video xDDD ...
Título: Re:BennuplayNet
Publicado por: Erkosone en Mayo 25, 2012, 11:14:48 pm
Pues gracias hombre jeje, la verdad es que cuando te acostumbras a esta librería de red te centras completamente en el desarrollo del juego, por que es de un uso muy sencillo, me ha permitido hacer varios proyectillos que tenia en el tintero desde hacia ya mucho tiempo, así que por lo menos agradecerlo con un vídeo para que la use mas gente.
Título: Re:BennuplayNet
Publicado por: KeoH en Mayo 25, 2012, 11:39:53 pm
pero sería mas interesante un video de ejemplo de uso .. con las funciones y tal. En este video has esplicado el caso donde toda la logica del juego esta en el server .. pero y la de la logica compartida? xD Animo con estos videos q estan muy bien :) Pon un post tambien en documentacion o un enlace en la wiki para q no se pierdan
Título: Re:BennuplayNet
Publicado por: Erkosone en Mayo 25, 2012, 11:56:34 pm
la de la lógica compartida es royo mmo para no sobrecargar el servidor y que se queme XD.. y siendo sincero.. es algo muy muy complejo y muy distinto en cada juego, mi pobre cerébro se conforma con saber que la forma de servidor centralizado funciona XD.. y funciona bien para mis juegos jeje..


Sobre los link´s, esperaré a que los vea mas gente que seguro que están mas al día que yo sobre la lib y haber si tienen errores, supongo que alguna burrada igual he soltado, haber que dice [size=78%]l1nk3rn3l (http://forum.bennugd.org/index.php?action=profile;u=44)[/size]
Título: Re:BennuplayNet
Publicado por: l1nk3rn3l en Mayo 28, 2012, 05:29:20 am
 :)

BUEN TUTORIAL GRACIAS DE PARTE DEL GRUPO
Título: Re:BennuplayNet
Publicado por: Erkosone en Mayo 28, 2012, 10:29:44 am
Gracias a vosotros por el trabajo de darnos a todos los demás la herramienta con la que poder trabajar de una manera tan amigable, me ví en la obligación de devolver el favor.


- Sobre los vídeo tutoriales para realizar la aplicación completa desde cero explicado linea por linea, tengo ya montados y subidos todos los vídeos que explican muy detalladamente como enfocar el problema del servidor y como resolver la implementación de una manera eficiente.
Bueno, por motivos supongo que obvios no colgaré directamente aquí los link, simplemente por que yo soy usuario de los 3 lenguajes que se parecen a Div, y por mi propia comodidad he realizado el ejemplo en uno de ellos, y bueno, he intentado mencionar tanto uno como el otro, sin usar nada especifico de uno de ellos, y colgaré el ejemplo en Código en ambos foros.
Me sabe mal estar entre 2 mareas, mi intención es siempre la de aportar algo de utilidad a las comunidades.
Por esto, invito a cualquiera que así lo crea conveniente a que mire la lista de reproducción de mi channel de youtube, ya se encuentran disponibles 4 vídeos de casi 1 hora de duración con una explicación muy muy detallada sobre el tema.


En cuanto termine lo que me falta de vídeos colgaré en este foro el ejemplo con el Source code en BennuGD.


Bueno, un saludo y gracias por la lib, me encanta el api que tiene  :)
Título: Re:BennuplayNet
Publicado por: Erkosone en Mayo 29, 2012, 10:22:53 am
Hola, os dejo el código del programa de los vídeos en lenguaje Bennu.


- He detectado un ligero bug que también aprovecho para reportar, es algo supongo de fácil arreglo.


* Sucede que si el server y el cliente n modifican datos de "players" a la vez, los datos no se actualizan bien en cliente servidor, pero si solo los modifica uno de ellos si, no se si esto es normal o es un bug de la versión que tengo yo de la lib? no se si realmente es la versión mas actualizada.
Dejo el programa del vídeo como ejemplo.
Un saludo.
 
Título: Re:BennuplayNet
Publicado por: l1nk3rn3l en Mayo 29, 2012, 02:10:25 pm
 ;D

intenta probar la version que esta en el bennupack y  nos cuentas
Título: Re:BennuplayNet
Publicado por: Milton884 en Agosto 23, 2012, 10:38:26 pm
Hola, os dejo el código del programa de los vídeos en lenguaje Bennu.


- He detectado un ligero bug que también aprovecho para reportar, es algo supongo de fácil arreglo.


* Sucede que si el server y el cliente n modifican datos de "players" a la vez, los datos no se actualizan bien en cliente servidor, pero si solo los modifica uno de ellos si, no se si esto es normal o es un bug de la versión que tengo yo de la lib? no se si realmente es la versión mas actualizada.
Dejo el programa del vídeo como ejemplo.
Un saludo.


Hola, estoy en la misma.. con ese bug, lei los videotutoriales que estan muy buenos de hecho, de BennuPlayNet. Baje el ejemplo en lenguaje Bennu y tiene ese Bug que no se actualizan bien en cliente y servidor pero si solo los modifica uno de ellos si. :S .


Ayuda
Título: Re:BennuplayNet
Publicado por: Milton884 en Agosto 24, 2012, 06:37:16 am
Entonces la libreria quedo ahi? No se puede hacer como una especie de array de Replicas (no de PLayers) , replicas, para distintos tipos de cosas  como objetos, NpCs. etc
Título: Re:BennuplayNet
Publicado por: Milton884 en Septiembre 05, 2012, 05:49:19 am
Estaria bueno que agreguen a la libreria la posibilidad de declarar mas de 1 replica y de cualquier tipo, porque si no uno se queda corto, con un juego por ejemplo de la dimension del Argentum


Espero que lo puedan hacer algun dia, y q no sea en años porque quiero poner mi juego ONLINE xD
Título: Re:BennuplayNet
Publicado por: BlySntK en Abril 08, 2017, 02:38:50 pm
Siento recordar este hilo... Pero tenía que decirlo. OLÉ y más OLÉ!! Bennu por siempre!!! Que nunca muera este lenguaje tan amigable y productivo. He sido (y sigo siendo) desarrollador con el motor de Unity3D/2D y demás... pero cuando se trata de hacer exclusivamente juegos 2D... lo siento por Unity pero me gusta muchísimo más la versatilidad de Bennu. Este lenguaje me enamoró y me sigue emocionando a cada año que pasa.  :'( Haré lo que sea necesario para que mucha más gente se introduzca en él, y más aún cuando ya veo que hay una libreria mínima para hacer de Bennu una experiencia también online. Sé que está DivGo! Para web, pero esto del Net es una joya en bruto :)

Mil gracias a la comunidad: learning it one more time ;)