Mostrar Mensajes

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

Mensajes - Mega G

76
General / Re:Estoy triste :'(
Febrero 16, 2015, 04:43:51 PM
Sigue habiendo bastantes juegos para PC. Estos son algunos de los más recientes que están completos:
Project Adventure Game: The Cycle of the Cave, Dungeon Pets (tiene versiones Android y PC), Stories of Bethem, Legend Tracker, etc.

Y juegos en desarrollo pero bastante avanzados, también relativamente recientes:
Codename: Nuclear, Dungeon Pets 2: Dunpets World, The Underworld... (y por qué no, mi juego Gemdow Quest XD).

Espero que alguno de estos te llame la atención. Y espero también no haberme olvidado de alguno importante.
¡Saludos!
77
Cita de: arcangelcaos en Febrero 13, 2015, 10:50:24 PM
Leyendo un poco lo que dice y tal. Reduce objetos que sean iguales, pero como dices, que según la room hacen una cosa, puedes hacer script con las cosas a hacer. Y en función de la room, llame a un script y otro.

if room = ????
scr room1

if room = 1111
scrroom2.

Con eso podrias reducir mucho los objetos, creo yo.

Sí, algo similar he estado haciendo pero a pequeña escala. Por ejemplo si en una ciudad hay 10 casas, hay una sola puerta para todas y la pongo 10 veces en la room. Entonces el objeto de la puerta contiene el siguiente código:

if x=128 and y=240 { room_goto(casa1); }
if x=256 and y=176 { room_goto(casa2); }
//Y así con cada una de las 10 puertas


Tendré que hacer cosas así pero en mayor cantidad.

¡Saludos y gracias por la ayuda!
78
Cita de: arcangelcaos en Febrero 13, 2015, 10:40:54 PM
No son por los 45mb, es por la cantidad. Mira te pongo un ejemplo.
Un folio, si tiene una palabra lo lees es un momento, pero si esta escrito entero tarda mucho, sigue siendo un folio, pero tardas mucho en leerlo todo, verdad.
Pues aquí es casi igual, llega a tardar mas tiempo en leer cada objeto que lo que ocupa.
Otro ejemplo, no se si te abras dado cuenta cuando pasas fotos o alguno juego descomprimido a un usb o algo. Si es un archivo de 1gb, va rapidísimo, pero si son 10.000 archivos, que entre todos ocupan 1gb, tarda el doble.

Tienes razón, los ejemplos que me has dado han sido bastante claros. Gracias por el aporte.

Intentaré optimizar el juego para reducir la cantidad de objetos pero también me ayudaría alguna futura actualización de Game Maker Studio que acelerara la carga inicial.

¡Saludos!
79
Noticias / Re:Nuevo juego: Legend Tracker (Episode 1)
Febrero 12, 2015, 10:19:46 PM
¡Enhorabuena por aparecer en portada Aesir!

He estado un poco ocupado últimamente pero en cuanto pueda lo jugaré hasta el final :)

¡Saludos!
80
Cita de: penumbra en Febrero 12, 2015, 09:36:18 PM
Gracias por compartir los resultados, Mega G.

¿Puedo preguntar en qué consisten los 4000 objetos? ¿Son todos enemigos, items y NPCs? Al final, la máxima makera de usar los menos posibles objetos parece cierta, aunque cuando se habla de eso, siempre se trata de la ejecución del juego, y en este caso, el problema es en la carga, antes de que se comience a jugar.

105MB es una cantidad bastante corta y manejable a mi entender, no tengo idea de qué haga que cargar 60 mB se tarde 5 segundos y 105 MB se tarde más de dos minutos (aunque tampoco sé cuánta RAM libre tiene tu dispositivo, pero supongo que debería tener más de 100MB).

De nada :)

Por lo general intento reaprovechar los objetos pero seguro que aún se podría comprimir más.
Los objetos son:


  • NPCs cada uno con su diálogo (puede haber 500 perfectamente).
  • Los personajes que viajan contigo cada vez que entras en una escena (Ejemplo: http://youtu.be/q5lH7msV6cI?t=10m21s). Tienen que ser distintos objetos cada vez porque su "coreografía" cambia y los diálogos también. Debo tener unos 300 más o menos porque hay bastantes escenas.
  • Las salidas de cada room, puertas para entrar en las casas y demás (en este caso intento ahorrar para que con una sola puerta según su posición te lleve a diferente room, y no tener que hacer un objeto distinto para cada puerta).
  • Los distintos puzzles que hay en las mazmorras. Eso ocupa muchísimos objetos porque tengo más o menos 400-500 rooms entre todas las mazmorras y las suelo llenar con bastantes enigmas y puzzles. Aunque por ejemplo cuando hay que empujar una roca siempre utilizo el mismo objeto.
  • Y los típicos objetos que controlan cada menú (1 por menú), el objeto que controla los combates ya que son por turnos y hay que establecer un orden, etc.

A mí también me parece muy raro que los 45 MB de RAM de diferencia hagan que tarde más en cargar.
Intentaré reducir el número de objetos poco a poco.

¡Saludos!
81
¡Ya he encontrado el problema!

Para hacer una prueba he borrado muchísimos objetos (de 4000 han quedado 800) y al abrir el juego ha cargado en 5 segundos.

Entonces después de tantos experimentos parece que puedo tener tantas rooms como quiera y el número de sprites, backgrounds y sonido no era excesivo en mi caso. Creo que con esto puedo confirmar que las páginas de texturas sólo afectan al rendimiento del juego una vez haya cargado y no durante la carga inicial.


Penumbra: Me pareció haber organizado bien los grupos de texturas, pero como ves al final ese no ha sido ese el problema.

Aquí tienes el uso de CPU y de RAM en los 2 casos que me has pedido:

Versión con 800 objetos: CPU entre 0 y 2 %. RAM 60 MB.
Versión con 4000 objetos: CPU entre 0 y 3%. RAM 105 MB.

Tampoco aumenta demasiado la RAM pero parece que es suficiente para que le cueste más cargar.


Ahora habrá que ver si hay alguna manera de poder tener todos los objetos sin que vuelva a tardar 2 minutos en cargar en mi teléfono. En PC tardaba 10 segundos, y abriendo la APK con un emulador de android para PC tardaba un poco más pero no demasiado. Pero no tengo un teléfono demasiado antiguo, es un Samsung Galaxy S4 con 2GB de RAM y procesador Qualcomm Snapdragon 600 Quad-Core 1,9 GHz.


¡Saludos!
82
Después de asignar un grupo de textura a cada sprite (juntando los de cada tipo en plan: los de combates, los de mazmorras, los de gente de las ciudades y demás) y hacer grupos también para el sonido, no ha ocurrido absolutamente nada :(

Tengo algunas opciones aún pero no sé si van a funcionar.
Podría ser que hubiera demasiados objetos (4000, pero son necesarios para el juego) o podría ser que los sprites, backgrounds y sonido ralentizaran la carga inicial y que el tema de los grupos de texturas no afectara.

Para hacer otra prueba puedo borrar todos los objetos y dejar los justos para que cuando el juego cargue se pueda ver algo.

La verdad es que esto es un poco desesperante, ojalá en futuras versiones se arregle. Creo que publicaré este problema también en los foros de YoYoGames porque allí los que llevan el programa a veces responden a las preguntas.

¡Saludos!
83
Cita de: matiascarpello en Febrero 11, 2015, 10:49:40 PM
Cita de: Mega G en Febrero 11, 2015, 10:28:01 PM
Cita de: matiascarpello en Febrero 11, 2015, 10:18:05 PM
Estas utilizando el texture group para optimizar el juego? Es decir, pareciera que hay muchas páginas de texturas.

Yo tengo varios dispositivos con android, ¿Lo tenes publicado al juego en Google play para que lo pruebe en mis dispositivos? Así te digo cuanto tarda en cada uno de ellos.

Hasta el momento tenía sólo un grupo que era el "Default".

Qué suerte que tengas tantos dispositivos, cuando consiga arreglar el problema y reducir el tiempo de carga si te parece bien podría enviarte el juego para que me dijeras cuánto te tarda. De momento no está en Google Play precisamente porque si el juego tarda tanto en cargar nadie lo querría jugar.

¡Gracias y un saludo!

Tengo 4 dispositivos. Un celular Game baja, un celular gama media, uno de Gama alta y una tablet. El secreto cuando programes para Android es siempre ponerte como meta optimizar tu juego para los celulares de gama baja o gama media.

Como ya te dijeron anteriormente, gamemaker en cada room por defecto carga todas las páginas de texturas. Cuando se tienen pocas páginas de texturas no es necesario utilizar el manager texture group, pero cuando tienes muchas páginas es necesario hacerlo.

Aunque me parece que tu problema es por los sonidos. En Gamemaker 1.4 se añadió la características de audio group, que justamente, es cumple la misma función que el texture group. Los sonidos son los que más cargan a la hora de compaginar el juego así que yo te diría que optimices tus sonidos en grupos ya que según tu comentaste que tienes 140 sonidos lo cual es mucho.

Supongo que si la gente de yoyogame añadió la opción de audio group es porque los sonidos por defectos también cargan todos a la vez. Estaría bueno que alguien confirme como es con el tema de los sonidos si cargan todos a la vez por defecto como las texturas.

Vale perfecto, ahora mismo estoy creando diferentes grupos de texturas. Y suerte que has dicho lo del audio porque parece importante también y no estaba al corriente, así que también lo voy a hacer.
Como he dicho antes vengo de versiones antiguas de Game Maker (la 7 concretamente) y algunos de los cambios me pillan por sorpresa.

Se agradece mucho toda la ayuda que estoy recibiendo por parte de todos.
84
Vaya qué código más raro, no entiendo por qué han metido sign(4). Como bien dices podrías poner directamente un 1 y tendría que seguir funcionando igual.
85
Cita de: matiascarpello en Febrero 11, 2015, 10:18:05 PM
Estas utilizando el texture group para optimizar el juego? Es decir, pareciera que hay muchas páginas de texturas.

Yo tengo varios dispositivos con android, ¿Lo tenes publicado al juego en Google play para que lo pruebe en mis dispositivos? Así te digo cuanto tarda en cada uno de ellos.

Hasta el momento tenía sólo un grupo que era el "Default".

Qué suerte que tengas tantos dispositivos, cuando consiga arreglar el problema y reducir el tiempo de carga si te parece bien podría enviarte el juego para que me dijeras cuánto te tarda. De momento no está en Google Play precisamente porque si el juego tarda tanto en cargar nadie lo querría jugar.

¡Gracias y un saludo!
86
Tal y como dice el manual:

Citarsign(x) Returns the sign of x (-1, 0 or 1).

Es decir, si x es un número negativo, la función sign(x) devuelve -1.
Si x es un número positivo sign(x) devuelve 1.
Si x vale exactamente 0 entonces sign(x) devuelve 0 también.

Espero que te haya servido.
¡Saludos!
87
Finalmente he borrado casi todas las rooms. De 1300 han quedado 30. Pero sigue tardando exactamente lo mismo, 2 minutos en cargar  :(
Así que parece que la cantidad de rooms no ralentiza la carga al principio. Por una parte me alegro porque así no tendré que hacer ningún cambio en este aspecto pero por otra sigo con la duda de qué falta.

jose_vasquez1994, me interesa tu solución porque veo que tuviste el mismo problema que estoy teniendo. ¿Al administrar las paginas de texturas haciendo diferentes grupos tu juego cargó más rápido al inicio? Tiene lógica lo que dices de que se satura el juego si tiene que cargarlas todas al inicio, que es lo que me debe estar pasando.
Seguiré tu consejo, muchísimas gracias por tu aporte.

Al haberme pasado a GMStudio recientemente estas nuevas funciones no las conocía y por eso me pasan estas cosas.

A ver si por fin lo soluciono de una vez. Como siempre, si consigo una mejora la comentaré aquí.

¡Saludos y gracias a todos los que habéis comentado!
88
Cita de: eams1986 en Febrero 08, 2015, 05:13:37 PM
Hola Mega G primeramente un saludo ,yo tuve ese problema ya tiempo game maker estaba mas lento que una tortortuga desconozco el pontencial de su maquina
Mi maquina aun con 32 gb ram de memoria veia que game maker era una tortuga entonces entonces dije que pasa con esto es un desastre entonces tuve que limpiar la maquina e instalar de nuevo el game maker con todo y JDK,SDK +java y ahora veo un motor bueno no me tarda mas de 10 segundo en correr un juego en android .
Cuando quiereas puedes utilizar mi maquina para que pruebe a ver si es eso usa team viewer y usted mismo se encarga de borrar todos sus archivos de mi PC y listo .
A ver si eso el problema  ;D

Hola eams1986, creo que mi APK tarda 2 minutos en cargar porque tiene demasiadas rooms (1300). El problema es que los juegos de Game Maker cargan todos los recursos al inicio. Sería mejor si cargaran a medida que el juego los necesita y no todos de golpe.

Por eso estoy borrando todas las rooms a ver si así se soluciona. Crearé un sistema para que se vayan añadiendo únicamente en el momento en que vayas a entrar en ellas.
En cuanto lo pruebe, si no se soluciona de mi manera entonces tendré en cuenta tu ofrecimiento.

Muchas gracias.
¡Saludos!
89
Juegos en desarrollo / Gemdow Quest Ep. 5
Febrero 07, 2015, 02:56:28 AM
¡Gemdow Quest: Episodio 5, ya disponible!

Comienza la segunda mitad del juego con nuevos objetivos.
Como siempre puedes actualizar el juego y seguir jugando con tu partida antigua.






Novedades:


  • Como siempre más historia y una nueva mazmorra
  • Nuevo comando en los combates: los Límites, que se activan tras recibir mucho daño y permiten atacar más fuerte
  • Ahora al morir puedes elegir entre "Ir a la última ciudad visitada" o "Cargar la partida"
  • Al pulsar Escape ahora aparece un mensaje de confirmación

Estos son los ataques Límite de Will y Mandy.


Espero que disfrutéis el juego.
Entre el primer episodio y el cuarto he superado las 1200 descargas. ¡A ver a cuántas llegamos con el quinto!
¡Saludos!
90
Cita de: penumbra en Febrero 05, 2015, 06:49:15 AM
No creo que la optimización que puedas hacer en cuanto a páginas de textura tenga relación con el problema (pero si meequivoco, hacérmelo notar). El efecto de un juego con páginas de textura optimizadas es que el proceso de dibujo en pantalla se hace sin contratiempos, pero el problema que mencionas no tiene nada que ver con el dibujo ni con las páginas de textura, ni siquiera me parece que sea un problema de rendimiento (me imagino que el juego, una vez cargado, corre sin lag, a menos que sea un dispositivo con características muy bajas, pienso yo).

Más bien lo veo como un problema propio del motor de Game Maker. Creo que todos o casi todos los juegos comerciales de las grandes compañías no cargan el total de recursos al inicio, sino que es una carga inteligente en donde se va cargando a medida que el propio juego lo requiere. Desconozco cómo carga recursos GM, pero me inclino a pensar que carga todo al principio. No lo puedo asegurar y a lo mejor me equivoco, pero si es como pienso, me parece una barbaridad. Ojalá alguien con más experiencia pueda aclarar esto.

Usar recursos externos es posible en Android, para eso están los Included Files, además del APK, se pueden usar los archivos de extensión con lo que se pueden crear juegos (para android) incluso de varios GIGABYTES.

La única solución que se me ocurre (ojalá haya otras) es precisamente recurrir a archivos externos, y que al comienzo de cada room, o con cada cierto progreso, se vayan cargando los recursos de los rooms más inmediatos. Sin embargo, veo dos inconvenientes:

a) El método se debería implementar a la par que el juego se va creando, o en sus primeras etapas. Tratar de implementar el sistema en un juego casi completo y con tantas rooms quizás sea problemático.

b) A mi modo de ver, no es una solución recomendable: por un lado, la solución implica cargar externamente archivos, pero por otro lado, la misma gente de YoYo advierte que cargar sprites (o cualquier recurso gráfico) de manera externa NO ES RECOMENDABLE (sobre todo en dispositivos móviles) pues afecta el rendimiento gráfico. Entonces tenemos que lo que parece la única solución, no se debe usar. (ojalá alguien dé una solución mejor)

Otra cosa que se me ocurre es que los rooms se creen "al vuelo", es decir, al comienzo del juego sólo hay un room inicial (o los mínimos que se necesiten para comenzar a jugar) y después sería cuestión de ir construyendo dentro del mismo juego los rooms a medida que se vayan necesitando,  mediante las funciones como room_add, room_instance_add, room_set_background, etc. De igual manera, para juegos pequeños puede funcionar, pero veo difícil aplicar este principio con juegos grandes como el tuyo.

En resumen, las opciones que se me ocurren ahora no son muy buenas, si alguien pudiera dar mejores alternativas, creo que más de uno le estaríamos agradecidos (o si tu mismo encuentras una solucion, Mega G, no dudes en compartirla)


Gracias por la ayuda, en efecto el juego una vez cargado funciona perfecto. Estoy casi seguro que Game Maker carga todo al principio y por eso tengo este problema :(

La solución que propones de que las rooms se creen al vuelo me parece muy buena idea aunque complicada de llevar a cabo porque tendré que revisar todos los códigos que hacen cambiar de room para hacer que antes cree esa room.

Sin embargo me parece más fácil de programar una nueva idea que se me acaba de ocurrir derivada de la tuya: En vez de tener pocas rooms y crear las demás mediante código creo que voy a dejarlas todas pero las vaciaré completamente y mediante código las volveré a llenar cada vez que entres en una de ellas.

He visto que los archivos de las rooms que crea Game Maker Studio son muy fáciles de leer, no están encriptados. Aquí es donde crea la instancia del objeto del jugador:

<instance objName="obj_player" x="0" y="0" name="inst_E2DBA0F0" locked="0" code="" scaleX="1" scaleY="1" colour="4294967295" rotation="0"/>

Así que podría incluso aprovechar los archivos de las rooms que Game Maker genera, o crear un programa que los simplifique para mi juego.

Iré haciendo pruebas y ya comentaré los resultados aquí.

Muchas gracias por todo Penumbra :)
¡un saludo!