COMPARATIVA: NMP 3.2 versus SINTAC G1
Por: Javier San José
Vamos a ver las semejanzas y diferencias de dos parsers para PC basados en el popular PAW, se trata de el nuevo NM Parser de Carlos Sánchez y el SINTAC G1.
El NMP al igual que el SINTAC posee un entorno integrado de desarrollo desde el cual se pueden llevar a cabo tareas tan rutinarias como insertar procesos, localidades, mensajes, compilar y probar la aventura. El entorno de desarrollo del NMP carece del editor integrado del SINTAC por lo que hay que usar un editor externo. Con el programa se suministra un sencillo editor que se instala por defecto. Este editor tiene la ventaja sobre uno más complejo de que se carga rápidamente desde el entorno. La desventaja es que es muy limitado en cuanto a funciones de edición.
El NMP utiliza la misma estructura de procesos y tabla de respuestas que el PAW, a diferencia del SINTAC en el que todo son procesos. Quizá este respeto hacia la estructura del PAW consistente en Proceso 1, Proceso 2, Respuesta y otros procesos facilitará la utilización de este parser a los usuarios del PAW, a diferencia de la estructura abierta del SINTAC que lanza la ejecución en el Proceso 0.
El NMP incorpora una novedosa característica que no está presente en ningún otro parser y es la posibilidad de crear un proceso que se ejecuta al tiempo que el jugador teclea las órdenes. Esto permite, por ejemplo, crear secuencias animadas. Además está permitida la recursividad; los programadores experimentados sabrán de que estoy hablando, carcaterística esta que en ocasiones puede reducir el tamaño del código considerablemente.
Un aspecto en el que el NMP mejora respecto al SINTAC es la posibilidad de usar hasta 65535 mensajes y, a diferencia del SINTAC, no distingue entre mensajes del sistema y mensajes de usuario, todos se almacenan en la misma tabla.
En cuanto al vocabulario, el NMP acepta como caracteres significativos los 5 primeros de cada palabra por el contrario el SINTAC reconoce los 6 primeros. Para crear sinónimos de una palabra el NMP hay que usar la opción correspondiente del entorno. En el SINTAC los sinónimos se crean sin más que insertar palabras con el mismo tipo y número que una dada. El NMP trata los sinónimos de una forma especial; no pueden ser usados en las tablas de respuestas y si definimos como sinónimo una palabra existente en el vocabulario invalidamos esta, ya que prevalece el sinónimo.
Se pueden definir hasta 256 localidades en el NMP con la restricción en cuanto a salidas. Sólo hay 8 posibilidades en cuanto a salidas: norte, sur, este, oeste, subir, bajar, entrar, salir y estas palabras deben estar en el vocabulario y no pueden cambiarse. Lo que si se puede es asignarles sinónimos para, por ejemplo, traducirlas a otro idioma. El SINTAC por el contrario admite los denominados verbos de movimiento que pueden ser usados para conectar distintas localidades.
En el aspecto gráfico el NMP no se queda atrás. Permite crear varios juegos de caracteres mediante un sencillo programa similar al del PAW. La gran ventaja es que los caracteres pueden tener anchura variable entre 4 y 8 pixels, así si creamos un juego de caracteres de 4 pixels dispondremos de 80 columnas. En este aspecto supera al SINTAC que sólo admite juegos de caracteres de anchura fija de 8 pixels, pero el editor de juegos de caracteres es poco amigable de manejar.
El NMP sólo funciona, con gráficos, en el modo de 256 colores de VGA. Se suministran otras dos versiones del intérprete para CGA y EGA pero sin gráficos. A cambio el SINTAC dispone de dos modos de funcionamiento tanto en 256 colores como un modo de alta resolución de 16 colores.
Los gráficos se pueden crear usando una utilidad incluida en el propio parser
que recuerda al editor gráfico del PAW. Esta utilidad es bastante incómoda de
manejar y no permite crear gráficos de cierta calidad. Más interesante es la
posibilidad de importar gráficos creados por un programa externo y que grabe
en formato PCX. Como este parser usa su propio formato es necesario ejecutar
una utilidad de conversión.
Es de destacar que el NMP divide la pantalla de juego en dos zonas fijas, una
superior para gráficos y una inferior para el texto por lo que los gráficos
siempre tendrán el mismo tamaño y no podremos crear gráficos a pantalla
completa, por ejemplo. En cambio podemos tener hasta 12 gráficos
simultáneamente en memoria (si la cantidad de memoria libre lo permite) lo
cual evita andar continuamente leyendo del disco.
El SINTAC por su parte permite el uso de ventanas lo que facilita una
ordenación de la pantalla de acuerdo al gusto del programador.
Otro aspecto a destacar de este parser es su capacidad para incorporar sonido en las aventuras mediante dos condactos nuevos: PLAY y FPLAY. Ambos son similares y, mientras que PLAY toca la música continuamente, FPLAY lo hace sólo una vez. El programa usa ficheros .SND que se crean con una utilidad llamada PLAYMAKE. Esta utilidad permite crear partituras introduciendo la duración y la nota que hay que tocar. Su manejo es sencillo pero se hecha en falta la posibilidad de oir la melodía dentro del PLAYMAKE para corregirla si fuese necesario.
El parser también incorpora un condacto EXTERN similar al del SINTAC solo que en el NMP se le pasa al programa externo la dirección de la zona de memoria donde está la tabla de banderas. El condacto EXTERN del NMP permite ejecutar fichero .COM y .EXE no así ficheros .BAT como en el SINTAC.
En cuanto a condactos incorpora la mayoría de los del PAW, aunque no todos, y algunos nuevos. Es de destacar que permite ciertas operaciones lógicas con las banderas, así como el manejo de bits independientes, y el uso de pilas y colas. Además mediante los condactos LABEL y JUMP permite realizar saltos de un sitio a otro de un proceso e incluso de un proceso a otro, aunque sobre esto último ya se advierte de su peligro.
Incorpora un modo de diagnósticos que permite ver y modificar las banderas pero no permite la ejecución paso a paso como el SINTAC.
Como resumen de las características del NMP y del SINTAC sirva la siguiente
tabla comparativa.
NMP 3.2 SINTAC G1
Gráficos VGA 256 VGA 256 VGA 16 Sonido Si No Juegos de caracteres Si, 65536 Si, 256 Ventanas No Si EXTERN Si Si Entorno de programación Si Si Editor integrado No Si Debugger Si, ver y modificar Si, paso a paso banderas y ver y modificar variables y banderas Mensajes 65536 256 del sistema y 256 de usuario Localidades 256 256 Objetos 256 256 Procesos 255 256 Vocabulario Caract. significativos 5 6 Verbos Si Si Nombres Si Si Adjetivos No Si Preposiciones Si No Conjunciones No Si Variables 256 256 variables y 256 banderas Indirección Si Si Saltos Si Si Recursividad Si No