Gemix Photon

Extensiones oficiales y no para expander el lenguaje Gemix.

Re: GemixPhoton

Postby shao » Wed Oct 25, 2017 10:20 pm

He abierto dos ventanas en el mismo pc pero a mi me va con bastante lag, ¿a qué se debe?.
Descargar el gif para ver el lag.
You do not have the required permissions to view the files attached to this post.
User avatar
shao
 
Posts: 6034
Joined: Wed Jun 17, 2009 4:51 pm

Re: GemixPhoton

Postby Nowy » Wed Oct 25, 2017 11:26 pm

No veo tanto lag, habria que ver exactamente de cuanto es asi a ojo puede ser desde 40ms a 800ms. El test no tiene suavizado de posicion ni nada de eso, la x e y se mandan y se reciben y tal cual donde esten ahi se coloca a lo bruto por asi decirlo. En los juegos usan trucos como suavizar el movimiento usar predicciones etc yo lo veo bien.
User avatar
Nowy
 
Posts: 597
Joined: Sat Oct 04, 2008 11:14 am
Location: Tenerife

Re: GemixPhoton

Postby coldev » Wed Oct 25, 2017 11:55 pm

la latencia (lag ) es normal en online .... (tu lo ves como lag porque estas corriendo en el mismo PC)
el otro Jugador no notara ese movimiento al que te refieres


tu PC envía el movimiento al server -> ms en volver -> luego tu PC lo recibe y representa gráficamente el movimiento = es normal...

intenta adicionar la linea siguiente en comentarios // a ver si mejora..
//PHOTON_RELIABLE_PACKET = true;

Como dice Nowy .. Hay una técnica para prevenir ese movimiento brusco en algunos juegos y se llama predicción del lado del cliente
(a veces el cliente funciona como servidor mientras se soluciona el lag esperando al server, funciona como una maquina del tiempo )
https://en.wikipedia.org/wiki/Client-side_prediction

http://franverona.com/blog/sincronizaci ... os-online/
http://isaaclacoba.github.io/tinman/pos ... uegos.html
http://blogs.shephertz.com/es/2013/08/1 ... yer-games/
https://www.newswor.info/cmo-crear-un-m ... -lnea.html
https://repositorio.uam.es/bitstream/ha ... sequence=1
https://www.scirra.com/tutorials/892/mu ... /es/page-1

En mi opinión el que mejor usa el concepto(Client Side Prediction) es el multiplayer del Unreal Engine, no he visto el primer juego en este motor que
se note el Lag.. así los jugadores tengan 900 de ping..

El que se cree algún código de predicción en Gemix puede compartirlo, para entre todos mejorarlo...


Cambiando de tema...

usar esta variable en true, le indica al motor que todos los paquetes se envían y se verifica la llegada del mismo
PHOTON_RELIABLE_PACKET = true;

usar esta variable en false , envía los paquetes sin verificar (mas rapido)
PHOTON_RELIABLE_PACKET = false;


Nota: Hay una versión nueva disponible en el primer post
Cambios en el Prg:

+ compiler_options _use_cstyle_sizeof; //ahora la struct posicion2d reporta el tamano real
+ PHOTON_RELIABLE_PACKET = false;
+ while en recepcion de paquetes y eventos

coldev
 
Posts: 49
Joined: Tue Mar 24, 2009 6:56 pm

Re: GemixPhoton

Postby CicTec » Thu Oct 26, 2017 1:40 am

shao wrote:Estupendo, haber si pronto puedo integrar el multijugador en un juego que tengo casi hecho.
Por lo que entiendo esta librería ya te proporciona un servidor que permite partidas con un máximo de 20 usuarios, no tienes que montar tú ningún servidor, por lo que no necesitas nada más para crear un juego multijugador.

Si, el server lo proporciona la empresa de photon, mas bien un cloud global o un server/espacio server proprio si tienes una plan de pago en ellos.

El plan base (FREE) tiene un maximo de 20 conexiones (20 jugadores) con un plan de de pago llegas a no tener limites.

Al final el utilizo de la libreria se reduce a setear unas opciones y utilizar la API para crear el juego multijugador, cosas como config de server y cosas relacionadas se encarga la libreria photon en automatico.
User avatar
CicTec
 
Posts: 16553
Joined: Thu Jul 31, 2008 10:18 pm

Re: GemixPhoton

Postby shao » Thu Oct 26, 2017 12:39 pm

No lo entiendo la verdad.

100 conexiones significa que se pueden crear 100 partidas a la vez de 20 jugadores como máximo cada una.
¿Qué es 40.000 monthly actives?.

Lo aclaran abajo pero tampoco me queda muy claro.
You do not have the required permissions to view the files attached to this post.
User avatar
shao
 
Posts: 6034
Joined: Wed Jun 17, 2009 4:51 pm

Re: GemixPhoton

Postby Nowy » Thu Oct 26, 2017 1:18 pm

Usuarios que se conectan al mes. Ahi creo se refiere al maximo en la opcion gratis, aunque no lo lei todo.
User avatar
Nowy
 
Posts: 597
Joined: Sat Oct 04, 2008 11:14 am
Location: Tenerife

Re: GemixPhoton

Postby CicTec » Thu Oct 26, 2017 2:04 pm

shao wrote:No lo entiendo la verdad.

100 conexiones significa que se pueden crear 100 partidas a la vez de 20 jugadores como máximo cada una.
¿Qué es 40.000 monthly actives?.

Lo aclaran abajo pero tampoco me queda muy claro.

La pagina relativa al photon realtime, al cual esta lib se basa tiene esos planes:
https://www.photonengine.com/en-US/Real ... ng#plan-20

En los terminos:
CCU = Concurrent User:
Concurrent Users (CCU)

The number of users allowed to connect to your application is defined by its CCU. For plans the CCU total is defined by the sum of peaks for all regions.

En breve 1 CCU = un usuario
El plan free prevee 20 CCU o sea que en tu aplicacion se pueden conectar (ademas de ti) otros 19 usuarios, de cualquer region del mundo.

Otro ejemplo que hace:
Sample Month: EU peak 420 CCU, US peak 230 CCU, Other regions 0 CCU — CCU total = 420 + 230 = 650, matching 1000 CCU plan.

Tu juego recibe 420 conexiones de usuario de EU, 230 de US = 650, esto significa que para soportar este numero de usuario en tu juego se necesita el plan de 1000 CCU.

El plan FREE prevee tambien:
˜8k Monthly Actives

O sea hasta 8000 usuarios activos, como se calcula esto ? con la siguiente definicion:
We assume, as rule of thumb and based on our experience, 1 CCU to match 20 daily active users (DAU). Each DAU translates to 20 monthly actives (MAU).

Que traducido dice:
Supongamos, como regla general y basata en nuestra experiencia, 1 CCU para conectar 20 usuarios activos diarios (DAU = Daily Active User). Cada DAU se traduce en 20 activos mensuales (MAU = Montly Active User)


Supongamos que tienes una partida a dia con 20 usuarios todos los dias de un mes (30 dias), estas consumiendo 20CCU * 30 = 600 MAU o sea 600 sobre 8000 Montly Actives que el plan FREE prevee.

De conseguencia de haces el calculo de cuantas partidas puedes hacer diariamente en un mes con este plan, si necesitas mas y con mas usuario, calcularlo y pasar a otro eventual plan.

Luego hay el consumo de Bandwidth:
20 CCU FREE PLAN: The bandwidth included is 3 GB per Plan CCU. No further bandwidth can be used.

Cada plan y en este caso el plan FREE tiene 3GB de consumo gratuito si consumas mas (esto depende da cuantos datos transfiere/recibe tu juego a cada jugador * numero de jugadores)
tienes fees extra (aunque ya hayas pagado un plane), con las siguientes tarifas:
ADDITIONAL GB REGION
$0.05 Europe / Canada, East / USA, East / USA, West
$0.10 Asia / Australia / Chinese Mainland / India / Japan / South America / South Korea


O sea cada 1GB mas de consumo te cuesta en base a la region en la cual se pertenece (se supone).
User avatar
CicTec
 
Posts: 16553
Joined: Thu Jul 31, 2008 10:18 pm

Re: GemixPhoton

Postby erkosone » Thu Oct 26, 2017 2:14 pm

Hay otras tecnicas para eviar el efecto del lag.

El lag es inevitable, se use lo que se use, podeis enviar en vez de posición un vector con modulo y angulo de movimiento, y es el cliente el que calcula la posicion relativa del objeto, compaginandolo cada x segundos con una consulta directa de coordenadas para las correccciones.
User avatar
erkosone
 
Posts: 10654
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.

Re: GemixPhoton

Postby coldev » Thu Oct 26, 2017 10:20 pm

Lo de CCU es fácil de explicar :

el plan gratis tiene 20 CCU => quiere decir que tu juego puede tener maximo 20 usuarios al tiempo en una o en diferentes partidas...
(con la cuenta gratis puedes tener por ejemplo :
4 partidas de 5 jugadores cada una..
10 partidas de 2 jugadores cada una
2 partidas de 10 jugadores cada una
Resumen: En el mes siempre tendrás máximo 20 jugadores al tiempo sin importar cuantos se conecten.. ni que dias lo hagan.. ni en que hora lo hagan..
si en la semana x se conectaron entre 10 y 15 jugadores y no alcanzaron el tope no pasara nada el limite en gratis siempre sera 20 ..
y al otro mes sera lo mismo , si usas cuenta gratis el limite de tu juego sera 20 jugadores máximo por partida global o repartido en varias partidas como quieras...

un ejemplo con cuenta gratis mas complejo :

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..


Pero en el cartel dice que mi ancho de banda maximo es 3GB ?
En la practica te daras cuenta que mensualmente te sobra ancho de banda , similar a los planes de Telefonia Movil
que te venden planes de 1GB, 2GB , etc de internet .. usas wasap , redes sociales, y te sobra el ancho de banda..
bueno en Gemix es lo mismo , usar estructuras para mover personajes que solo pesan 10 a 50 bytes .. eso es un chiste
para planes de 3GB...

Que pasa si paso el limite de CCU?

No se podrán conectar mas usuarios al juego , hasta que alguien salga del juego

Una cuenta de pago puedo usarla en varios juegos?

Si con una te puedes crear varios APPID, lo mismo pasa con la cuenta gratis te puedes crear varios APPID (pero en este caso la suma de todos sera siempre max 2o players)



siempre sera gratis como dice el cartel ... (Forever Free)

Image

Aqui la mayoria de ejemplos en Unity incluye un APPID gratis , y los juegos siempre tendrán máximo 20 jugadores... sino quieres plan pago..

Image




pero viene la pregunta .... mi juego es fenomenal y requiero 100 jugadores en mi juego, y no tengo para pagar un plan comenzando ?
bueno para comenzar puedes crearte 5 cuentas gratis(usando diferentes email) ... y las repartes así :


APPID 1 : sala mundo duende (max 20 players)
APPID 2 : sala mundo orco (max 20 players)
APPID 3 : sala mundo humano (max 20 players)
APPID 4: sala mundo elfos (max 20 players)
APPID 5: sala mundo dungeons (max 20 players)

y de este modo podrás simular de forma fea un plan de 100 CCU(el que vale U$95 y aguanta 60 meses es muy economico ), espero haberme explicado...

https://www.photonengine.com/en-US/Real ... ng#plan-20



Ahora viene el ejemplo con una cuenta de pago (para los no tacaños):

con una cuenta de pago de 1000 ccu

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

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 quedarían disponibles (315 conexiones disponibles para usar)


Tengo una cuenta de pago y no deseo pagar mas.. que pasa con los juegos de android que tengo publicados y tienen la APPID de pago?


Una cuenta de pago no renovada automáticamente se convierte en cuenta gratis , asi por ejemplo si tenias una cuenta de pago
de 500 CCU y no la renovaste , entonces se convierte en 20CCU hasta que la renueves , asi los juegos que tenias en android
habian hasta 500 jugadores activos en un dia/hora/minuto/segundo, etc, ahora solo el juego podra tener activos 20 jugadores
hasta que pagues la factura..
coldev
 
Posts: 49
Joined: Tue Mar 24, 2009 6:56 pm

Re: GemixPhoton

Postby shao » Fri Oct 27, 2017 10:20 am

Ok ahora lo entiendo mucho mejor gracias por las explicaciones gente.
User avatar
shao
 
Posts: 6034
Joined: Wed Jun 17, 2009 4:51 pm

PreviousNext

Return to Extensiones Gemix

Who is online

Users browsing this forum: No registered users and 5 guests