Aun asi, nos falta saber la API que tienes programado en el prg de prueba, para entender su funcionamiento.
Me gustaria aprender a usar esta API y entender todas las operaciones que realzia.
Una DOC de todas las funciones,variables y constantes.
A modo de practica, hacer un sencillo juego de mesa por que creo que es mas facil de programar...
Gemix Photon
- SimulatorOne
- Posts: 6626
- Joined: Tue Nov 17, 2009 2:52 pm
- Location: Barcelona
- Contact:
- SimulatorOne
- Posts: 6626
- Joined: Tue Nov 17, 2009 2:52 pm
- Location: Barcelona
- Contact:
Re: GemixPhoton
Bueno, me parece bueno disponer este modulo de multijugador en la nube(no local), al ser servicio free es normal limitarlo a 20 jugadores a la vez, en la misma APPID,y maximos puedes crear 5 free, en la misma email de usuario.
Esta bien para los que quieran iniciarse en la programacion a alto nivel y servidor en la nube free y muy facil de integrarlo en el juego.
Es facil dominarlo
Solo falta aprender toda api, para manejarlo bien.
Probe la R3, esta muy compacto y se entiende casi toda, aun asi doy animos en terminar de desarrollar esre modulo a full, y documentar la API.
Por ahora recomiendo hacer juegos por turnos, chats, y cosas simplonas.
No hagas unn juego de tanques en accion, cosas que se mueven a tiempo real... Existe siempre ese lag.
Tengo unas preguntas sobre iniciacion, conexion:
Que es tan importante el nombre de jugador?
Si luego no hay manera de averiguar los jugadores de la misma partida(sala)
Y el nombre de version???? Para que???
Como puede un jugador saber que partidas estan en curso(salas), para unirse...???
Faltan cosas del tipo: uso de contraseña en la partida, un limite de jugadores en esa partida.
Poder patear el culo a un jugador en concreo.
Esta bien para los que quieran iniciarse en la programacion a alto nivel y servidor en la nube free y muy facil de integrarlo en el juego.
Es facil dominarlo
Solo falta aprender toda api, para manejarlo bien.
Probe la R3, esta muy compacto y se entiende casi toda, aun asi doy animos en terminar de desarrollar esre modulo a full, y documentar la API.
Por ahora recomiendo hacer juegos por turnos, chats, y cosas simplonas.
No hagas unn juego de tanques en accion, cosas que se mueven a tiempo real... Existe siempre ese lag.
Tengo unas preguntas sobre iniciacion, conexion:
Que es tan importante el nombre de jugador?
Si luego no hay manera de averiguar los jugadores de la misma partida(sala)
Y el nombre de version???? Para que???
Como puede un jugador saber que partidas estan en curso(salas), para unirse...???
Faltan cosas del tipo: uso de contraseña en la partida, un limite de jugadores en esa partida.
Poder patear el culo a un jugador en concreo.
-
coldev
- Posts: 49
- Joined: Tue Mar 24, 2009 6:56 pm
Re: GemixPhoton
Como funciona Photon en este momento con Gemix?
Tiene una función de auto conectar a la partida X nombrada al comienzo del PRG (Match_Name)
en el caso de que la partida X no exista , entonces la crea ...
Por eso en el momento no hay búsqueda de otras partidas , o funciones que lo hagan..
Puedes cambiarle el MatchName y ya tienes otras salas..
Por ahora recomiendo hacer juegos por turnos, chats, y cosas simplonas.
No hagas unn juego de tanques en accion, cosas que se mueven a tiempo real... Existe siempre ese lag.
Ok tendremos eso en cuenta... y la documentación en breve estará lista..., para juegos en tiempo real ya estamos estudiando
alguna función para di simular el LAG
Que es tan importante el nombre de jugador?
Si luego no hay manera de averiguar los jugadores de la misma partida(sala)
Ya en breve existirá la función que comentas, nombre = photon_get_name_player(N);
Y el nombre de version???? Para que???
Buena pregunta, en la mayoría de juegos multiplayer debes tener X versión para conectarte al juego ,
eso lo hacen los desarrolladores del juego , para que nuevas características del juego , no se encuentren
con viejas versiones del juego y haya problemas gráficos por así decirlo (ej: en la versión X existe un arma que en la versión Y no)
Así se garantiza la congruencia con las partidas multiplayer entre diferentes versiones y pueden co-existir entre si , sin ningún problema.
Eso pasa mucho con Counter Strike , la gente juega online viejas versiones y otros juegan la ultima.
La mayoría de desarrolladores en Unity lo hacen para evitarse dolores de cabeza al haber tantos usuarios, usando
diferentes versiones y la mayoría de jugadores no actualizan el juego , así que para evitar problemas mejor usar
un sistema de versiones a medida que tu juego tenga mejoras..
Bueno en la practica Photon solo busca determinadas partidas , relacionadas solo con la versión suministrada en Gemix
y en este caso con el nombre de la partida que le das también...
Y cuando este lista la función de buscar por regiones(Continentes) entonces solo buscara por la versión que le des al comienzo...
Como puede un jugador saber que partidas están en curso(salas), para unirse...???
en breve habrá esa función inclusive info como el ping de la sala, como te pudiste dar cuenta, soltamos la librería así, para que vieran el potencial , antes de
terminarla, pero hay un montón de funciones que faltan, pero como dice el primer post se añadirán en breve...
también falta la función donde puedes escoger la región del mundo donde deseas conectarte, como en otros juegos..
pronto...
Lo mas difícil ya se ha hecho, que es meter ese monstruo en un simple modulo fácil de entender...
Hemos probado el juego , una hora conectado a otra instancia , y es muy estable , es excelente para produccion
Faltan cosas del tipo: uso de contraseña en la partida, un limite de jugadores en esa partida.
Poder patear el xxx a un jugador en concreto.
La photon es super compleja de entender en C++, la tratamos de abstraer lo mas posible, inclusive hicimos un breve
administrador de mensajes y eventos para poder entender la mecánica interna de un juego Online y poder personalizarlo aun mas
en Gemix... (Hacerte tu propia playnet usando código Gemix)
Si cosas como las funciones típicas de la PlayNet se desarrollaron con tiempo, debes ser paciente y probar lo que hay
Tomate un café y disfruta el momento..
Tiene una función de auto conectar a la partida X nombrada al comienzo del PRG (Match_Name)
en el caso de que la partida X no exista , entonces la crea ...
Por eso en el momento no hay búsqueda de otras partidas , o funciones que lo hagan..
Puedes cambiarle el MatchName y ya tienes otras salas..
Por ahora recomiendo hacer juegos por turnos, chats, y cosas simplonas.
No hagas unn juego de tanques en accion, cosas que se mueven a tiempo real... Existe siempre ese lag.
Ok tendremos eso en cuenta... y la documentación en breve estará lista..., para juegos en tiempo real ya estamos estudiando
alguna función para di simular el LAG
Que es tan importante el nombre de jugador?
Si luego no hay manera de averiguar los jugadores de la misma partida(sala)
Ya en breve existirá la función que comentas, nombre = photon_get_name_player(N);
Y el nombre de version???? Para que???
Buena pregunta, en la mayoría de juegos multiplayer debes tener X versión para conectarte al juego ,
eso lo hacen los desarrolladores del juego , para que nuevas características del juego , no se encuentren
con viejas versiones del juego y haya problemas gráficos por así decirlo (ej: en la versión X existe un arma que en la versión Y no)
Así se garantiza la congruencia con las partidas multiplayer entre diferentes versiones y pueden co-existir entre si , sin ningún problema.
Eso pasa mucho con Counter Strike , la gente juega online viejas versiones y otros juegan la ultima.
La mayoría de desarrolladores en Unity lo hacen para evitarse dolores de cabeza al haber tantos usuarios, usando
diferentes versiones y la mayoría de jugadores no actualizan el juego , así que para evitar problemas mejor usar
un sistema de versiones a medida que tu juego tenga mejoras..
Bueno en la practica Photon solo busca determinadas partidas , relacionadas solo con la versión suministrada en Gemix
y en este caso con el nombre de la partida que le das también...
Y cuando este lista la función de buscar por regiones(Continentes) entonces solo buscara por la versión que le des al comienzo...
Como puede un jugador saber que partidas están en curso(salas), para unirse...???
en breve habrá esa función inclusive info como el ping de la sala, como te pudiste dar cuenta, soltamos la librería así, para que vieran el potencial , antes de
terminarla, pero hay un montón de funciones que faltan, pero como dice el primer post se añadirán en breve...
también falta la función donde puedes escoger la región del mundo donde deseas conectarte, como en otros juegos..
pronto...
Lo mas difícil ya se ha hecho, que es meter ese monstruo en un simple modulo fácil de entender...
Hemos probado el juego , una hora conectado a otra instancia , y es muy estable , es excelente para produccion
Faltan cosas del tipo: uso de contraseña en la partida, un limite de jugadores en esa partida.
Poder patear el xxx a un jugador en concreto.
La photon es super compleja de entender en C++, la tratamos de abstraer lo mas posible, inclusive hicimos un breve
administrador de mensajes y eventos para poder entender la mecánica interna de un juego Online y poder personalizarlo aun mas
en Gemix... (Hacerte tu propia playnet usando código Gemix)
Si cosas como las funciones típicas de la PlayNet se desarrollaron con tiempo, debes ser paciente y probar lo que hay
Tomate un café y disfruta el momento..
Last edited by coldev on Fri Oct 27, 2017 9:18 pm, edited 1 time in total.
- shao
- Posts: 6048
- Joined: Wed Jun 17, 2009 4:51 pm
Re: GemixPhoton
Ok yo al menos estaré esperando esa actualización que hará la librería más adecuada al juego en tiempo real.
Contacto: romopua@gmail.com
- SimulatorOne
- Posts: 6626
- Joined: Tue Nov 17, 2009 2:52 pm
- Location: Barcelona
- Contact:
Re: GemixPhoton
No existe manera de listar partidas MatchName, con el numero de jugadores...coldev wrote:Como funciona Photon en este momento con Gemix?
Tiene una función de auto conectar a la partida X nombrada al comienzo del PRG (Match_Name)
en el caso de que la partida X no exista , entonces la crea ...
Por eso en el momento no hay búsqueda de otras partidas , o funciones que lo hagan..
Puedes cambiarle el MatchName y ya tienes otras salas..
Del mismo Servidor APPID.
Por el momento no existe eso?¿
Muy interesante y tiene Logica.coldev wrote: Y el nombre de version???? Para que???
Buena pregunta, en la mayoría de juegos multiplayer debes tener X versión para conectarte al juego ,
eso lo hacen los desarrolladores del juego , para que nuevas características del juego , no se encuentren
con viejas versiones del juego y haya problemas gráficos por así decirlo (ej: en la versión X existe un arma que en la versión Y no)
Así se garantiza la congruencia con las partidas multiplayer entre diferentes versiones y pueden co-existir entre si , sin ningún problema.
Eso pasa mucho con Counter Strike , la gente juega online viejas versiones y otros juegan la ultima.
La mayoría de desarrolladores en Unity lo hacen para evitarse dolores de cabeza al haber tantos usuarios, usando
diferentes versiones y la mayoría de jugadores no actualizan el juego , así que para evitar problemas mejor usar
un sistema de versiones a medida que tu juego tenga mejoras..
Bueno en la practica Photon solo busca determinadas partidas , relacionadas solo con la versión suministrada en Gemix
y en este caso con el nombre de la partida que le das también...
Que pasa si la version NO es la misma, son diferentes?¿
Deberia rechazar la conexion, dando el motivo: Version incompatible.
Interesante, por defecto en la web me informa que es Europa.coldev wrote: Y cuando este lista la función de buscar por regiones(Continentes) entonces solo buscara por la versión que le des al comienzo...
Ya veo, sigue investigando y desarrollando a tope.coldev wrote: Como puede un jugador saber que partidas están en curso(salas), para unirse...???
en breve habrá esa función inclusive info como el ping de la sala, como te pudiste dar cuenta, soltamos la librería así, para que vieran el potencial , antes de
terminarla, pero hay un montón de funciones que faltan, pero como dice el primer post se añadirán en breve...
también falta la función donde puedes escoger la región del mundo donde deseas conectarte, como en otros juegos..
pronto...
Lo mas difícil ya se ha hecho, que es meter ese monstruo en un simple modulo fácil de entender...
Hemos probado el juego , una hora conectado a otra instancia , y es muy estable , es excelente para produccion
Espero que puedas sacar interesantes funciones,variables...etccoldev wrote: Faltan cosas del tipo: uso de contraseña en la partida, un limite de jugadores en esa partida.
Poder patear el xxx a un jugador en concreto.
La photon es super compleja de entender en C++, la tratamos de abstraer lo mas posible, inclusive hicimos un breve
administrador de mensajes y eventos para poder entender la mecánica interna de un juego Online y poder personalizarlo aun mas
en Gemix... (Hacerte tu propia playnet usando código Gemix)
Si cosas como las funciones típicas de la PlayNet se desarrollaron con tiempo, debes ser paciente y probar lo que hay
Tomate un café y disfruta el momento..
- SimulatorOne
- Posts: 6626
- Joined: Tue Nov 17, 2009 2:52 pm
- Location: Barcelona
- Contact:
Re: GemixPhoton
Si estoy muy interesada, ya que veo que esto funciona, y he decidido añadirlo a mi Pack de IDE Notepad++ ...etc
Añadir el modulo dll dentro intregrado en el compilador + el Test que tienes programado.
Por ahora dispongo de la ultima GemixPhoton RC3(Release Candidate 3), la iré actualizando durante el desarrollo.
Falta de tu parte redactar una DOC tipo API de Photon, yo la añadire dentro del pack y la vinculo en el Menu>Ejecutar>API Photon online.
Tambien añadir la API dentro del sintaxis del notepad++
Añadir el modulo dll dentro intregrado en el compilador + el Test que tienes programado.
Por ahora dispongo de la ultima GemixPhoton RC3(Release Candidate 3), la iré actualizando durante el desarrollo.
Falta de tu parte redactar una DOC tipo API de Photon, yo la añadire dentro del pack y la vinculo en el Menu>Ejecutar>API Photon online.
Tambien añadir la API dentro del sintaxis del notepad++
- Nowy
- Posts: 599
- Joined: Sat Oct 04, 2008 11:14 am
- Contact:
- Nowy
- Posts: 599
- Joined: Sat Oct 04, 2008 11:14 am
- Contact:
Re: GemixPhoton
Vale, despues de unas pruebas online con Alice, descubrimos que una parte del codigo cambiandola va mas fluido, el lag se nota menos.
Esta parte:
while ( Clientes_Conectados[codigo])
x= Clientes_Posicion[codigo].x;
y= Clientes_Posicion[codigo].y;
frame;
end
sustituirla por esta:
while ( Clientes_Conectados[codigo])
/*
x= Clientes_Posicion[codigo].x;
y= Clientes_Posicion[codigo].y;
*/
if(x <Clientes_Posicion[codigo].x)
x++;
end
if(x >Clientes_Posicion[codigo].x)
x--;
end
if(y >Clientes_Posicion[codigo].y)
y--;
end
if(y <Clientes_Posicion[codigo].y)
y++;
end
frame;
end
no es la solucion, pero al menos no da la sensacion de tanto lag.
Esta parte:
while ( Clientes_Conectados[codigo])
x= Clientes_Posicion[codigo].x;
y= Clientes_Posicion[codigo].y;
frame;
end
sustituirla por esta:
while ( Clientes_Conectados[codigo])
/*
x= Clientes_Posicion[codigo].x;
y= Clientes_Posicion[codigo].y;
*/
if(x <Clientes_Posicion[codigo].x)
x++;
end
if(x >Clientes_Posicion[codigo].x)
x--;
end
if(y >Clientes_Posicion[codigo].y)
y--;
end
if(y <Clientes_Posicion[codigo].y)
y++;
end
frame;
end
no es la solucion, pero al menos no da la sensacion de tanto lag.
- erkosone
- Posts: 10656
- Joined: Tue Feb 24, 2009 2:13 pm
- Location: Barcelona.
- Contact:
Re: GemixPhoton
Hacer juegos en red de calidad no es tan sencillo, y el lag siempre va a estar, es inherente a internet.
Por si os quereis meter mas a fondo en programar tecnicas mas sofisticadas para juegos en red yo os comento la que uso yo de todas las que hay.. esta es relativamente sencilla y funciona mucho mejor que a pelo.
En lugar de enviar coordenadas enviad angulo y cantidad de movimiento.
Y cada segundo o así comparad las coordenadas del servidor con las del cliente y corregir el cliente si es necesario.
En el cliente en lugar de hacer un proceso simple que coloque el grafico en donde digan X e Y haced un pequeño metodo que mueva el grafico en la dirección que el indica el angulo los pixels que indiquen la cantidad de movimiento, y un evento que se lance cada segundo que haga un check de coordenadas y corrija si es necesario o directamente que adquiera las coordenadas cada segundo y que las actualize.
Con esto la sensacion de lag desaparece por completo.
Por si os quereis meter mas a fondo en programar tecnicas mas sofisticadas para juegos en red yo os comento la que uso yo de todas las que hay.. esta es relativamente sencilla y funciona mucho mejor que a pelo.
En lugar de enviar coordenadas enviad angulo y cantidad de movimiento.
Y cada segundo o así comparad las coordenadas del servidor con las del cliente y corregir el cliente si es necesario.
En el cliente en lugar de hacer un proceso simple que coloque el grafico en donde digan X e Y haced un pequeño metodo que mueva el grafico en la dirección que el indica el angulo los pixels que indiquen la cantidad de movimiento, y un evento que se lance cada segundo que haga un check de coordenadas y corrija si es necesario o directamente que adquiera las coordenadas cada segundo y que las actualize.
Con esto la sensacion de lag desaparece por completo.
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/
- SimulatorOne
- Posts: 6626
- Joined: Tue Nov 17, 2009 2:52 pm
- Location: Barcelona
- Contact:
Re: GemixPhoton
Depende del genero de juego, y que cosas necesitamos replicar a los clientes.
Aun que en este caso, no hay un server que replique y gestione la partida, podemos determinar que seria el jugador 1.
La idea es emular en esos milisegundos de lag(por cada actualizacion de algunos de los datos) y calcular un movimiento artificial, realizar una media.
Calcular los tiempos,cada vez que hay actualizacion de la antigua y los nuevos datos.
Todo depende de "como se mueve" en el juego, lo mas adecuado.
Aun que en este caso, no hay un server que replique y gestione la partida, podemos determinar que seria el jugador 1.
La idea es emular en esos milisegundos de lag(por cada actualizacion de algunos de los datos) y calcular un movimiento artificial, realizar una media.
Calcular los tiempos,cada vez que hay actualizacion de la antigua y los nuevos datos.
Todo depende de "como se mueve" en el juego, lo mas adecuado.
![[RETO]: [MINI CONCURSO] Winter GAMES 2011 [JUEGO]: Rosie ~ The Rascal [RETO]: [MINI CONCURSO] Winter GAMES 2011 [JUEGO]: Rosie ~ The Rascal](../space/silver_medal.png)