Noticias

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

* Sponsor

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!.

Autor Tema: Como cambiar la semilla aleatoria en cada room?  (Leído 746 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado KootGok

  • Visitante
  • *
  • Puntos: 17
  • Mensajes: 5
    • Ver Perfil
en: Agosto 15, 2021, 06:41:29 pm
Bueno, como verán, el problema de Game Maker es que siempre usa la misma semilla en sus funciones random para evitar bugs y errores. ¿La solución? La más común es crear un objeto con la función randomize() en su evento create, y ponerlo al principio del juego (en la primer room). Pero, ¿cual es el problema de esto?. El problema que no he logrado solucionar buscando en páginas en inglés (es un problema muy común pero es raro que nadie hable de ese tema) es al tener un juego por turnos donde en ciertas rooms debe cambiar el seed (semilla de aleatoriedad) para hacerlo mas random y realista. Pero eso no se cumple, la misma semilla se mantiene a lo largo de la ejecución del juego hasta que lo reinicie y ahí recién cambia.
 He pensado que algunos de ustedes me pueden orientar sobre este problema básico de aleatoriedad y turnos random, y quisiera saber como refrescar o actualizar esa semilla preestablecida en las rooms que necesite. Hasta ahora, no he logrado solucionarlo. Espero sus respuestas

 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado dixon

Respuesta #1 en: Agosto 15, 2021, 09:18:56 pm
Hola, gusto en saludarlo camarada.



Nunca había escuchado en el GML la palabra semilla y si intento relacionar las semillas con game maker mi mente solo dibuja a Mario Bros recogiendo una  hortaliza llamada nabo la cual se siembra con semillas.
 



 

No conocía la palabra semilla aleatoria ahora lo entiendo:
https://es.wikipedia.org/wiki/Semilla_aleatoria

Aquí hay una función para game maker studio 2 que emplea ese concepto:
https://manual-es.yoyogames.com/GameMaker_Language/GML_Reference/Maths_And_Numbers/Number_Functions/random_get_seed.htm

Yo, también tuve problemas con el random, ya que no funcionaba  en juegos html5 hasta que se reiniciaba el juego. Estas son algunas  soluciones planteadas:

1.   Obtener los últimos números del current_time.
Bueno, la variable current_time que indica el tiempo de ejecución del sistema, siempre tendrá números diferentes en en tiempo, por lo tanto se pudiesen tomar sus últimos dígitos para obtener un numero aleatorio. Luego pudieses multiplicarlos por otro numero y producir algo más random.

2.   Dejarle el trabajo a php:
Para eso game maker se tendría que comunicar con un código php para que este le devuelva un numero aleatorio sin problemas, pero solo funcionaria si hay internet. Voy a trabajar en eso.

3.   Pedirle ayuda al cmd de Windows, (para juegos en Windows).
Crear un script que cree un fichero tipo bath (.bat), el cual tenga los códigos necesarios para generar un numero aleatorio mediante el lenguaje del Msdos y que este devuelva un numero aleatorio para game maker.


También estos métodos funcionarían para crear una larga lista de números aleatorios los cuales pudiesen emplearse para crear mundos aleatorios.
« Última modificación: Agosto 15, 2021, 10:04:26 pm por dixon »

Si Dios quiere; Limpiaré la oficina, puliré el piso y les serviré café a todos, luego, me enseñarán a programar e iré a comprarles más café.
 


 


Warning: Parameter 1 to spoiler_buffer() expected to be a reference, value given in Unknown on line 0

Warning: Parameter 1 to custom_report_ob() expected to be a reference, value given in Unknown on line 0