Tutorial de como hacer un juego multiplayer

También te podría gustar...

41 Respuestas

  1. Lo tengo todo igual y no sirve ¿que crees que pasa? dice:

    ############################################################################################
    FATAL ERROR in
    action number 1
    of Async Event: Networking
    for object obj_server:

    buffer_read argument 1 incorrect type (undefined) expecting a Number (YYGI32)
    at gml_Object_obj_server_NetworkingEvent_1 (line 2) – buff_info = buffer_read(net_buff , buffer_string);
    ############################################################################################

    • Woynert dice:

      parece que dice que buffer_string es incorrecto, pero intenté poner buffer_u8, u16, s8, s16 pero aún así sigue dando el mismo error…

      • David dice:

        Curioso, el ejemplo funcionaba, supongo que con algún cambio de versión ha dejado de funcionar.
        En realidad lo que es incorrecto de buffer_string es el primer parámetro, porque se lanza el evento pero aún no vale nada.
        He añadido la condición siguiente como control:
        if (is_undefined(net_buff) == false)

  2. Azor Pérez dice:

    Hola que tal?, disculpa, tendrás algún ejemplo o podrías comentar como hacer funcionar el multijugador a través de internet, sin tener que abrir puertos, de manera ya más profesional. Saludos

  3. Fernando Lerma dice:

    Disculpa como le puedo mandar algo al servidor osea del cliente -> servidor

  4. Gonx dice:

    Lo tengo todo igual pero en el momento que el cliente se conecta con el servidor, salta un error en el servidor

    El error dice:

    Variable get 100000.false
    Object_ob_server_networkingevent_1 (line 2 – if (is_undefined(net_buff=false)

    No se como arreglarlo y agradecería mucho que me dijeras como

    • David dice:

      ¿Es posible que el if lo tengas mal escrito? Creo que los paréntesis no son correctos.
      if (is_undefined(net_buff) == false)

  5. Weder dice:

    Hola me gustaria saber si puedes hacer un tutorial donde ya al menos los jugadores puedan interactuar entre ellos… ¿Cómo seria la programacion digamos si se golpean entre ellos o golpean otro objeto y todos vean lo mismo?

    • David dice:

      Resumiéndolo mucho mucho, necesitas que uno de los que juegan haga de servidor y los demás se conecten a él.

      Si usas Game Maker Studio 1.4, hay un demo multiplayer que es exactamente lo que quieres.

  6. juan dice:

    se puede en game maker 8.1?

    • David dice:

      En Game Maker 8.1 se hacía de otra manera, con un dll llamada 39.dll, aunque game maker tenia unas funciones llamadas mplays, que usaba directamente de Directx (creo). No se si funcionaría ya que están obsoletas.

  7. Gabo Extreme dice:

    Hola yo quiero hacer un fan game de smash bros pero en modo lan pero no me queda claro el hecho de hacer que una persona sea el servidor y los demás se conecten a el si puedes hacer un tuto te lo agradeceré eh incluso daré créditos a ti.

    • David dice:

      Necesitas que uno de los que jueguen se encargue de enviar los datos a los otros dispositivos. Si usas la versión GMS 1.4, mira la demo Multiplayer que explica como hacerlo.

  8. hugo dice:

    me sale error en esta linea if (is_undefined(net_buff) == false)

  9. MHP Labs dice:

    Nada ya está, lo que pasaba era que el puerto no estaba disponible, ya es casualidad xD
    gracias por el tuto, es el mejor que he visto nunca, simple y conciso, sin enrollarse, gracias

    • David dice:

      Gracias por el comentario. El tutorial es la base para empezar, a partir de ahí puedes complicarlo lo que quieras. Además, te sirve para comprender mejor la demo que viene con GMS 1.4

  10. Boot-Dark dice:

    hola, en lugar de poner la ip local, quisiera conectarlo a un servidor que compre, como lo hago? :C

    • David dice:

      Si el servidor tiene ip fija, y abres el puerto correspondiente, te debería funcionar. Recuerda que debes de tener el sistema operativo Windows y tu juego ejecutándose.

      Como no tiene mucho sentido hacerlo, o si has contratado un hosting, tendrás que utilizar otro sistema, vía webservices, por ejemplo.

  11. Alejandro Castro dice:

    Hola, muy buenas, tengo una muy buena idea para un videojuego que quiero hacer, de un juego al de azar, pero ando buscando el programa ideal para crear tal juego, y tengo unas dos preguntas sobre GameMaker Studio 2, 1. Podría crear un juego de cartas con este programa y hacer que sea multijugador? 2. Y si es así que sea multijugador, necesito tener un servidor aparte o cómo? Muchas gracias

    • David dice:

      Juego de cartas, se puede hacer perfectamente. Incluso si buscas hay ejemplos ya hecho.
      Para tema multijugador, si quieres crear un juego dentro de la misma red local puedes hacerlo con GML. Pero si te refieres a hacerlo mediante Internet, necesitas un servidor en el que los jugadores se tengan que conectar. También es posible hacerlo mediante Game Maker, pero necesitas usar alguna herramienta en el servidor, webservices o algo parecido, para que funcione.

  12. Crisitian David Roa Rojas dice:

    hola, me ayudo mucho a comprender el problema es al crear el servidor en el computador de mi hermana y ejecutar el cliente en el mio no se conecta se queda un buen timpo ahi pero no se conecta, el cliente busca la ipv4 de el computador de mi hermana, no se por que no lo encuentra, y otra cosa es como el programa puede saber mi IP sin necesidad de buscar “ipconfig”

    • David dice:

      En GMS 1.4 hay una demo que lo hace, debes usar el protocolo UDP en vez del TCP. En la demo lo verás muy fácilmente.

      • Crisitian David Roa Rojas dice:

        gracias pana me ayudo mucho espero que usted y los suyos esten bien…ahh tambien averigue que el firewall de windows bloquea las senañes de entrada o salida

  13. Crisitian David Roa Rojas dice:

    MUCHISIMAS GRACIAS, espero que usted y los suyos se encuentren bien, suerte pana.

  14. Agustin dice:

    consulta, despues de todo esto que explicaste, como agrego personajes y que yo pueda ver cuando se mueven?

  15. Richard dice:

    No entiendo, con el tema de crear un proyecto server, y en un comentario tuyo vi que hay q pagar x un servidor para mayor soporte, no es lo mismo? O en el proyecto server se pone algun codigo con numeracion q te brinda el servidor.
    Como es este tema del proceso, de pago de servidor. Hay q pagar otras cosas para la creacion del juego en linea.
    Este proceso es solo para una prueba de funcionamiento del juego. O cuando tengas un multijigador como among us o free fire, para q no colapse hay q hacer cosas adicionales?..

    • David dice:

      Puedes hacer que tu ordenador haga de servidor. Si hay pocos jugadores, no hay problema. El problema viene si quieres salida a internet. Puedes configurar que tu ordenador tenga salida a internet relacionando ips, o puedes contratar y pagar un servidor que ya esté fuera. Pero aquí viene otro probema, y es que estos servidores están orientados a temas web, como páginas, servicios, etc.
      Si quieres hacer algo como Among US, necesitas buenos conocimientos de gestión de juegos online, como por ejemplo el tema de sincronización entre jugadores, gestión de salas y espera, etc.
      Otra opción es crear tu juego pensando en multijugador local y usar servicios como Dixper.

  16. Carlos dice:

    Una pregunta eso codigo son compatibles con Gms 1.4 ??

  17. DiCaprio dice:

    Buenas amigo. Estoy pensando en hacer un videojuego en multijugador online, de partidas rápidas, mediante la gestión de salas y ese rollo. Tal como Pinturillo o Among Us. El punto es que me confunde un poco el rollo de como puedo comprar un servidor; como conecto el juego a dicho servidor; y como podría preparar ese servidor para recibir datos de mi juego.

    Tengo buena experiencia en Game Maker, pero soy nuevo en el rollo este de los buffers y el online. Me gustaría saber si me podrías recomendar algún tutorial al respecto sobre esos temas de un server online, o bien decirme cómo podría hacer para empezar.

    Saludos y Gracias de antemano.

  18. Hola soy Laufer Yovany Villasmil Sánchez

  19. Vicentheking dice:

    hola lo que dire no tiene que ver mucho con este tutorial pero talvez sepas como hacerlo. Lo que quiero hacer es que estoy creando un juego donde el personaje tendra como un superheroe que puede controlar (como un stand de el amime jojo`s) y lo que quiero hacer es que al presionar una tecla aparezca ese superheroe o objeto, tengo entendido que se puede hacer creando una instancia pero no se como usar gml y intente usar drag and drop pero no me funciono.

    espero que lo veas pronto por que me quedan 11 dias de la prueba gratuita de gamemkaer xd

  20. Pedro dice:

    Hola, a ver si puedes ayudarme.
    He creado un juego online que me funciona perfecto en la red local (127.0.0.1) tengo una ip publica con un puerto con rango 6510-6530 abierto en el router pero cuando accedo desde otra red que no es la local donde tengo abierto el juego en la parte servidor no me acceden.

    No sé si tengo que montar un servido de juegos pero deduzco que ej:
    tengo ip publica: 62.128.12.45 / puerto 6510 / redirección a la ip 192.168.1.100
    Pregunto no debería poder conectar con mi juego online con el cliente si le pongo la ip publica 62.128.12.45—->redirigirme a 192.168.1.100 leerme el juego en modo servidor como me hace en la red local y así poder jugar?

    o tengo que crear algún servidor para su redirección como cuando lo haces para redireccionar una web con entrada desde ip publica?

    Muchas gracias y felicidades por tu web es muy buena y sobre todo extensa! tocas muchos palos sobre GM y es de mucha utilidad.

    Muchas gracias de antemano

    • David dice:

      Buenas Pedro,
      el ejemplo que he puesto y las funciones de red de GMS es para una red local. Si es para internet, funciona de una manera diferente, que yo aún no me he podido mirar para comprobarlo.

      Recientemente Game Maker ha creado funciones de red dentro de su navegador Opera que facilita mucho estas opciones. Míralo a ver si te encaja.

  21. jack dice:

    como puedo crear 2 dos personajes en el mismo juego y cambiar cuando quiera??

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *