miércoles, 26 de diciembre de 2018

Tutorial: Punteros en Rpg maker 2003

¿Os han traído regalos esta navidad? Aquí solo os traigo un infierno de punteros de RPG Maker 2003 en un tutorial que seguramente os deje con un lío encima
si no sois programadores al igual que yo.
Que esto solo lo he tocado por encima a la inversa y sin llegar a la raíz del tema.

En primer lugar tomo los ejemplos de Kazesui, que es un grande de esto de Rpgmaker.net
pero yo no voy a poner un ejemplo jugable como él porque lo que hace es un puzle que se puede
hacer de forma normal con interruptores y variables de toda la vida en un ratillo, no así en días.

Si algo está mal lo comentáis, solo intento entender y poner esto en cristiano porque
solo lo he visto explicado en inglés. Creo que ni en las instrucciones del programa viene.

Como sabéis el objetivo de RPG Maker desde siempre ha sido como dicen en inglés es hacer un editor "user-friendly" fácil de usar y a la vista todo sin complicarse mucho, pero cada uno guarda parte de potencial para llevarlo al límite, el 2003 fue el último que se hizo sin tener un sistema aparte para programar con código, ya fue el Rpg maker XP con RGSS que es un Ruby adaptado.

Las diferencias entre ambos son muchas y cada uno prefiere las suyas, ambos se han ido mejorando
con el tiempo. Pero voy a ir al grano para comentar esto de los punteros, qué hace y
por qué es la función menos usada del programa y lo mal implementada que está (a mi juicio).


Si ponemos lo siguiente:


Las cosas quedarán de esta forma:


Este apartado se organiza así:
 A:
"Variable Reference 0002" con valor 4 no se le trata de valor, sino de puntero, así que
mira lo que hay en ID 0004 que es cantidad 1.

 Cálculo:
Add (sumar)

Operand: 
"Value Stored in Index 0001" que es cantidad 2 se le suma 1,

Así que el total en ID 0004 es 3 (Resultado de sumar lo que hay en ID 0001 e ID 0004)

Como véis esto está fatal implementado y es un lío.
En rpg maker las variables se entienden como ID XXXX con un valor,
pero aquí la función de puntero está metida en el mismo saco, con nombres
como Variable Reference, Variable index y según el Rpg Maker que tengas
en cada idioma tendrá un nombre. Tendría que estar separado lo que son punteros y
que mostrase a que está enlazado.

Esto de aquí ya se puede hacer con variables, que es "A variable X le añades lo de Variable Y"
que en parte es una de las funciones clave con la que siempre he hecho cosas como menús y tal
en los proyectos.

Pero bueno esta es la parte fácil de usar, la parte mas compleja es la siguiente, que
me ha estado rayando un rato.



 A:
"Single Variable ID 0002 con cantidad 4"

 Cálculo:
Add (sumar)

Operand: 
"Value Stored in Index ID 0001" que es cantidad 2,

Esto parece un acertijo, y es que como se le llama igual a variable y puntero pues lo es.
A la variable ID 0002 que tiene cantidad 4, se le "intenta" sumar lo que hay en el puntero ID 0001, que como su valor es 2 que actúa de puntero, apunta a ID 0002 que tiene el valor 4, pues se suman 4+4 y dan 8.
Os dejo un rato que penséis si eso.

Como véis si ya lo entendéis, aquí mezclaron todo, tratando Variables y punteros de la misma forma,
sin avisar si alguna ID hace de puntero o es un valor de variable común, pero sí que separaron los Interruptores en otro apartado, claro que sí.

Si sois programadores quizás lo veis normal pero en este editor las cosas están separadas
y organizadas, de ahí que me choque tanto.

¿Qué uso tiene esto en el RPG Maker 2003?
Pues lo usan los que más saben del programa y hacen menús personalizados currados,
como el del proyecto Aedemphia que lleva no sé si 15 años, o el programador del Demake del FF7
que tras hacer parte del menú y crear hype lo abandonó, es la función mas avanzada y menos usada del programa y se usa en menús personalizados.

Aunque no sea obligatorio dicen que puede ahorrar tiempo, aunque por mi parte solo con ver que luego algo no funcione, me mataría buscando donde está el error por como está organizado.

Como todos los menús y cosas avanzadas que se intentan hacer hay que tener al lado
una hoja de cálculo e ir anotando todo. Por lo menos yo lo hago con cada proyecto.



No hay comentarios:

Publicar un comentario