hola a todos!

me puse a trabajar un poco y aprender sobre los juegos multiplicador, cree un pequeño proyecto con un plataformas donde te conectas al servidor local y tanto el cliente como el servidor se pueden ver mutuamente dentro de la partida lo cual esta bien! pero quisiera ir mas aya con esto dado que el proyecto crecerá y me gustaría poder implementar mas funcionalidad a todo esto.

estaba pensando mientras hacia este proyecto, existe alguna manera de que un jugador en otro lado del mundo digamos estados unidos descargue el juego y se cree un servidor y yo aqui en mexico pueda meterme a su partida solo si el me envia una contraseña? para poder ingresar a su partida y jugar el juego entre 2?

no se si me explique bien pero lo resumo un poco, digamos 2 amigos quieren jugar al juego pero ambos son de diferentes paises o estados, cual seria la manera mas eficiente de que uno de los amigos hostee el servidor y el otro pueda ingresar a ese servidor usando una clave de acceso, algo parecido a lo que hace castle crashers en steam

alguien tiene alguna idea para implementarlo? de antemano agradesco cualquier ayuda o ideas!
Programame! como a una de tus árcades chinas

GET BEHIND ME DOCTOR!

Hola, gusto en saludarlo.

Para conectarse con un servidor protegido por contraseña, es necesario que ya se haya establecido conexión. La contraseña no protege el acceso al servidor sino que protege el acceso a funciones.

1.   El primer usuario crea el servidor y la contraseña la almacena en una variable x
2.   El segundo usuario accede al servidor "sin contraseña" pero limitado.
3.   Al usuario se le pide inmediatamente contraseña de acceso.
4.   Las contraseñas se comparan.
5.   Se le permite o se le impide el acceso a las funciones completas.

Ya has logrado lo más difícil, ahora te toca lo fácil.  :)

Anexos:

Si Dios quiere; Limpiaré la oficina, puliré el piso y les serviré café a todos, luego, me enseñarán a programar e iré a comprarles más café.

Hola cristopher2545

Eso no es posible, para conectarte a un servidor que está corriendo en otra máquina es mandatorio tener la dirección IP del host.
No puedes simplemente poner una contraseña y ya, sin la IP no hay conexión.
Una vez que ya hayas establecido la conexión con la IP del host puedes añadir una contraseña para filtrar si acepta o no acepta tus paquetes de datos.

Saludos

Cita de: dixon en Abril 21, 2020, 03:44:58 AM
Hola, gusto en saludarlo.

Para conectarse con un servidor protegido por contraseña, es necesario que ya se haya establecido conexión. La contraseña no protege el acceso al servidor sino que protege el acceso a funciones.

1.   El primer usuario crea el servidor y la contraseña la almacena en una variable x
2.   El segundo usuario accede al servidor "sin contraseña" pero limitado.
3.   Al usuario se le pide inmediatamente contraseña de acceso.
4.   Las contraseñas se comparan.
5.   Se le permite o se le impide el acceso a las funciones completas.

Ya has logrado lo más difícil, ahora te toca lo fácil.  :)

Anexos:




gracias por las respuestas!, quiero que me quede claro una cosa y es la siguiente, como se puede hacer para que el server en este caso la persona que esta hosteando la partida pueda mandarme su direccion de ip y poderme conectar a esa partida en especifico, talvez ahora si usando una especie de contraseña porque cuando programe la pequeña prueba puse la ip local para que todo ocurra en lan pero es posible surcar el internet usando la ip de otro para conectarme a su juego en especifico? gracias por sus repuestas!
Programame! como a una de tus árcades chinas

GET BEHIND ME DOCTOR!

Hola, gusto en saludarlos.

BssString tiene razón,  debí especificar que para establecer conexión deben cumplirse con ciertos requisitos  :-[. Ahora bien, después de conocer el proceso que nos permite establecer conexión con los servidores podremos lograr lo siguiente.

1.   Que se creen distintos servidores
2.   Que se visualice una lista de servidores disponibles
3.   Que se permita el acceso a uno de esos servidores con tan solo un click.
4.   Que se solicite contraseña antes de conectarse a uno de los servidores de la lista.
5.   Que se borren de la lista los servidores que ya no tienen conexión.

Esto se puede lograr de la siguiente manera:

1. Para que el usuario visualice los servidores disponibles tiene que haberse conectado a un servidor que permita visualizar los disponibles y almacene los datos de acceso a ellos, a este servidor lo llamaremos servidor madre.
2. Entonces el usuario conectado al servidor madre, escoge el servidor que más le guste y se le devuelven los datos necesarios para establecer la conexión.
3. Si no se permite estar conectado a dos servidores distintos entonces con los datos obtenidos debe salir del servidor madre y acceder al servidor elegido.

Ahora bien, ¿cómo enviar los datos de un servidor a otro servidor administrador o madre?

Primer caso:
1. El usuario que crea un servidor,  almacena en diversas variables los datos de acceso al servidor y antes de crear el servidor se conecta a un servidor madre para enviar los datos de acceso, e indicarle al servidor madre que ya existe como servidor, luego se desconecta del servidor madre y se crea el nuevo servidor.
2. El usuario que no tiene intención de crear servidor, se conecta automáticamente al servidor madre para visualizar los servidores disponibles, entonces escoge uno y se le devuelven los datos de acceso, se desconecta del servidor madre y se conecta en el servidor seleccionado.
Segundo caso:
1. Dos usuarios crean servidores distintos cuyos datos ya fueron almacenados en el servidor madre. El servidor madre indica que ya existen dos servidores creados.
2. Un usuario entra automáticamente al servidor madre y selecciona y observa que son dos servidores los que están disponibles, escoge uno y automáticamente se desconecta del servidor administrador o madre y se conecta al servidor seleccionado.

Ahora surge otro problema: ¿Cómo detecta el servidor administrador o madre que uno de los servidores ya no tiene conexión?
1.   Los que pueden reportar el estado del servidor son los mismos usuarios. Por eso cuando un usuario intenta entrar en un servidor y no consigue hacerlo, reporta el estado al servidor madre y se borra de la lista de servidores disponibles.
Si Dios quiere; Limpiaré la oficina, puliré el piso y les serviré café a todos, luego, me enseñarán a programar e iré a comprarles más café.

Cita de: dixon en Abril 22, 2020, 01:52:12 AM
Hola, gusto en saludarlos.

BssString tiene razón,  debí especificar que para establecer conexión deben cumplirse con ciertos requisitos  :-[. Ahora bien, después de conocer el proceso que nos permite establecer conexión con los servidores podremos lograr lo siguiente.

1.   Que se creen distintos servidores
2.   Que se visualice una lista de servidores disponibles
3.   Que se permita el acceso a uno de esos servidores con tan solo un click.
4.   Que se solicite contraseña antes de conectarse a uno de los servidores de la lista.
5.   Que se borren de la lista los servidores que ya no tienen conexión.

Esto se puede lograr de la siguiente manera:

1. Para que el usuario visualice los servidores disponibles tiene que haberse conectado a un servidor que permita visualizar los disponibles y almacene los datos de acceso a ellos, a este servidor lo llamaremos servidor madre.
2. Entonces el usuario conectado al servidor madre, escoge el servidor que más le guste y se le devuelven los datos necesarios para establecer la conexión.
3. Si no se permite estar conectado a dos servidores distintos entonces con los datos obtenidos debe salir del servidor madre y acceder al servidor elegido.

Ahora bien, ¿cómo enviar los datos de un servidor a otro servidor administrador o madre?

Primer caso:
1. El usuario que crea un servidor,  almacena en diversas variables los datos de acceso al servidor y antes de crear el servidor se conecta a un servidor madre para enviar los datos de acceso, e indicarle al servidor madre que ya existe como servidor, luego se desconecta del servidor madre y se crea el nuevo servidor.
2. El usuario que no tiene intención de crear servidor, se conecta automáticamente al servidor madre para visualizar los servidores disponibles, entonces escoge uno y se le devuelven los datos de acceso, se desconecta del servidor madre y se conecta en el servidor seleccionado.
Segundo caso:
1. Dos usuarios crean servidores distintos cuyos datos ya fueron almacenados en el servidor madre. El servidor madre indica que ya existen dos servidores creados.
2. Un usuario entra automáticamente al servidor madre y selecciona y observa que son dos servidores los que están disponibles, escoge uno y automáticamente se desconecta del servidor administrador o madre y se conecta al servidor seleccionado.

Ahora surge otro problema: ¿Cómo detecta el servidor administrador o madre que uno de los servidores ya no tiene conexión?
1.   Los que pueden reportar el estado del servidor son los mismos usuarios. Por eso cuando un usuario intenta entrar en un servidor y no consigue hacerlo, reporta el estado al servidor madre y se borra de la lista de servidores disponibles.


agradezco la respuesta! bastante interesante la teoria entiendo que ahora debo crear un servidor maestro que me permita visualizar todos los servidores creados por usuarios, la cosa aqui es como hostear ese servidor madre para manejar toda esa carga de datos, entiendo que el juego debe estar abierto como servidor en alguna computadora central. esto es mas complicado de lo que yo me imaginaba jaja pero estoy deseoso de aprender la verdad
Programame! como a una de tus árcades chinas

GET BEHIND ME DOCTOR!

#6 Abril 24, 2020, 09:25:41 AM Ultima modificación: Abril 24, 2020, 09:39:23 AM por dixon
Hola, gusto en saludarlo.

Realmente no sé mucho de conexiones online y no puedo demostrar mediante código que se puede programar ese servidor master. Pero estoy tratando de comprender eso.

Recomiendo que leas este Gran tutorial creado por Black_cat llamado: Cómo conectar jugadores multiplayer TCP GMStudio (Para descargarlo hay que loguearse).

Aqui tienes otra entrada a la versión anterior de ese tutorial:
https://www.comunidadgm.org/articulos/(programacion)hacer-un-juego-multijugador-online-con-game-maker-studio-ver2/

Aquí también encontrarás otros tutoriales sobre conexiones online de otros usuarios bastante apasionados por Game Maker y la informática en general:
Artículos
Si Dios quiere; Limpiaré la oficina, puliré el piso y les serviré café a todos, luego, me enseñarán a programar e iré a comprarles más café.