Saludos, estoy creando un juego Online para Android y hasta ahora todo bien, los jugadores se conectan y se mueven perfecto. El problema es a la hora de disparar, al presionar el botón de disparo, la bala sólo se muestra en el servidor y no a los clientes. O sea, cuando disparo, la bala solamente la puede ver la persona que creó el server, aun siendo yo quien haya disparado la bala. Creo que me  he explicado bien, si no entienden me dicen y trato de explicar mejor. Como soluciono esto? Agradecería cualquier aporte, gracias.
¿Te gustaría crear un videojuego multijugador en línea con GameMaker Studio? Si la respuesta es afirmativa, estás leyendo la firma correcta ;). Visita mi curso alojado en Udemy en el cual enseño a desarrollar uno de manera clara, precisa y simplificada, ¡Échale un vistazo!

https://www.udemy.com/desarrollo-de-juegos-multijugadores-en-linea-con-gamemaker-y-python-3/

Estoy con el mismo problema y nadie ha podido responderme, en mi caso solo la ve la persona que pulsa la tecla de la bala, ya sea servidor o cliente, pero el servidor no ve la del cliente ni el cliente la del servidor.

De todos modos ahora he dejado el 39dll a un lado y estoy usando las funciones que vienen en GMS, te recomiendo este tutorial:

http://www.comunidadgm.org/articulos/(programacion)hacer-un-juego-multijugador-online-con-game-maker-studio-ver2/

Pero yo no estoy usando 39ll, estoy usando las funciones nativas de GMS, o sea Networking. De todos modos, si encuentras alguna forma de solucionar este problema me avisas por favor.
¿Te gustaría crear un videojuego multijugador en línea con GameMaker Studio? Si la respuesta es afirmativa, estás leyendo la firma correcta ;). Visita mi curso alojado en Udemy en el cual enseño a desarrollar uno de manera clara, precisa y simplificada, ¡Échale un vistazo!

https://www.udemy.com/desarrollo-de-juegos-multijugadores-en-linea-con-gamemaker-y-python-3/

yo no sé programar networking, pero lo que sí sé es que la base es enviar a cada momento la localización de la bala al servidor y después el servidor enviar esos datos a cada cliente... los cóodigos ya no sé, pero si han estado practicando deberían saberlo, digo yo... respondo pk ya es el 3er tema que leo que no os responden :/
[spoiler="ola k ase clickarme o k ase"]la imagen no se quita xD
[/spoiler]

esta semana ando mucho con networkin, creo que va de la siguiente manera,
networkin es mandarse informacion de uno a otro,
tienen que mandarse sus cordenadas, osea sus posiciones, para que el otro pueda crear un objeto y ponerlo en el mismo lugar que los daos lo indican eso no sucede solo con los player, tambien con cualquier objeto que se cree en el mapa, a veces no es necesario mandar la direccion y o ubicacion solo es necesario que mande la señal al objeto que ya tiene en su programacion crear esa bala,

un ejemplo mas conciso y simple, 2 jugadores en red el player 1 y player 2,
ambos objetos son iguales, y llevan consigo una variable que se llama disparo, que va a estar en false, y que al ponerse en tru debe disparar en la direccion que el player esta apuntando.
claramente no es necesario amndar la informacion posicion de la bala velocidad y todo eso, solo tienen que mandar la variable disparo=true, para que el objto player 2 la reciva y active su accion de disparar, .....



espero no haberles enredado tanto, un saludo

tanto el server como el cliente tiene que recivir información de esa bala y no la has añadido por eso no se ve

Cita de: josesito1432 en Febrero 01, 2016, 07:25:35 AM
esta semana ando mucho con networkin, creo que va de la siguiente manera,
networkin es mandarse informacion de uno a otro,
tienen que mandarse sus cordenadas, osea sus posiciones, para que el otro pueda crear un objeto y ponerlo en el mismo lugar que los daos lo indican eso no sucede solo con los player, tambien con cualquier objeto que se cree en el mapa, a veces no es necesario mandar la direccion y o ubicacion solo es necesario que mande la señal al objeto que ya tiene en su programacion crear esa bala,

un ejemplo mas conciso y simple, 2 jugadores en red el player 1 y player 2,
ambos objetos son iguales, y llevan consigo una variable que se llama disparo, que va a estar en false, y que al ponerse en tru debe disparar en la direccion que el player esta apuntando.
claramente no es necesario amndar la informacion posicion de la bala velocidad y todo eso, solo tienen que mandar la variable disparo=true, para que el objto player 2 la reciva y active su accion de disparar, .....



espero no haberles enredado tanto, un saludo

He entendido lo que has querido decir, pero tengo una duda, cómo hago para enviar esa información de la bala y que el otro playera pueda verla? O sea, qué códigos hay que usar? Agradecería mucho tu ayuda y gracias por responder.  :D
¿Te gustaría crear un videojuego multijugador en línea con GameMaker Studio? Si la respuesta es afirmativa, estás leyendo la firma correcta ;). Visita mi curso alojado en Udemy en el cual enseño a desarrollar uno de manera clara, precisa y simplificada, ¡Échale un vistazo!

https://www.udemy.com/desarrollo-de-juegos-multijugadores-en-linea-con-gamemaker-y-python-3/


se me ocurre lo siguiente:

OPCION #1:
cuando el cliente cree una bala genera un objeto bala en el cliente y ponle un id o algo con lo que la identifiques, no la muevas por el momento de esto se encargara el server, incluso la puedes poner hasta invisible,

cuando el server reciba esa info, el servidor creara otro objeto bala, le asigna el id le cambia el estado a visible = true  y te regresa la posicion

si el cliente recibe esa la posicion de esa bala ( osea con ese id ), le cambias el valor a true y en cada step vas recibiendo las nuevas coordenadas de dicha bala hasta que impacte con algo o desaparesca.



OPCION #2
envias al server el comando de crear bala,  el server crea la bala, la hace visible en donde este la punta de la pistola y cuando recibas la respuesta del server, todos los clientes debend e crear un nuevo objeto bala, hacerlo visible y que siga las coordenadas que indica el server en cada step, hasta que se pierda o colisione con algo.

me podrias compartir tu proyecto para ver como haces los servidores y clientes, me interesa mucho aprender de eso, quiero hacer algo similar pero siento que me falta aprender mas cosa, espero haberte dado la idea.

Es Mejor No Saber Porque Funciona, Que Saber El Porque No Funciona...
Tienes alguna duda con "Game Design" o de videojuegos en general, contactamente mas facil en twitter @pavulzavala

Entiendo eso, pero lo que no sé es que codigo y/o eventos debo usar para hacer esas funciones, si podrías ayudarme en eso seria un gran aporte :').

Ahí te adjunto mi proyecto para que le eches un ojo y me ayudes, por favor.
¿Te gustaría crear un videojuego multijugador en línea con GameMaker Studio? Si la respuesta es afirmativa, estás leyendo la firma correcta ;). Visita mi curso alojado en Udemy en el cual enseño a desarrollar uno de manera clara, precisa y simplificada, ¡Échale un vistazo!

https://www.udemy.com/desarrollo-de-juegos-multijugadores-en-linea-con-gamemaker-y-python-3/

He abierto tu proyecto asi por encima con el movil y ahy un cacao tienes muchos scrips
Y es sencillo agregar una bala deberias edtudiar mas el networking ahora te paso tuto manual
https://drive.google.com/file/d/0B4cR3S8865zrM3l6UTgyeVZLeWc/view?usp=docslist_api

Tan sencillo es? Pero aún no comprendo muy bien como va todo. Entenderia mejor con algún ejemplo, si me ayudaras con eso estaría muy agradecido, por favor sólo necesita un ejemplo y ya de ahí me guió para todo lo demás.
¿Te gustaría crear un videojuego multijugador en línea con GameMaker Studio? Si la respuesta es afirmativa, estás leyendo la firma correcta ;). Visita mi curso alojado en Udemy en el cual enseño a desarrollar uno de manera clara, precisa y simplificada, ¡Échale un vistazo!

https://www.udemy.com/desarrollo-de-juegos-multijugadores-en-linea-con-gamemaker-y-python-3/

El ejemplo viene ya con los jugadores
Lo mismo que el player tienes que poner de la bala
Si tengo tiempo are video ejemplo va ser que no

Pero hice con la bala lo mismo que con los jugadores, pero tengo un problema y es que la bala solo puede verla la persona que creó el servidor, aunque sea un cliente quien haya disparado la bala, aún la sigue viendo solo el que creó el servidor. Cómo arreglo esto?
¿Te gustaría crear un videojuego multijugador en línea con GameMaker Studio? Si la respuesta es afirmativa, estás leyendo la firma correcta ;). Visita mi curso alojado en Udemy en el cual enseño a desarrollar uno de manera clara, precisa y simplificada, ¡Échale un vistazo!

https://www.udemy.com/desarrollo-de-juegos-multijugadores-en-linea-con-gamemaker-y-python-3/

Tenemos OClient, oServer y OPlayer.


El OClient es un cliente mudo que envía pulsaciones de tecla al servidor, y atraerá a todos los sprites el servidor envía de vuelta.


oServer es el controlador; se conectará / desconectar a los clientes, crear nuevos jugadores ya que vienen en (y asignarlos a un identificador de socket), y enviar todos los sprites a todos los clientes conectados.


OPlayer es igual que lo fue en un solo jugador del juego (en este caso), excepto que ya no se comprueba directamente llaves, pero una serie de claves del servidor rellena cuando se pone pulsaciones de teclas desde el cliente.