Noticias

Se ha publicado un nuevo servicio, el Portal de Juegos Online

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Black_Cat

Páginas: 1 2 3
31
Preguntas y respuestas / Re:[Android] Duda para online 2 personas
« en: Diciembre 11, 2018, 11:44:50 pm »
Hola colega, pasate por mis tutoriales, ah no, asi no era XD

ya en serio, si vas a hacer un juego en tiempo real , te conviene de sobrada una conexion UPD, la TCP retrasa todo porque es un protocolo que verifica que se haya enviado el paquete completo sin romperse.
En cambio el udp envia datos todo el tiempo sin importar cual iba primero segundo, o si se perdió por ahí. Lo cual no importa mucho realmente ya que, una instancia al moverse tanto por el mapa es imperceptible o a lo sumo se genera eso que la gente llama "lag" que le dispara al enemigo pero este desaparece un segundo y re-aparece mas adelante.

No te recomiendo para nada usar mis tutoriales de TCP, jugar algo en tiempo real con eso va a ir super lento.


EDit: bueno, veo que publicaste como 5 segundos antes xD
Lo que deberías hacer es si, establecer un servidor que pueda alojar partidas. Un servidor que reenvie los datos del juego, porque muchas veces uno mismo como jugador no puede (o lo mas usual, que no sabe) abrir puertos, configurar el firewall. Es mas, los juegos triple A, usan varios puertos a la vez, no uno solo. Entonces deberías configurar el servidor para tener los puertos abiertos.
Sino sería hacer un Hole Punching para conectar sin mucho trabajo:
https://en.wikipedia.org/wiki/Hole_punching_(networking)


Con respecto a qué enviar al servidor.
Lo ideal sería mandar una señal cuando se ejecute cierta condicion. Por ejemplo, una vez que se haya atacado al hormiguero, el hormiguero del cliente debería enviar esa señal al servidor y entonces el servidor debería repartir la misma señal a los otros hormigueros.
Basicamente:
1-Cliente1 ataca hormiguero.
2-El hormiguero de cliente1 envia al servidor la señal.
3-El servidor retransmite a todos los demas clientes.
4-Los otros clientes reciben la señal.
5-Los hormigueros en los otros clientes, comienzan a generar hormigas.


Citar
deberia hacer que si el cliente pulsa el botón de atacar, esta señal se envie al servidor? Así no tendria que sincronizar la posicion de todas las hormigas, junto a su comportamiento y tal, que pueden ser cientas en el mapa.
En un principio debería funcionar, pero el problema es que si se pierde el paquete, por ejemplo desde el cliente al servidor. Solo el cliente que crea las hormigas va a verlas salir. Mientras que los demás nunca recibirían la señal que se perdio en el trayecto.
Lo mismo podría pasar si desde el servidor se pierde el paquete hacia algún cliente.
A mi, me parece que deberías reducir las coordenadas a un dato pequeño, quiza un shortInt, ya que la resolucion no pasaria de los 2000px entonces ocuparía menos bytes, no se cuanto ocupa eso, en C al menos sé que son 2 bytes, mas otros 2 para la coordenada y, serían 4 en total por cada instancia. Poniendole que sacas 500 hormigas, algo un poco inusual, 2000bytes que son a lo sumo 2kb? Solo enviando hormigas. Yo CREO que no debería representar un problema. CREO

De todas maneras sería cuestion de probar eso sino alguna optimizacion, por ejemplo enviar la mitad de las posiciones en un step, la mita en otro, si total, es practicamente irrelevante tener la posicion exacta de cada hormiga. No así su estado de vida/muerto.


Otra cosa que recomendaba siempre el makero Texic, al hacer este tipo de juegos, era, enviar la señal para que se creen las instancias en los demas clientes, y que cada uno haga el calculo por si mismo. Lo cual puede ser el camino mas largo, pero iría bastante fluido el trafico de red.
 
Los siguientes usuarios dieron las gracias a este tema: kostra, Seirlord_Games

32
General / Re:Hablemos de lenguajes
« en: Noviembre 24, 2018, 04:33:15 pm »
Yo probé muchisimos lenguajes de programacion fuera y dentro de la universidad, nombrarlos para qué, a final de cuentas siempre sale más económico trabajar con un motor de videojuegos, te ahorra tiempo y esfuerzo.
   Aunque siempre está el conocido problema de "optimizacion". Si vas a hacer muchisimos calculos C/C++, si no te importa el rendimiento pero sí la portabilidad, podes tirar con Java, y Python. De ahí tenes otros lenguajes pero no son muy amenos para hacer específicamente videojuegos, más que nada por las librerías solo de graficos, luego las multimedias es otra historia.

Sobre lo de funcionar por eventos, me gustaría saber si a partir de otro lenguaje, se puede montar un royo para imitar tales eventos, en especial create y step..
En C++ se puede imitar el evento create con los constructores y el evento step, simplemente es un ciclo infinito dentro del algoritmo.

 
Los siguientes usuarios dieron las gracias a este tema: kostra

33
Preguntas y respuestas / Re:Para que sirve el "xor" ???
« en: Abril 18, 2018, 03:00:23 am »
Pues, no realmente.

Supon estas 2 proposiciones: "hace frio" y "esta nevando". Un uso normal con OR sería:

if (hace_frio) or (esta_nevando){
     personaje.temblar()
}

Entonces el personaje temblaría independientemente de si hace frio o bien si está nevando, si ocurren las dos al mismo tiempo no hay problema.

Pero el XOR solo permite la veracidad de una sola proposicion a la vez.
Es como si le dijeras a un niño. "Qué quieres de regalo, una pelota o una patineta" la eleccion es exclusiva, elige una de las dos, porque ambas no se puede. Sale muy costoso.
Los siguientes usuarios dieron las gracias a este tema: Goganpis

34
Preguntas y respuestas / Re:Para que sirve el "xor" ???
« en: Abril 17, 2018, 02:29:21 pm »
El xor se usa en muchos lenguajes y significa eXclusive OR o "O exclusivo" básicamente concatena dos expresiones lógicas y solo toma en cuenta cuando una y solo una de las dos se cumple.
En cambio en el OR normal se puede cumplir una o las dos.


Es como si se dijera en un XOR, o vas a la playa o bien vas a la montaña, no se pueden cumplir en ningun caso las 2 a la misma vez,
En cambio en el OR puede ocurrir las dos al mismo tiempo. Por ejemplo, voy con un amigo o voy solo al cine. Si va una bien, pero pueden ir las dos perfectamente.





Los siguientes usuarios dieron las gracias a este tema: Goganpis

35
Preguntas y respuestas / Re:Calcular x
« en: Diciembre 30, 2017, 09:13:49 pm »
Deberías mirar haciendo un sistema de ecuaciones con única solución. dónde está indicaría el punto de colisión entre las 2 rectas
Los siguientes usuarios dieron las gracias a este tema: Yuzo

Páginas: 1 2 3