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 4192 miembros registrados.
El último usuario registrado es AndyMexCR.

Nuestros miembros han publicado un total de 85195 mensajes en 12129 argumentos.

Engine theory-crafting!

Ver el tema anterior Ver el tema siguiente Ir abajo

Engine theory-crafting!

Mensaje por silvanash el 2014-07-25, 19:27

Ya hacía bastante que no me ponía a escribir paridas sobre engines, así que vamos a ello. Intentaré que no sea demasiado WoT (Wall of Text), pero no garantizo nada.

==============================================================================

Empecemos. En esta ocasión, queridos compañeros de este extraño lugar que llamamos internet, voy a hablar sobre cálculos aplicados a engines. Un engine, en realidad, no es más que una serie de cálculos convertidos en un resultado gráfico, aunque, tristemente, se valore más la apariencia que las operaciones que hay detrás de él. Así pues, muchos engines se ven limitados no por los gráficos, sino por lo que es posible hacer con esos cálculos, o la imaginación a la hora de usarlos.

Pongamos por ejemplo una operación tan simple como 1 + 5. Todos sabemos que eso equivale a 6, pero, ¿de qué nos sirve esta operación? A priori, no es más que una suma con dos números de una cifra, nada que pueda usarse en un engine. Sin embargo, deberíamos recordar que el Maker trabaja con variables, y que ese "1 + 5" en realidad es "variable[x] + variable[y]". En ese caso, ¿qué significa ese 6? Pues significa que la suma de esas variables da 6 como resultado.

Ahora bien, ¿qué significa ese resultado? No el valor, sino el resultado como concepto. Pues podría ser el valor de daño de un personaje, tras sumarle todos los modificadores al daño que tenga. Podría ser la cantidad de puntos que haya acumulado a lo largo de una serie de misiones opcionales. Podría ser el resultado de un sistema de coordenadas que calculase un índice para un cursor a partir de sus coordenadas (True Story, lo he hecho).

Resulta evidente que las operaciones, simples en su naturaleza, pueden dar lugar a una gran cantidad de resultados diferentes, en función de qué necesite el enginer. Además, no deberíamos olvidar que una serie de cálculos sencillos puede convertirse en una montaña rusa con bugs por todas partes.

Pongamos, por ejemplo, un cálculo sencillo para calcular la probabilidad de ataque de un personaje. Los parámetros que usa el sistema son el ataque del personaje y la defensa del enemigo. ¿Cómo lo haríamos?

Podemos hacer algo tan simple como comprobar si el ataque es mayor que la defensa. Si variable[x] > variable[y]. En teoría, esto funciona. En la práctica, es el peor método posible, y no creo que haga falta explicar por qué.

Para este caso, mi método favorito sigue siendo usar ambos parámetros y calcular una probabilidad a partir de ellos. En pseudo-código:

variable[1] = ataque
variable[1] + defensa
variable[2] = ataque
variable[2] * 100
variable[2] / variable[1]

¿Qué hacen estas operaciones? Simplemente, sumar el ataque del jugador y la defensa enemiga y comprobar cuánto de ese total es aportado por el ataque del personaje. En números, podríamos decir que el ataque del jugador es 8 y la defensa enemiga es 4. Repitiendo los cálculos tenemos:

variable[1] = 8
variable[1] + 4 -> variable[1] vale 12
variable[2] = 8
variable[2] * 100 -> variable[2] vale 800
variable[2] / variable[1] -> 800 / 12 = 66.6

Es decir, el ataque del personaje representa el 66.6% de ese total. Es algo que podríamos haber calculado incluso sin hacer operaciones. 8 es dos terceras partes de 12, que equivale al 66.6%. Ese resultado es la probabilidad de que el jugador acierte si ataca al enemigo, y es esa probabilidad porque nosotros hemos decidido que el resultado de esas operaciones tendrá esa función.

Si probamos a invertir los valores de ataque y defensa, tenemos un resultado de 33.3%. Lógico, dado que 4 representa una tercera parte de 12, lo que equivale al 33.3%.

Ahora que tenemos la probabilidad, basta con comprobar si una variable con valor aleatorio entre 1 y 100 es menor o igual a esa probabilidad. ¿Por qué menor?

Volvamos al primer caso. 66.6% de atacar (que el Maker convertirá a 66% porque no trabaja con decimales) frente a 100 números aleatorios. Si usásemos los valores que fuesen mayores que 66 para acertar, tendríamos sólo 34 posibles números que representen un acierto. Podemos hacer esa operación, pero es incorrecta. Si tenemos un 66% de acertar, tenemos 66 posibles valores en los que se cumpla esa condición, no 34.

En el caso contrario, si usásemos los números mayores que la probabilidad, tendríamos 67 posibles números que representen un acierto, frente a 33 que representan un fallo, cuando nuestra probabilidad de acertar es de un 33%.

La operación es aparentemente compleja. Tenemos un sistema que calcula la probabilidad automáticamente, y que no cae en errores ni siquiera si usamos valores de cero para el ataque o la defensa (cero de ataque implica ninguna probabilidad de acertar, mientras que cero de defensa implica ninguna posibilidad de fallar). Lo único que hemos hecho ha sido una suma, una multiplicación y una división. Después, hemos hecho un número aleatorio y un condiciones y efectos. Utilizando unos cálculos tan simples, hemos conseguido un sistema donde el jugador reconoce la importancia de los valores de ataque y defensa (aunque luego el gameplay pueda ser frustrante debido a rachas de fallos. La estadística es una perra).

En resumen: no hace falta saber mucho de matemáticas para hacer un engine. Basta con tener una base, y luego tener imaginación para usar el Maker.

PD: quería escribir mucho más, pero ya hay suficiente WoT por el momento. Otro día quizás vomite el resto de mis ideas.
avatar
silvanash
Aventurero
Aventurero

0/3

Créditos 1621

Gracias : 227

Volver arriba Ir abajo

Re: Engine theory-crafting!

Mensaje por mrhawi el 2014-07-25, 20:13

Cuando leí el título pensé que sería algo inútil. Ahora que terminé de leer el texto mi impresión no ha cambiado xD (leí algo largo sin encontrar nada destacable o que ya no estuviera documentado). Fuera a que es un aporte, si puede llamarse así y sin el ánimo de ofender, es como reinventar la rueda. Y eso que hay otros aportes interesantes de tu autoría (el engine de visión mejorado creo que era).
Sin embargo, si mal no recuerdo usas XP. Ahí yo recomendaría meterse a tocar scripts para estas labores. Yo ahora ando usando VX ACE, y en verdad facilita bastante la vida el scripteo, siendo no más difícil que ingeniárselas para usar los comandos del maker xD. Es hasta incluso más práctico.

mrhawi
Aventurero
Aventurero

0/3

Créditos 2668

Gracias : 89

Volver arriba Ir abajo

Re: Engine theory-crafting!

Mensaje por silvanash el 2014-07-25, 20:28

Sí, ahora también tiro de scripts para hacer muchas cosas, pero quería que esto de enginear con comandos no se olvidase.

Además, hay gente que empieza a hacer engines y se bloquea porque no sabe ver las operaciones como algo más que números apilados. El tocho-post es más bien una introducción a los engines para gente sin experiencia que material didáctico para enginers.
avatar
silvanash
Aventurero
Aventurero

0/3

Créditos 1621

Gracias : 227

Volver arriba Ir abajo

Re: Engine theory-crafting!

Mensaje por xX Kyubey el 2014-07-25, 23:42

Tl;Dr...












...mentira, leí todo. Sé más bien poco sobre los engines y los uso para pocas cosas (mini juegos, eventos del mapa, puzzles y demás) pero en realidad no es algo especialmente difícil de aprender, al menos yo entendí en menos de 10 minutos qué eran los interruptores, variables, etiquetas, transformers, patatas, Jesús, etc...

El que realmente quiere aprender a usarlos encontrará pocas excusas para no aprender, veía algo raro entre las opciones que ofrecía el maker y simplemente buscaba en internet, pero casi todo lo que sé y que es suficiente para mí lo aprendí sin ayuda. Espero que los novatos en éste campo aprendan rápido.
avatar
xX Kyubey
Principiante
Principiante

0/3

Créditos 266

Gracias : 54

Volver arriba Ir abajo

Re: Engine theory-crafting!

Mensaje por IZzy el 2014-07-26, 03:30

Hola:

Me ha dado por leer lo que has escrito y si no me equivoco das como mensaje el "valorar un poco mas los engines" y "perderles el miedo", bueno, pues voy a escribir bajo mi opinion personal ya que los engines son el todo de mi proyecto y opinare un poco de ellos y de los scripts...

Creeme que he visto muchos juegos de RPGMaker XP, VX y VXAce y te dire que no he visto algo destacable que envidie de ellos en cuanto a sistema(visiblemente si), sin embargo se que es mucho mas practico a la hora de hacer scripts. No se, quiza simplemente me he encantado por los engines, y es que he pasado la mayor parte de mi juego el mejorar y/o arreglar la jugabilidad que a veces he pensado: Por que no lo paso a XP o VX?. Y luego veo juegos y digo : mmm bueno mejor lo dejo en el 2003...Es mas dificil ajustar graficos

El detalle es que los scripts se pasan el lag (la mayoria de ellos) por el arco del triunfo, asi como es mas facil ubicarlos, con solo copiar y pegar funcionan muchos de ellos dismunuyendo el trabajo de ciertos apartados. Ah pero el problema de ello es que muy pocos usuarios modifican y/o crean sus propios scripts haciendo que muchos juegos se vean "iguales" en cuanto a interfaz y modos, he visto muy pocos juegos que exploten los scripts de manera exepcional(si, se que los hay)... Dado a esto es la razon a la que no le tengo envidia al XP y sucesores...

Ahora te dire acerca de los engines... y si bien no requieres saber mucha matematica, simplemente tener mucha logica de conceptos: bucle, variable, interruptor, condicion ademas de como ingeniarselas para evitar el principar enemigo de los engines, el lag...

Me he visto engines muy buenos y vistosos como Zinthe Fusion si te doy un ejemplo, la unica contra es evitar rodar muchos procesos sin funcion y terminados de valor (paralelos sobretodo).

Los engines no son mas dificiles que los scripts asi que mucho poder tienen en sus manos, pero lo malo es que poco se explota de ello

Me arriesgo a que alguien se me aviente por esto pero yo digo que los engines pueden hacer hasta un 80% de lo que hacen los scripts exeptuando cosas como cursores, video antes de intro, o juego en linea. En lo personal yo prefiero los engines debido a que he visto mas diversidad de ellos asi como resultados graficos geniales que pocas veces he visto en los RGSS.

Saludos
avatar
IZzy
Novato
Novato

0/3

Créditos 72

Gracias : 9

Volver arriba Ir abajo

Re: Engine theory-crafting!

Mensaje por mrhawi el 2014-07-26, 03:42

IZzy escribió:
Me arriesgo a que alguien se me aviente por esto pero yo digo que los engines pueden hacer hasta un 80% de lo que hacen los scripts exeptuando cosas como cursores, video antes de intro, o juego en linea. En lo personal yo prefiero los engines debido a que he visto mas diversidad de ellos asi como resultados graficos geniales que pocas veces he visto en los RGSS.

Saludos


De hecho Izzy yo antes pensaba igual que tú, y si bien sé que es posible lograr por "engines" muchas cosas que se pueden por scripts, hacer scripts a la larga es mucho más práctico. Tienes acceso a los objetos directamente (los definidos en las clases que trae el maker), y puedes hacer cosas como cálculos, testing, debbuging y aplicar diferentes algoritmos que mediante engines es un dolor de cabeza realizar. Por ejemplo si quieres implementar, no sé, requiera el uso de alguna estructura de datos, por ejemplo tablas hash o tries, hacerlo por engines es realmente asco. La ventaja que creo que tienen los engines es que no tendrás errores de sintaxis ni tendrás que aprender otro lenguaje. Pero de verdad el ruby en realidad es simple de entender y está toda la documentación. Ves gente común y silvestre tonteando con scripts por el foro, eso quiere decir que cualquiera puede hacer algo. Si bien no reinventar la rueda para hacer sistemas de batallas y todo eso, se pueden tomar cosas y editar. Yo ahora prefiero el uso de scripts para cosas más complejas porque me cambie a VX ACE debido a limitaciones que tenía en el 2003 y porque ya tengo el ACE "legal" xD. Sin embargo, si mi comentario ofendió o molestó a alguien, lo hice sin intención de eso, sino que para mostrar mi punto.

saludos!

mrhawi
Aventurero
Aventurero

0/3

Créditos 2668

Gracias : 89

Volver arriba Ir abajo

Re: Engine theory-crafting!

Mensaje por Poka el 2014-07-26, 11:05

Yo llevo desde siempre usando engines... o.o

No se hacer scripts... XD

Eso si; para un par de cosas utilizo un par de scripts que me conozco. Pero ya esta. Lo demás es puro engines en mis juegos. Total; yo creo que los engines, más que dificiles, son algo tediosos. Y depende cuales, hasta engorrosos... Con tantas lineas de comandos y tantos procesos al mismo tiempo que deben coincidir... Recuerdo que cuando hice mi primer menu personalizado no sabía como hacer que mi "opción" se moviese... Y aun así, todavía se me resiste el usar engines de Menus personalizados con objetos personalizados y tal... No soy enginer, me gusta más mapear y hacer el tonto y hacer bosques y lugares como un loco...

Perooo... Una cosa si; tanto engine al final acaba haciendo que el juego pese más. Y si no vas con cuidado, algunos engines hacen que otro vaya más lento y el proyecto no va de forma fluida... Así que esa es la grandisima ventaja de los scripts que le veo (igual alguien que sabe más le ve otras ventajas) xD

Eso si; para mostrar el nombre de un mapa... No voy a usar un script... ¡Por favor! ¡Eso ya es "vagitis aguditis" muy grave!... ¡Solo necesitan 1 comando para ello! ¿Para que haces un script? ¡LOL! XD
avatar
Poka
Guerrero
Guerrero

0/3

Créditos 2555

Gracias : 83

Volver arriba Ir abajo

Re: Engine theory-crafting!

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.