Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: DarkKRuleR en Noviembre 16, 2012, 12:42:43 PM

Título: Cargar imagen desde un link (internet)
Publicado por: DarkKRuleR en Noviembre 16, 2012, 12:42:43 PM
Buenas, pues mi idea es algo rara..
para un foro de Devil May Cry estoy desarrollando un juego de cartas, a lo Yugioh, Magic The Gathering, etc, con mecánica de combate y cartas personalizadas (inspirándome en los anteriores, pero cogiendo imágenes para las cartas de los videojuegos Devil May Cry, de lo que trata el foro) Era por posteo pero se me ocurrió que podría usar Game Maker para ello. Claro, los usuarios de Linux y demás como que no sé si podrán, pero leo que el 95% de los usuarios mundiales usan WIndows (es cierto?¿) en ese caso puedo arriesgarme y, no sé, buscar otra manera. Pero usar Game Maker molaría.

Mi idea es la siguiente: los usuarios tendrían descargado el executable del juego de cartas, entonces yo colgaría un savefile específico. Al que le toque, lo descarga y lo carga desde el juego, y allí tendría su turno de batalla: qué cartas le han tocado, su vida, etc. Entonces la gracia sería que podría hacer su turno de forma totalmente interactiva con el programa, el cual a su vez llevaría la cuenta automática de los parámetros de cada carta, vidas del jugador, etc. a demás de permitir barajar la baraja, buscar en ella...
cuando el usuario termina su turno le da a "finalizar turno" y el programa crea otro savegame, entonces el usuario lo cuelga al foro y su rival lo descargará para continuar.
Vamos, como si estuvieran jugando online pero sin online, pasándose los savegames. Por qué? porque no quiero que sea online ya que las diferencias horarias lo hacen imposible, y quiero que puedas hacer tu turno cuando quieras y puedas (podéis decirme qué opináis de esto xD). a demás que no sé hacerlo online ni quiero, tengo mucho trabajo encima de la universidad y quiero que esto sea sencillo, pasando savegames. Y meter online complicaría mucho más al usuario.

la duda es: en el programa sólo habría interfaz y código. No puedo meter las cartas en el executable, son (serán) más de 200, o más de 300, y sobrecargaría el exe, quiero que sea liviano. A demás, si actualizo las cartas, el executable se jode...
así que, qué códigos GML hay para hacer un sprite_add, pero no de un archivo, sino de un link? yo tengo todas las cartas en links, cómo puedo tener esos links guardados en el exe, y que el exe cargue las imágenes de internet?

los links siempre estarían disponibles y nunca cambiarían, si actualizo una carta ésta mantiene su link, y como GM no tiene caché pues genial, conque el único problema que podría dar cargar el link es que el usuario no tenga internet, en cuyo caso cómo podría mostrar un mensaje "Error al cargar la imagen de la carta, asegúrate que tienes conexión a internet" si el cargado falla? porque cuando cargamos por ejemplo con sprite = sprite_add, no sé exactamente qué contiene la variable sprite, un string no es, conque no sé qué hacer para comprar que la carta puede bajarse y evitar que de un mensaje de error

Esto es algo ambicioso, pero a la vez sencillo puesto que tengo mucha experiencia con GM, y como no tengo que programar IA ni nada automático, pues mejor aún.
Título: Re:Cargar imagen desde un link (internet)
Publicado por: Texic en Noviembre 16, 2012, 02:24:01 PM
Necesitas usar una dll para descargar el archivo y desde gm cargarlo una vez q haya terminado. No es tan simple ni tan dificil, no te lo recomendaría mucho (lo usé y trae ciertos problemitas), pero si querés arriesgarte buscá una dll para descargar en gmtoolbox y ponete a trabajar
Título: Re:Cargar imagen desde un link (internet)
Publicado por: DarkKRuleR en Noviembre 16, 2012, 07:11:31 PM
le doy vueltas y es la unica manera, no puedo decirle al usuario que se descargue las imágenes, y si las actualizo es un jaleo. Con esto aunque las actualice da igual pues se descargarán en cada sesion. En ese caso miraré la dll y la probaré, pero no me dijiste su nombre!

-y por lo de los problemas, sin esa dll qué otra solución habría en la que el usuario NO DEBA descargar nada? Sería demasiadas cosas, la idea es que el propio Game Maker descargue la imagen de tal link, luego la subo con sprite_add y luego la borro de la carpeta (o sea, no dejar lo descargado ahí!)
Título: Re:Cargar imagen desde un link (internet)
Publicado por: Texic en Noviembre 16, 2012, 08:50:50 PM
Otra solución en la que el usuario no tenga q descargar nada? Sería que las cartas fueran genéricas y sólo se almacenaran los textos para dibujarse con draw_text, entonces para ver la carta real tendrían q hacer click o algo por el estilo y saldría un splash_show_web
Otra no hay. Con el método de las dlls que te dije bien implementado se puede llegar a lograr algo bastante decente
No te dije un nombre porq hay varias, entrá a gmtoolbox.com (http://gmtoolbox.com) y probá hasta dar con la que más satisfecho te deje
Título: Re:Cargar imagen desde un link (internet)
Publicado por: DarkKRuleR en Noviembre 16, 2012, 09:15:49 PM
hmm.. al hacer splash_show_web con la url de la imagen me aparece la carta, si hay alguna forma de capturar esa carta y guardar su imagen de forma automatica en una variable sería problema solucionado, pero estoy trasteando y no lo lgro  :-[
Título: Re:Cargar imagen desde un link (internet)
Publicado por: Texic en Noviembre 16, 2012, 09:21:34 PM
No la hay, GML no trabaja con html
Título: Re:Cargar imagen desde un link (internet)
Publicado por: DarkKRuleR en Noviembre 16, 2012, 09:28:31 PM
y no se puede hacer de alguna forma una captura de esa pantalla y guardarla igual que capturarías la pantalla de cualquier juego? luego esa captura puede desplazarse un poco y recortarla, o sea, coger solo una parte...
Título: Re:Cargar imagen desde un link (internet)
Publicado por: Texic en Noviembre 16, 2012, 09:48:00 PM
Surgirían muchos problemas, el splash_show_web aparece donde quiere, no cargaría en background (eso resultaría muy molesto para el jugador, imaginate tener q esperar a q se abra y cierre a cada rato la ventana de show_splash_web) y no estoy seguro de que haya una dll que haga eso (creo que no)
Título: Re:Cargar imagen desde un link (internet)
Publicado por: DarkKRuleR en Noviembre 16, 2012, 09:52:42 PM
pues en este caso la única solución posible, si es imposible que GM comunique con una web, sería que el usuario se descargara todas las imágenes en rar, descomprimiera y... eso. Quizás, como cada carta pesa maximo 120 KB, y como mucho habrá 200 cartas o más, pues podría tardarle poco en descargar, podría ser algo pesado pero sobrellevable.  Y cada vez que edite una carta avisar para que se descarguen otra vez, pero en este caso sólo un paquete de cartas y no todos.
Y me sigue jodiendo que los usuarios de Linux y tal no podrían jugar, aunque fueran pocos.
Tsss, este tema me tiene loco xD bueno, supongo que el tema de cargar una imagen desde un link está solucionado, no se puede. Me plantearé hacer lo que dije y si es viable, gracias ^^
Título: Re:Cargar imagen desde un link (internet)
Publicado por: Texic en Noviembre 16, 2012, 10:02:31 PM
Bueno para que jueguen los de linux tendría q ser game maker studio con html5, pero no acepta savegames, tendrías que crear tu propio sistema de guardado. Con la dll se podía... Pero bueno, lo de los paquetes de imágenes es más facil
Título: Re:Cargar imagen desde un link (internet)
Publicado por: ferhand en Noviembre 16, 2012, 11:13:13 PM
  Saludos makero DarkKRuleR:


   Disculpe que me entrometa en la conversación, pero creo que estás complicándote poniendo como pié forzado el uso del GM.

  Muy bien podrías utilizar solamente a la web como plata forma del juego y problema resuelto. ¿Conoces juegos como "Ogame"? En ellos todo transcurre en la web, es algo así como un juego de estrategias estadístico aunque a tiempo real. En tu caso solamente sería guardar el estado de unas variables que sería modificadas por los usuarios en sus turnos correspondientes, o sea solo un usuario podría estar modificando las variables a la vez.

Se que el foro es sobre GM, pero si quieres que el juego no cargue las imágenes y los turnos sean asincrónicos, la web es una solución más que viable.

  Utilizando "Visual Studio" y "ASP.NET" con "C#" he logrado hacer webs como esas y nada imposible. En caso de requerir un lenguaje libre el "PHP" utilizando "Symfony" puede ser un modo rápido de realizarlo, pero aun no lo conozco a profundidad.

Si el GM sigue siendo la "mejor" opción, siempre puedes hacer un paquete de actualización confeccionado de tal forma que el juego lo reconozca como tal y actualice las imágenes nuevas. Claro el juego debes programarlo en este sentido.  No es imposible, pero sí algo trabajoso. Debe tener un diseño previo para no perder de vista ninguna funcionalidad. 
Título: Re:Cargar imagen desde un link (internet)
Publicado por: DarkKRuleR en Noviembre 17, 2012, 12:11:55 AM
Nono, si lo que tú dices es la idea que tenía hasta ahora. En mi desarrollo actual, cuando un usuario reta a otro a una partida de cartas, crea un tema, yo posteo en el tema, posteo el CAMPO DE BATALLA con casillas para poner cartas, y mediante un sistema molón que descubrí de casualidad, consigo aplicar las 60 cartas una encima de otra.
Entonces,  cuando le toca al usuario, puede ir arrastrando las cartas MIENTRAS EDITA EL POST (en el propio post el html se realiza, no es como aquí que hay que usar <img>, , etc, allí en tu propio post, mientras escribes, todo sale hecho). entonces tú vas escribiendo tu turno (robo tal carta, juego tal carta) mientras modificas el campo y envías.
Como la realidad, los usuarios tienen que ir recordando lo sucedido, o leyéndolo, conque lo que tú dices ya lo tengo. Precisamente como ya lo tenía, quería ir un paso más allá y mejorarlo.
Un fallo principal era: las cartas son miniaturas, para poder verlas todas están reducidas, y para verlas a tamaño completo hay que hacerle click. Si lo hiciera en game maker, podría hacer que al pasar por encima mostrara la carta. No, eso no puedo hacerlo en el foro, creéme he provado de todo.

Si lo hago en GM, a demás se guardará la vida y las variables de cada carta siempre para consultarlo. A demás, en GM puedo hacer que la baraja sea barajada al azar. En el foro la baraja no puede ser barajada por el usuario, sólo por mí al comienzo, conque no puedo hacer cosas de "coge tal carta de tu baraja y luego barájala".

COmo ves, en GM gano MUCHO, a demás de que el planteamiento es el mismo: el usuario va escribiendo lo que hace (y el propio GM tambien escribe lo que tu haces) pero todo se lleva automaticamente (aunque igualmente tu tienes que hacerlo todo), esa es la gracia, mejorar la experiencia. Lo único complicado sería ir pasando los savegames.


o sea, la cosa es que ya lo hago todo en el FORO, y quería aprovechar mis conocimientos en Game Maker para automatizar todo lo posible. Lo que dices de Ogame no sería posible, no tengo ni idea de programar para páginas web ni tengo ahora mismo el tiempo para aprender, en cambio en GM sería sencillo pues lo tengo todo muy pensado y aprendido
.