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