BennuPhoton (Libreria Multiplayer )

Started by l1nk3rn3l, July 26, 2017, 09:06:07 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

l1nk3rn3l

BennuPhoton






+ 100% Online 
+ No requiere configuración en el router, si deseas conectar a una partida en internet.
+ No remplaza a BennuPlayNet ( Photon no funciona en LAN , a menos que la Lan este conectada a Internet)
aqui el hilo de la playNet
http://forum.bennugd.org/index.php?topic=1519.0
+ Permite   conexiones ilimitadas ,  mas de 50.000 jugadores  distribuidos en la misma/ diferentes partidas no tiene limite de ccu
+ La misma libreria multiplayer de Unity3D, pero mas facil de usar


Requisitos:
-----------------
+ Conexion a internet  (ya que el servidor esta en cada continente)

+ Crear una cuenta en https://www.photonengine.com y obtendras un APPID gratuita para comenzar.     
-----------------


Como Funciona Photon con Bennu ?


+ La topologia es de estrella , osease hay un servidor central que sirve a clientes y a los que crean la partida.
+ las ventajas son claras, podemos tener una partida viva siempre y cuando existan jugadores ya que habiendo
un servidor dedicado en otro pais , no pasara nada si el que creo la partida se salio del juego
+ jugadores de otros paises se podran conectar al juego sin tener conocimientos de abrir puertos en el router.
+ Automaticamente el juego se conecta al  servidor  mas cercano a su pais. (Obviamente desde codigo se podra
   especificar el continente para los mas exigentes, como en Unity)
+ es la libreria multiplayer online mas usada por encima de raknet (raknet funciona solo en lan/wan igual que bennuPlaynet , requieren un servidor dedicado y conocimientos de abrir puertos "port forwarding"  )
+ Photon Soporta android/ios y Javascript para escalar bennu
+ hay una desventaja , ya que habiendo un servidor por cada continente , no podras ver las partidas y jugadores
de otros continentes (a menos que selecciones el continente X desde el comienzo)
+ si seleccionas un servidor lejano a tu pais , existira un lag normal en el juego
+ te permite jugadores ilimitados concurrentes en el juego distribuidos en una partida o en varias partidas
   y en varias regiones del planeta

Sobre el maximo de jugadores concurrentes (CCU) funciona de la siguiente forma :


Probando con una cuenta gratuita te permite usar hasta 20 jugadores al tiempo en el juego,
eso quiere decir:

Un jugador X creo una partida y esa partida hay 3 jugadores sin contar al que creo la partida..
entonces en este momento  llevamos 4 jugadores al tiempo..

El jugador Z creo otra partida y esa partida tiene 10 jugadores sin contar al que creo la partida
en este momento llevamos 15 jugadores en total y asi sucesivamente hasta que se cumplan los
20 jugadores al tiempo de que habla la cuenta gratuita..  Pero en la practica te daras cuenta
que para empezar 20 son suficientes ya que constantemente se estan saliendo/metiendo jugadores de la partida..

Mas adelante te podras comprar una cuenta de 100 CCU /  1000 ccu / o conexiones ilimitadas  si tu juego crece , 
requerirás por lo menos 20 jugadores por cada region . digamos que una cuenta de pago de 100 ccu por lo menos..
Photon distribuira esos 100 que compraste equitativamente en todas las regiones, ya que no todas las partidas
tienen el mismo # de jugadores, y no todas las regiones tienen N partidas activas por asi decirlo.

Asi que por ejemplo el lunes 13 de diciembre de 2017 existen los siguientes jugadores:

con una cuenta de pago de 1000 ccu

america norte (120 jugadores)(30 partidas)
america sur (80 jugadores)(8 partidas)
europa  (400 jugadores)(60 partidas)
india (10 jugadores)(3 partidas)
asia (75 jugadores)(9 partidas)

en total tendriamos el lunes activos (685 jugadores activos)

y quedarian disponibles (315 conexiones disponibles para usar)

=====

Cual es la forma Correcta de cerrar una sala y Crear otra ?


let_me_alone(); //borra las variables y procesos bennu vinculados a la sala
PHOTON_FINALIZE(); //..borra todo enlace a Photon
frame;
.....  Aqui creas  otra sala (Room)







Descargas :


BennuPhoton RTM 2.1

http://www.mediafire.com/file/2y1m1ynd1omsyy3/BennuPhoton_RTM_1.2.rar/file

BennuPhoton sources

https://sourceforge.net/projects/coldev/files/BennuPhoton





JaViS

Muchas gracias!!


pregunta, tienen planeado hacer ports de la libreria a Android y otros OS?


Saludos!
Working on Anarkade. A couch multiplayer 2D shooter.

l1nk3rn3l

Actualmente se esta probando en windows


A mediano plazo estara disponible en :
Windows x32 /  Android / Html5(Javascript)

No habran mas ports solo el codigo fuente como siempre, si alguien quiere portarlo donde quiera..


Teniendo  la version html5 podras portarla a cualquier S.O.
hemos probado Photon  en Javascript y no es lenta para nada... 

y con servicios como phonegap y ludei  (Busca en google)
perfectamente tendras bennu multiplayer en IOS / Mac / Windows store

Poco a poco estamos integrando las nuevas librerias a bennu.. pronto habra noticias del 3d

l1nk3rn3l

#4
Obtenemos 25 mil fps en un corei5 win10...




Claro que falta probarlo con la parte gráfica , pero ya es algo bueno el rendimiento..

Nueva prueba de rendimiento , estamos usando el mismo estilo de PlayNet
usando un hilo aparte para la red ,

+  bennu corre en el hilo ppal (main thread)
+  photon esta corriendo en un hilo hijo (child thread ) 

Asi el juego no se ralentiza para nada como en el diseño de PlayNet, hace Uso eficiente de los nucleos del procesador..


actualmente la libreria Online solo pesa 700k ...   :o

Un demo para que nos reporten cuantos fps obtienen .. (se pueden abrir varias instancias)

http://www.mediafire.com/file/i98dhd7d7qvq1e9/testing+photon.rar

Encuesta

sistema operativo : _____________
fps: ______________
procesador: ______


Como se puede ver en el ejemplo , si ejecutas una nueva instancia , se conecta
al juego existente .. muy transparente y sin configurar nada...



En la pantalla de ejemplo Hay 4 jugadores en el mismo pc , todos conectados a internet en la misma partida , y se
obtienen 11mil fps en el mismo pc..
permite hasta 20 ya que el demo usa una cuenta gratuita, recordar que la libreria soporta hasta 1000/e ilimitado de jugadores usando una cuenta de pago ...  para hacer un MMO... ya veréis cuando este el nuevo 3D ...

Para usar una cuenta de pago la libreria permite pasar la APPID para soportar mas jugadores y usar tu cuenta de photon
personalizada ya sea gratuita o de pago.

Obviamente conectando en diferentes ubicaciones geograficas  se obtendran mas fps... en el momento
solo teniamos una PC para probar

Drumpi

No sé qué pensar, la verdad.
A ver, la idea de poder usar la librería me encanta y os doy muchísimo las gracias por el trabajo, L1nk.

Pero me resulta rara la idea de depender de un servidor externo para jugar en red a algo que desarrollamos nosotros. Lo entiendo en el ámbito de un MMORPG por tener un mundo persistente y eso, pero entonces 20 personas se me antojan pocas, no para una partida, sino para la suma de todas.
20 personas, para la gente que solemos tener, y el tipo de desarrollo que hacemos pues es genial, y si no hay que andar configurando nada, pues mejor... ¿Pero no se usan para eso las redes locales? ^^U

Tengo que leerlo más a fondo. En principio me mola la idea de hacer un juego tipo Zelda de SNES en un mundo persistente, o de carreras. Quizás si se puede configurar para que uno de cada 20 usuarios pueda usar su propia cuenta gratuita, pues sería una solución genial. Tengo ahora demasiadas ideas en la cabeza y poca información, necesitaré tiempo para asimilarlo y dar un veredicto, pero muchas gracias por vuestro trabajo, una vez más, L1nk.

Y por favor, sacadlo como módulo de Bennu independiente, no lo hagais integrado a vuestra versión de Bennu, como pasó con el teclado de Andrioid de PixTudio ^^U
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)

l1nk3rn3l

#6
Usar un servidor externo , requiere solo tener internet , y la mayoria de jugadores tiene una conexion
internet...  sera tan transparente como la playnet.. para facilitar a los bennuseros/diveros.. parecera
que estamos usando una LAN..


BennuPhoton es un modulo independiente bennugd como puedes ver en la beta
descargable... bennuphoton.dll

+ falta portarlo a pixtudio (aqui si es monolitico como dices)

El desarrollador bennu crea cuenta gratuita, el jugador puede entrar a la partida sin crear
cuenta...
Lo de 20 jugadores es relativo (solo aplica para cuenta free), ya que puedes pagar una cuenta de 100 / 1000 / o ilimitado de jugadores
y la libreria funcionara con esa cuenta que pagaste...  soportando bennu hasta 1000 / 50.000 o ilimitado de jugadores(cuenta de pago)


Digamos que para empezar como INDIES no podemos pagar una cuenta de 100 jugadores..
entonces la podemos simular con cuentas gratis.... de la siguiente forma... mientras te compras la de pago..

cada cuenta gratis tiene un codigo unico cuando la creas y es una string
internamente en bennu puedes usarlas como se te de la ###

1. app_id_xxx_xxx_xxx123
2. app_id_xxx_xxx_xxx124
3. app_id_xxx_xxx_xxx125
4. - ----- etc
5 . ------  etc

byex un mmo : un pseudocodigo

1. mundo enano(20 jugadores)
   bennu_connect(app_id_xxx_xxx_xxx123);
2. mundo elfo (20 jugadores)
   bennu_connect(app_id_xxx_xxx_xxx124);
3. mundo orco (20 jugadores)
   bennu_connect(app_id_xxx_xxx_xxx125);
4. mundo mazmorras (20 jugadores)
   bennu_connect(app_id_xxx_xxx_xxx126);
5. mundo humano (20 jugadores)
   bennu_connect(app_id_xxx_xxx_xxx127);

perfectamente tenemos 100 conexiones para nuestro juego... sea 2d o 3d
tu como Desarrollador solo tendras que crear 5 cuentas free para este ejemplo...
los jugadores no tendran que crear cuentas...

Como digo si tu juego crece puedes comprarte una cuenta de pago que tendra conexiones ilimitadas...


Si ya quieres algo mas personalizado puedes usar la PlayNet que es LAN/WIFI/WAN .

Ya que las licencias de unity , gamemaker y  construct  se estan poniendo costosas
pienso que bennu sera una buena opcion..

Y la idea es portar completamente bennu a html5 para que los juegos multiplayer
corran en una pagina como en unity con su exportador html5 ,
y no tengamos los clasicos  inconvenientes de usuarios tratando de portar su juego
a tal plataforma...

NOTA: Por favor llenar la encuesta que dejamos en un post anterior , usando la beta
cuantos fps obtienen y demas


sistema operativo : _____________
fps: ______________
procesador: ______


l1nk3rn3l

Se ha corregido el primer post ya que la gente de Photon me dijo que estaba mal
la informacion, y que photon  no tiene limites en las conexiones (ilimitado ccu)

el primer post se ha editado...   :P

aqui el post del foro photon

http://forum.photonengine.com/discussion/10414/new-examples-please

JaViS

Quote from: l1nk3rn3l on August 09, 2017, 03:26:57 AM
photon  no tiene limites en las conexiones (ilimitado ccu)


No tiene limites en las cuentas pagas, no?
Working on Anarkade. A couch multiplayer 2D shooter.

l1nk3rn3l

#9
Quote from: JaViS on August 09, 2017, 02:27:03 PM
Quote from: l1nk3rn3l on August 09, 2017, 03:26:57 AM
photon  no tiene limites en las conexiones (ilimitado ccu)


No tiene limites en las cuentas pagas, no?

Exacto .. puedes pagar por varios planes ....

https://www.photonengine.com/en-US/Realtime/Pricing

tienen desde 20/100/500/1000/ e ilimitado de conexiones...

varios precios y varias capacidades de carga del juego... 

el que me llama la atencion es el de 100 ccu -> por  u$95  te dan 60 meses o eso es lo que entiendo..


Puedes llenar la encuesta de la primera alpha descargable de Photon y el post de CARTAGENA3d que esta por ahi que tiene alpha tambien ....


sistema operativo : _____________
fps: ______________
procesador: ______


SplinterGU

linux (wine)
13300 fps
i7 8 cores
wifi
conexion de 50mb
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

l1nk3rn3l


Transdiv

sistema operativo : Windows 7-x64
fps: 270219
procesador: Intel Core i5 4440 (4 cores)

Obviamente esos FPS deben estar errados; Es demasiado alto, pero es lo que me sale.

l1nk3rn3l

#13
 ;D

Es lo normalito acabo de obtener  en un WIN7, corei3 y aceleradora   1050 TI:

FPS: 310.000

cuando le adicionemos algo de complejidad a la escena , ya bajara a lo normal...



l1nk3rn3l

#14
De la cocina del grupo , sale algo maravilloso del horno...


Nueva beta disponible en el primer post.. (descarga en el primer post)
pueden probarlo con sus aplicaciones a ver como va...

pronto incluiremos juegos de ejemplo , pero ya se podria hacer un juego online
perfectamente para subirlo a  itch.io o gamejolt......

La partida permanece activa siempre y cuando existan jugadores..




incluye la maqueta ppal de lo que tendria un juego en photon, pueden correr
multiples copias , la latencia es casi zero , y si adicionas set_fps(0,0); obtendras buenos fps...

lo limite a 120fps porque el grafico sale volando al moverlo... pero puedes darle set_fps(0,0); como dije

el nucleo de red corre en un hilo aparte por eso bennu no se ralentiza..
usa listas enlazadas para la gestion de paquetes y es optimizado al 100%

pronto habra una version mas con la filosofia DIV, me explico menos complicada
al estilo de la PlayNet facil de usar... por el momento solo es la version RC1 no es definitiva..

como se dijo , la librería soporta miles de usuarios en la misma o en diferente partida.. (es cuestión
del programador gestionar como van los usuarios en el juego)

Comenten experiencias y fps logrados.. Gracias

Encuesta

sistema operativo : _____________
fps: ______________
procesador: ______