Gemix Photon

Extensiones oficiales y no para expander el lenguaje Gemix.

Re: GemixPhoton

Postby SimulatorOne » Fri Oct 27, 2017 2:04 pm

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...
User avatar
SimulatorOne
 
Posts: 6626
Joined: Tue Nov 17, 2009 2:52 pm
Location: Barcelona

Re: GemixPhoton

Postby SimulatorOne » Fri Oct 27, 2017 6:30 pm

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.
User avatar
SimulatorOne
 
Posts: 6626
Joined: Tue Nov 17, 2009 2:52 pm
Location: Barcelona

Re: GemixPhoton

Postby coldev » Fri Oct 27, 2017 9:04 pm

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.. 8-)
Last edited by coldev on Fri Oct 27, 2017 9:18 pm, edited 1 time in total.
coldev
 
Posts: 49
Joined: Tue Mar 24, 2009 6:56 pm

Re: GemixPhoton

Postby shao » Fri Oct 27, 2017 9:15 pm

Ok yo al menos estaré esperando esa actualización que hará la librería más adecuada al juego en tiempo real.
User avatar
shao
 
Posts: 6034
Joined: Wed Jun 17, 2009 4:51 pm

Re: GemixPhoton

Postby SimulatorOne » Sat Oct 28, 2017 3:52 pm

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

No existe manera de listar partidas MatchName, con el numero de jugadores...
Del mismo Servidor APPID.

Por el momento no existe eso?¿

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

Muy interesante y tiene Logica.
Que pasa si la version NO es la misma, son diferentes?¿
Deberia rechazar la conexion, dando el motivo: Version incompatible.


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

Interesante, por defecto en la web me informa que es Europa.

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

Ya veo, sigue investigando y desarrollando a tope.

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

Espero que puedas sacar interesantes funciones,variables...etc
User avatar
SimulatorOne
 
Posts: 6626
Joined: Tue Nov 17, 2009 2:52 pm
Location: Barcelona

Re: GemixPhoton

Postby SimulatorOne » Sat Oct 28, 2017 4:22 pm

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++
User avatar
SimulatorOne
 
Posts: 6626
Joined: Tue Nov 17, 2009 2:52 pm
Location: Barcelona

Re: GemixPhoton

Postby Nowy » Sat Oct 28, 2017 6:15 pm

alguien se anima a probarla online ?
User avatar
Nowy
 
Posts: 597
Joined: Sat Oct 04, 2008 11:14 am
Location: Tenerife

Re: GemixPhoton

Postby Nowy » Sat Oct 28, 2017 7:07 pm

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.
User avatar
Nowy
 
Posts: 597
Joined: Sat Oct 04, 2008 11:14 am
Location: Tenerife

Re: GemixPhoton

Postby erkosone » Sat Oct 28, 2017 7:27 pm

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.
User avatar
erkosone
 
Posts: 10654
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.

Re: GemixPhoton

Postby SimulatorOne » Sat Oct 28, 2017 7:38 pm

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.
User avatar
SimulatorOne
 
Posts: 6626
Joined: Tue Nov 17, 2009 2:52 pm
Location: Barcelona

PreviousNext

Return to Extensiones Gemix

Who is online

Users browsing this forum: No registered users and 2 guests