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.
Gemix Photon
- shao
- Posts: 6048
- Joined: Wed Jun 17, 2009 4:51 pm
Re: GemixPhoton
You do not have the required permissions to view the files attached to this post.
Contacto: romopua@gmail.com
- Nowy
- Posts: 599
- Joined: Sat Oct 04, 2008 11:14 am
- Contact:
Re: GemixPhoton
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.
-
coldev
- Posts: 49
- Joined: Tue Mar 24, 2009 6:56 pm
Re: GemixPhoton
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
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
- CicTec
- Posts: 16590
- Joined: Thu Jul 31, 2008 10:18 pm
Re: GemixPhoton
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.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.
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.
- shao
- Posts: 6048
- Joined: Wed Jun 17, 2009 4:51 pm
Re: GemixPhoton
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.
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.
Contacto: romopua@gmail.com
- Nowy
- Posts: 599
- Joined: Sat Oct 04, 2008 11:14 am
- Contact:
Re: GemixPhoton
Usuarios que se conectan al mes. Ahi creo se refiere al maximo en la opcion gratis, aunque no lo lei todo.
- CicTec
- Posts: 16590
- Joined: Thu Jul 31, 2008 10:18 pm
Re: GemixPhoton
La pagina relativa al photon realtime, al cual esta lib se basa tiene esos planes: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.
https://www.photonengine.com/en-US/Real ... ng#plan-20
En los terminos:
CCU = Concurrent User:
En breve 1 CCU = un usuarioConcurrent 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.
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:
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.Sample Month: EU peak 420 CCU, US peak 230 CCU, Other regions 0 CCU — CCU total = 420 + 230 = 650, matching 1000 CCU plan.
El plan FREE prevee tambien:
O sea hasta 8000 usuarios activos, como se calcula esto ? con la siguiente definicion:˜8k Monthly Actives
Que traducido dice: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).
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.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)
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:
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)20 CCU FREE PLAN: The bandwidth included is 3 GB per Plan CCU. No further bandwidth can be used.
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).
- erkosone
- Posts: 10656
- Joined: Tue Feb 24, 2009 2:13 pm
- Location: Barcelona.
- Contact:
Re: GemixPhoton
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.
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.
http://iphonegamesdev.com/
[GEMIX - VIDEO TUTORIALES] http://www.youtube.com/user/fasetconasa
http://gurugameprogramming.blogspot.com.es/
[GEMIX - VIDEO TUTORIALES] http://www.youtube.com/user/fasetconasa
http://gurugameprogramming.blogspot.com.es/
-
coldev
- Posts: 49
- Joined: Tue Mar 24, 2009 6:56 pm
Re: GemixPhoton
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)

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

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

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

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..
- shao
- Posts: 6048
- Joined: Wed Jun 17, 2009 4:51 pm
Re: GemixPhoton
Ok ahora lo entiendo mucho mejor gracias por las explicaciones gente.
Contacto: romopua@gmail.com