Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Conexión pc a pc con Flash

Iniciado por mi-go, 01 de Abril de 2008, 12:11:02 AM

« anterior - próximo »

mi-go

Buenas!!

Tengo un juego hecho en flash y quiero añadirle un modo online 1vs1.

He estado mirando libros y por internet y no veo la forma de hacerlo conectando pc a pc directamente por la IP sin que tenga que haber un servidor por en medio, o sin que uno de ellos tenga publicado vía http un archivo .xml de seguridad cargándolo así: Security.loadPolicyFile("http://....

Mi juego se descarga, y cada uno tiene una copia en su disco duro; quiero hacer que se conecten pc a pc directamente por la IP como un juego normal de to la vida.
Pero parece que flash no admite eso...

Por favor ayuda!!!
Web personal: www.javiermairena.net
The Game Kitchen: www.thegamekitchen.com
AccessAble Games: www.accessablegames.com
Blog Videojuegos Accesibles: www.videojuegosaccesibles.es

josepzin

Quizás usando el Zinc... sé que agrega muchas opciones, no sé se permitirá esto.

Tei

Siempre puedes usar el servidor "web" de intermediario. Si es un juego por turnos no habra problemas.
Tampoco tienes porque usar Apache en el servidor, puedes hacer una pequeña aplicación servidor Python o coger un servidor ligero.

Desde luego lo mejor es lo que parece que estas buscando, comunicación cliente a cliente. Aunque si están detrás de NAT's, como es el 99% de los casos, las cosas se complican.

tamat

y esperas que el jugador introduzca la IP de su rival? en tal caso basta con que uno abra un socket y el otro se conecte. Flash soporta eso.
Por un stratos menos tenso

Zaelsius

No sé mucho de Flash, pero parece que hay que usar un servidor web por narices:

http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/net/Socket.html

Nadie te impide montar un servidor web en casa de uno de los dos jugadores :lol:

mi-go

No quiero hacer un servidor intermedio, no es un juego por turnos.
Es muy rápido!!

He encontrado algunas cosas....

Dos swf se pueden comunicar entre sí con la clase LocalConnection:
http://livedocs.adobe.com/flash/9.0/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00000317.html

Y gracias al AllowDomain():
http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/system/Security.html#allowDomain()

y al  send() command:
http://livedocs.adobe.com/flash/9.0/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00001800.html

Se puede hacer una "conexión local" entre dos swf de diferentes dominios.

Pero no se si eso deja que se comuniquen realmente o si solo permite que uno cargue el otro (que son todos los ejemplos que encuentro...)

este documento también está bien:
http://www.adobe.com/devnet/flashplayer/articles/flash_player_9_security.pdf


Si no otra posible solución, trabajosa, es hacer otro programa en c++ haciendo servidor local que rule en cada pc y que ese sea el que se conecte con flash y con el otro pc.



En el juego uno escribiría la ip del otro.
Hay problema ahora con eso y las NATs ???


gracias!!!
Web personal: www.javiermairena.net
The Game Kitchen: www.thegamekitchen.com
AccessAble Games: www.accessablegames.com
Blog Videojuegos Accesibles: www.videojuegosaccesibles.es

Tei

Cita de: "mi-go"
En el juego uno escribiría la ip del otro.
Hay problema ahora con eso y las NATs ???

El problema de los NAT es que si el servidor esta detras del NAT, el puerto del servidor no sera visible en internet.  Desde internet se vera la ip del router, pero si envias informacion a esa ip, y ese puerto, no te responde nadie.
Hay que ir a mano, a la configuracion del router, y decirle que cuando lleguen datos a ese puerto del router, que los reenvie a una maquina en concreto de dentro de la lan. Y esto es un coñazo.

mi-go

Me temía tu respuesta con lo de la NATs...
Eso es lo que hay que hacer para que el emule te vaya bien, por ejemplo, cuando tienes router...

Pufff, gracias por avisarme, es que lo único que he programado en red fue hace años, cuando no había routers, sólo modems normales que llamaban por teléfono...

De todas formas... de algún modo lo tienen que saber las aplicaciones que hacen de servidor, no??
Porque todavía podemos seguir jugando con un servidor!!
Web personal: www.javiermairena.net
The Game Kitchen: www.thegamekitchen.com
AccessAble Games: www.accessablegames.com
Blog Videojuegos Accesibles: www.videojuegosaccesibles.es

LARCDESBACH2

Yo he probeado todos los servidores que existen en internet que supuestamente sirven para un juego multiusuarios (red5 ,falsh com server, palabre, etc, etc) y con ninguno pude lograr algo que se le paresca, asi que la idea de hacer  una conexion entre dos jugadores con flash me paerecia imposible asi que segi investigando y encontre varios chats donde podian conectarse varias personas a la ves, no habia nada mas solo texto pero en tiempo real, asi que jge con los codigos y usa harto php y ahora estoy desarrollando un mmorpg hecho en flash que no necesita de un servidor especial cualquier server web lo soporta, no hago uso se sokets ni java tampoco necesito las ip de los servers ,solo distruir el cliente y asi conectarse al servidor y empezar la tranferencia de datos.

estoy en fase de sarrollo aun pero estoy avanzado poco a poco ya que hacer un mmorpg es un proyecto de años, mas info aqui:

http://www.larcdesbach.blogspot.com






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.