Mundo Maker
¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.
Conectarse

Recuperar mi contraseña

Temas importantes
----------------------------------------
Páginas con recursos RPG Maker
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
Afiliados
Estadísticas
Tenemos 3763 miembros registrados.
El último usuario registrado es Carlos Rodriguez.

Nuestros miembros han publicado un total de 85780 mensajes en 12216 argumentos.

Duda Scripting

Ver el tema anterior Ver el tema siguiente Ir abajo

RPG Maker XP Duda Scripting

Mensaje por teivko el 2017-02-01, 09:44

Si tuvieran que hacer un Script que para que su función se aplique dependiera de estas condiciones, ¿Cual elegiríais?

  • El nombre del mapa contiene la cadena [Ejemplo]
  • Uno de los eventos del mapa contiene la cadena [Ejemplo]
  • Uno de los eventos del mapa contiene una nota con la cadena [Ejemplo]


Mi opinión personal es en el nombre del mapa, por lo que se de programación, es mas sencillo ir a mirar una variable (nombre del mapa) que recorrer todos y cada uno de los eventos de dicho mapa para comprobar si contiene esa cadena. Creo que daría mucho menos lag, ¿no creen? ¿O acaso habría alguna forma mas eficiente?

Saludos.

avatar
teivko
Iniciado
Iniciado

0/3

Créditos 45

Gracias : 3

Volver arriba Ir abajo

RPG Maker XP Re: Duda Scripting

Mensaje por silvanash el 2017-02-01, 11:22

Me alegra ver a más gente obesionada con el rendimiento. Ya quedamos pocos.

Desde el punto de vista del rendimiento, lo mejor sería usar el nombre del mapa. Sin embargo, hay que tener en cuenta qué hace ese supuesto script. Si ejecuta cosas en eventos en concreto, vas a tener que obtener esos eventos de alguna forma. Para eso caso, lo ideal sería una cuarta opción: usar una hash. Tal que así:

EVENT_IDS = {
1 => [1, 2],
2 => [1, 3, 4],
3 => [2, 5, 14],
}

Con eso tienes ya los mapas y los eventos identificados, sin tener que estar comprobando si algún nombre tiene el string que buscas. Lo malo de usar una hash es que si cambias la ID de mapa/evento tendrás que corregirla manualmente, mientras que leyendo strings el sistema se "actualiza" solo.

Aun con todo, buscar y leer strings no es demasiado costoso en términos de eficiencia y/o rendimiento. El Maker tardaría algún milisegundo más en leer strings que en usar la hash, y no creo que el jugador sea capaz de notarlo. Además de que cualquier equipo de hoy en día debería de ser capaz de ejecutar eso. Como ejemplo, en mi proyecto (spam), cada vez que el jugador termina su turno, el sistema actualiza a la vez los turnos de las demás "entidades" del mapa. Ejecutar bloques de ifs y ciclos en cincuenta entidades no provoca una pausa "visible" en el juego, y mi equipo es una tostadora. Lo que consume más recursos es tener que actualizar la parte gráfica del mapa, no ejecutar el código.

Y aquí acaba el imperio de Golden respondiendo a todos los posts.
avatar
silvanash
Aventurero
Aventurero

0/3

Créditos 1627

Gracias : 229

Volver arriba Ir abajo

RPG Maker XP Re: Duda Scripting

Mensaje por Producciones The Golden el 2017-02-01, 15:35

Yo siempre lo hice por evento, aunque es verdad que al no tener el script funcionando en cada mapa disminuiría el rendimiento a la larga... aunque yo solo he usado un script de "Luces y sombras" que funciona por llamadas... no soy scripter pero como enginer puedo asegurar que ya cinco procesos paralelos a la vez empeoran el rendimiento del proyecto.


Última edición por Producciones The Golden el 2017-02-01, 15:48, editado 1 vez
avatar
Producciones The Golden
Veterano
Veterano

0/3

Créditos 637

Gracias : 60

Volver arriba Ir abajo

RPG Maker XP Re: Duda Scripting

Mensaje por silvanash el 2017-02-01, 15:44

Explicación de por qué los procesos del Maker son una pesadilla en términos de rendimiento:

Los comandos de evento son leídos por el ejecutable del juego, y el ejecutable los transfiere al Interpreter. Este Interpreter, que funciona en RGSS, después se tiene que interpretar otra vez para ejecutarse en C (o algún otro lenguaje de bajo nivel). El código que sale al final de todo es lo que ejecuta la CPU del equipo.

Cuando ejecutas eventos, tienes al juego traduciendo comandos al Interpreter cada frame, y los scripts de RMXP funcionan a 40 frames por segundo. Además, leer eventos y pasarlos al Interpreter es exageradamente lento. Combina todo eso con cinco procesos paralelos y verás por qué los engines crean cantidades de lag tan masivas.
avatar
silvanash
Aventurero
Aventurero

0/3

Créditos 1627

Gracias : 229

Volver arriba Ir abajo

RPG Maker XP Re: Duda Scripting

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


Permisos de este foro:
No puedes responder a temas en este foro.