home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Format CD 8
/
amigaformatcd08.iso
/
screenplay
/
utilities
/
graal
/
graal_2.readme
< prev
next >
Wrap
Text File
|
1996-10-15
|
23KB
|
715 lines
============
GRAAL 2 BETA
============
Contents:
INTRODUCTION
GRAAL REGISTRATION
DISTRIBUTION
QUICK-START FOR OLD USERS
NEW FEATURES
CHANGES IN BEHAVIOUR SINCE 1.2
BUG FIXES FROM 1.2
FUTURE ENHANCEMENTS
INTRODUCTION
============
Performance Software hereby presents the new all-dancing, all-singing
GRAAL 2 beta.
The "beta" means that some things can be a little less than thoroughly
tested. This mainly concerns the new .section dialogues, the EHB
graphics mode, and the new system text translation facilities.
GRAAL REGISTRATION
==================
The shareware version of GRAAL is not crippled in any way.
However, if you want to distribute your adventures, you really want to
be able to encrypt the scripts to hide the solutions from plain view.
You will also want to have an efficient way of testing the finished
product, ensuring that the diskettes actually work as you intended.
If you register, you will receive a personal keyfile which enables you
to use the GPRO program to do this. It also means that the monitor and
other developer functions are switched off in the version of GRAAL you
distribute.
As an added bonus, your name appears in lights on the loading screen,
from which it cannot be removed - an extra copyright protection, you
might say.
The keyfile will continue to work with any new versions uploaded
to the Aminet. Updates are thus easily accessible and free of charge.
You are also put on a mailing list, and will receive an e-mail GRAAL
newsletter from time to time (provided you are connected to the 'net).
Registering is as easy as sending 150 SEK (swedish crowns), or the
equivalent of £ 15 (british pounds), in cash to me:
Per Thulin
Malmtorgsgatan 18
S-653 40 KARLSTAD
SWEDEN
DISTRIBUTION
============
The system is now delivered on 3 disks.
The aminet archives should be unpacked to floppies named as follows:
graal2a.lha --> "GRAAL 2.0 - Disk A"
graal2b.lha --> "GRAAL 2.0 - Disk B"
graal2c.lha --> "GRAAL 2.0 - Disk C"
Anyone equipped with the C= installer program should then use the
"HD_Install" icon found on Disk A to install the system to hard disk,
or to update an existing development directory. The alternative is to
drag all files into the same hard disk drawer manually...
QUICK-START FOR OLD USERS
=========================
Just want to update and go on typing on your own adventure? OK.
1) Copy the new GRAAL_2, GRAAL_Editor, GRAAL.guide, GPRO, and GDC to
your development directory.
If you have Commodore's installer program, use the HD_Install
script supplied on disk A to do this!
If you have renamed the old GRAAL_Dev and / or GRAAL_Run to something
else, the installer just installs the replacement GRAAL_2, and you will
have to deal with deleting and renaming manually... make sure no
old copies of previous GRAAL drivers are floating around when you are
finished. (Doesn't hurt to have a backup copy, though...)
2) If you have a VERB_TEXT: 10;... statement in your graal.main file,
change it to VERB_TEXT: 999;...
3) If you have used DACT: statements in section scripts, refer to the
appropriate section below.
4) Continue with your work. (That wasn't too bad, was it? :)
5) Read the rest of this file when you feel up to it!
NEW FEATURES
============
For detailed descriptions, see the on-line reference. In the overviews
of statements, commands and conditions, all new or significantly
enhanced things have been marked with the text *NEW* next to the brief
description.
Below, most new statements and commands are shown in
parentheses.
By the way, thanks to David Putzier and Evert-Jan Slypen for some good
suggestions (without which GRAAL 2 would have been smaller and out much
sooner ;)
EHB Mode
--------
* Use 64 colour graphics in the scene area with the EHB (Extra Halfbrite)
mode. (N.B.: AGA modes still not supported. Although it wasn't stated
in the documentation of GRAAL 1, you may also use HAM6 for TITLE screens
- you probably noticed this possibility in the demo adventure.)
Command and dialogue area layout
--------------------------------
Everything in the graphics of the player interface is now customisable:
* The sizes of the scene and command/dialogue areas can be changed, and
also the method GRAAL uses when switching between them.
( SWITCH_MODE:, AREA_SIZES: )
* The number, placement and meanings of verbs.
( N_VERBS:, VERB_TEXT:, VERB_ZONE: )
* The size and number of rows and columns of the inventory display,
and whether to display inventory as text or icons.
( INV_LAYOUT: )
* The placement and size of the sentence area.
( SENTENCE_LAYOUT: )
* The size and number of rows in the dialogue lines list.
( DLG_LAYOUT: )
* The size, position and appearance of list scroll arrows.
( INV_UP:, INV_DOWN:, DLG_UP:, DLG_DOWN: )
* The size, position and appearance of the cutscene indicator.
( CUTSCENE_LAYOUT: )
* The fonts used - any font should go for anything, as long as the
layout is altered to make room for what you have in mind.
NOTE: This does not mean you can use more fonts simultaneously -
just that the four fonts defined in GRAAL can be any fonts you like.
* The mouse pointer shapes.
( ARROW_CURSOR:, CROSSHAIR_CURSOR: )
Requesters
----------
* The system messages shown to the player can be changed. Now there
shouldn't be a scrap of text anywhere which cannot be translated into
a foreign language. (Foreign? What am I talking about? It's English
that's foreign to me...)
( SYSTEM_TEXT: )
Calendar and clock
------------------
* Dates and times can be set and advanced.
( SETTIME, SETDATE, ADDTIME, SAVETIME, RESTORETIME )
* A number of different formats for dates and times are available -
basically, you design your own formats.
( DATE_FORMAT:, TIME_FORMAT: )
* Dates and times can be displayed either with a SAY, THINK, RESP or TEXT
command, or permanently in the command area using graal.main statements.
( #DATE, #TIME, DATE_LAYOUT:, TIME_LAYOUT: )
* GRAAL can draw analogue clock hands for you in the command area. (You
still have to draw the rest of the clock's face and casing, though... :)
* You can test the date and time
( IFTIME, IFTIME )
Timed events
------------
* You can have events occuring and recurring at a specified time interval,
For example, you may use a timer to advance the time (see above). The
"events" are actually normal ACTION: statements, so there are no
restrictions as to what they may contain!
Up to 3 timers may be active at the same time. The time intervals may
also be randomized.
( DOAFTER, CANCEL )
* One of the timers keeps track of how long the player has been inactive.
Object Default Command
----------------------
* For each object, a default verb can be specified, executed directly
when the player clicks the right mouse button.
Direct Commands
---------------
* Using the VERB_TEXT: statement, verbs can be defined that do not use
objects. Instead, they are executed immediately when the player clicks
the verb in the command area. This can be used for special functions
such as QUIT, RESTART, or calling some sort of menu or map room.
Dialogues
---------
* Dialogues (LINE: and LACT: statements) can now be defined in a
.section script. Can't think of a use for it? Don't worry, you will.
At least, I have!
* Number of dialogues, lines per dialogue and actions (LACT:s) per
dialogue can now all be changed to suit your needs (within the
restraints of the internal 128K buffer memory, of course)
Object Icons
------------
* For each object, an icon for use in the inventory can be defined and
altered with the ICON command at any time.
Flags
-----
* A flag can be set to the value of another flag.
* The following logical operators can now be used to test flags:
=, <, >, <>, <=, >=
* A flag can be tested against the value of another flag.
* A flag can be set to the value of the current "in-game date" or
"in-game time".
* A flag value can be added to another flag.
Movement paths
--------------
* Floors no longer need to overlap: Paths can be defined
for movement between them.
( PATH: )
* Paths can twist and turn, but there are restrictions in the movement
control they allow - read the on-line reference. Floors should still
overlap as much as possible in most cases for the most flexible
character movement.
Macros
------
* You can record a sequence of player actions as a macro, store it in a
file, and later play it back - great for automating long, tedious test
runs.
("R" and "P" keyboard keys in developer mode.)
Miscellaneous
-------------
* Improved HANDLE command - You can use the various HANDLE positions
without referring to an object.
(HANDLE LOW, HANDLE MID, HANDLE HIGH)
* New IFCBOB condition. This could be useful to initiate different
animations depending on the previous character position - coding
your own TALK_MAP or HANDLE_MAP-like constructs, as it were. Can
be used in conjunction with the "player inactive" timer to program
stall anims in the graal.main file.
( IFCBOB )
* Alter the default length of time a sentence or text is displayed.
( NORMAL_WAIT: )
* PAUSE key. This was unnecessary in GRAAL 1, because
nothing ever happened that was important when the player left the
mouse alone! However, GRAAL 2 is (or can be) a whole different kettle
of fish in that respect (what? Halibut?)
( SPACE bar )
* Nice, "transparent icons" for NewIcons 3 (as well as the old MagicWB
ones) for GRAAL, the Editor and the on-line reference! Not quite
necessary, but a nice touch all the same :)
* New condition to check which floor the main character is on.
( IFFLOOR )
* New statement can disable the "q" quit key and force the
user to use a "QUIT" button/verb provided by you. (Your own "quit"
sequence must end with the QUIT command, new in 1.1.)
( DISABLE_QUIT: )
THE GRAAL EDITOR
----------------
The GRAAL Editor has had a serious overhaul:
* The HELP key now opens GRAAL.guide to show the help for the current
command or statement.
* ALL statements and commands can now be edited using a window showing
the parameters (a major feat in reverse engineering :-).
* All parameters that define areas, points, object or image positions,
etc. can now be edited graphically against the proper background
picture.
* Switching to the proper background picture is automatic in most cases.
* All parameters that can only be set in a limited number of ways
have a "cycle" button in the parameter editor.
* When the backdrop picture is a scene area backdrop, all objects with
starting positions defined for that room are also shown, making relative
positioning of things a lot easier.
* As a result of all of the above, the object editing window is actually
less neat than it used to be. You have to take the bad with the good...
* "Quick search" buttons have been added for OBJECT:, DACT:, ACTION:, and
LINE: statements to find the first statement of the desired type in the
file.
THE DISKINFO.GRAAL FILE, GDC AND GPRO PROGRAMS
----------------------------------------------
* You can insert empty lines or comment lines in between entries.
* There is no longer a need to keep track of the number of entries
in the diskinfo.graal file on line 3. There must still be a line
here, making the actual entries start below line 3, but you can
make it a comment line or an empty line if you wish.
* The gpro and gdc programs now check that the diskette specifications
are sorted alphabetically, which they must be in order for gdc to
work properly.
* The gpro program now needs your personal keyfile in the development
directory to work, and is distributed along with the rest of the
shareware version.
* The gpro program can select any file name for the diskinfo file -
it will be renamed to "diskinfo.graal" in the test directory. This
means that you can copy different versions of the game from the same
development directory to different test directories with ease.
* The gpro and gdc programs have a significantly better error checking.
CHANGES IN BEHAVIOUR SINCE 1.2:
===============================
The philosophy has been to make all new statements optional and provide
default values for them that are in keeping with the old GRAAL 1 player
interface. If you are content with sticking to that, it means you don't
really have to learn a lot about the new statements. In fact, although
there are heaps of new graal.main statements, not a single one of them
is mandatory!
This text describes the alterations you may still need to do when running
GRAAL 1 scripts under GRAAL 2. There are also some minor changes to the
behaviour of GRAAL which can't be avoided, but at least you get to know
about them here. They are all fairly obvious improvements, so you shouldn't
get too upset, i hope :)
Size
----
The GRAAL program itself has grown by around 60K. In addition, the buffer
memory (the place where GRAAL keeps all your in-game variables, actions
and dialogue data) has been bumped up from 88K to 128K to make room for
possible larger dialogues, more detailed load/save routines, the
customisable player interface data, and so on.
All in all, about 150K more may be needed to run GRAAL 2. However, my
statements about memory consumption for GRAAL 1 contained a healthy
margin, and 1.5 M should still be more than enough for playing...
Changes in .section DACT: execution
-----------------------------------
In GRAAL 1, section DACT: statements were only executed upon loading
a new .section file. This was never of much use, I thought - there was
a bigger need for a set of DACT:s that were executed for every room,
saving a lot of re-typing of commands and conditions needed everywhere.
Thus, from now on, GRAAL executes all section DACT:s are before the room
DACT:s for each and every room in the section.
Check through any old section DACT:s you have - if you want them to be
performed only upon loading the section script, you can use a room flag
for each section in the game to only execute them once upon loading in,
the old style.
Example:
You have three sections. The following could be the setup in the script for
section 2 - similar DACT:s should be present in sections 1 and 3, each
checking its own flag and re-setting the others!
/* This makes sections 1 and 3 execute their statements if returned to
DACT: SETRF 0,1=0;SETRF 0,3=0
/* If this is the first visit, or if some other section has reset
/* section 2's flag, execute the commands!
DACT: IFRF 0,2=0;... these commands only done once ...;SETRF 0,2=1;EXIT
Enhancement to the save/load game routines
------------------------------------------
GRAAL 1 was not too precise when loading saved games.
Basically, it loaded the data for the main character, the inventory,
and all flags. It then trusted upon the room's DACT:s to set the rest
of the stuff up using flags to determine what the scene should look like.
This was far from perfect and yielded some unwanted results from time
to time. (In addition, the room flags for room 0 were not handled properly.)
GRAAL 2 accurately recreates all aspects of the saved game (well, unless
some bugs say otherwise!). In fact, when the saved position has been
loaded, the DACT:s are now completely skipped.
However, there are some things that may require some "looking after"
after a saved position has been loaded:
Mostnotably, the current set of global BOB images are not saved with the
game. Therefore, after a game has been loaded, GRAAL searches for and
executes all ACTIONs starting with the special verb number "-2". In such
statements you may put whatever needs to be done after a "load game" or
RESUME command.
All this means GRAAL 2 may behave somewhat differently after loading a
saved game, but all the better for it!
In GRAAL 1, there were also some major bugs concerning loading a saved
game that meant switching between sections after loading sometimes caused
problems. Especially the section objects got a fair old beating from that,
and often did some very strange things.
One final point: All saved games, both disk and ram: files, are now always
encrypted. Despite this, saving and loading is also significantly quicker
than before.
Enhancement / change in MARK and RESUME operations
--------------------------------------------------
MARK and RESUME did a poor job in GRAAL 1, and have been completely
re-coded.
* A MARK without a number saves exactly the same things
as the "save game" function to GRAALs internal memory.
* A MARK with a number does a "save game to RAM:", which actually
creates a saved game file in RAM:. (This command takes some time.)
If memory permits, you can MARK any number of positions for later use.
(Just remember that each MARK with a different identification number
creates a file in RAM: of anything from 10K upwards, which remains for
the duration of the game.)
Note that doing a RESUME resets ALL variables and even timers to their
values and behaviours at the point the MARK command was given. You will
have to think about this when using them for cutscenes - the cutscene should
not itself set any value that you want to keep after the RESUME.
In the previous example adventure, I used MARK and RESUME to "refresh"
the display of the main character after having loaded a new set of
global BOB images. This no longer works. However, this new form of the
SHOW command will perform exactly the same thing in a much neater way:
SHOW 0, , ,
shows the main character in the same place with the same image number...
...only if the image has been re-loaded will there be any difference!
(I have a feeling this should only be used before LIGHTS ON, though...)
Enhancement to the inventory scrolling
--------------------------------------
The inventory is now scrolled a row/column at a time - easier for the
player to keep track of objects that way.
Enhancement to the frame updating routines
------------------------------------------
The UPDATE statement controlling frame update rates have been extended
to provide full control over the frame updating rates for all rooms.
You may want to amend your old UPDATE statements: The default for
"no background scrolling" is now 1, not 3, so if you want to keep
things exactly as they were, add ";3" at the back of all your old
UPDATE statements.
However, I recommend you try the new defaults first and see how it goes.
If your machine can cope, they look better...:
Changes to font spacing
-----------------------
All commands dealing with fonts now use the font's baseline to determine
where to place the text. In most cases, if a row of text is meant to
occupy the space from position x1,y1 (upper left corner), the first
character's base will be placed at x1+2,y1+2+Base Line.
What this means to you is that some texts may shift slightly from where they
were in the previous version of GRAAL. However, it also means that any
correctly defined bitmap font may now be used for any function, and it
should not be too difficult to place text neatly on the screen.
Change in the VERB_TEXT: statement for the preposition text
-----------------------------------------------------------
To change the preposition text, one must now use
VERB_TEXT: 999;...
instead of
VERB_TEXT: 10;...
The reason being that you can now have more than 9 verbs in which case
VERB_TEXT: 10;... is needed for other things. However, I trust that
no-one will EVER define 999 of them...!
Change in OBJECT parameters
---------------------------
The two previously unused parameters (15 and 16) have now been assigned
the tasks of keeping track of the inventory icon image and the object
default command.
The "visible" parameter should now be VIS or NVIS for "visible" and
"not visible". The old values (-1 and 0) also work, though.
Same thing with the "pickable" parameter: From now on, use PICK or
NPICK for that one.
New SHOWEXIT and HIDEEXIT commands
----------------------------------
These came about because the syntax of the old versions (SHOW EXIT,...
and HIDE EXIT,...) caused trouble in the parameter parsing of the
new GRAAL Editor.
The old versions still work, but they are not supported by the editor
and will produce error messages during the syntax check, prompting you
to switch to the new syntax.
DELETED FEATURES
================
No more in-game help text when pressing "Help" or "H". Too much text
needed, too much localizing, too slow on 68000 machines... I hope you
won't miss it too much.
PURE BUG FIXES FROM 1.2:
========================
* Text references to room flags > 6, e.g. #R#1#8#, were not accepted.
* Text references to section objects, e.g. #O#SOBJ3#4#, were not resolved
correctly.
* GRAAL crashed on start-up if there was not at least one global OBJECT:
statement.
* Improved error handling when looking for section files.
* Room 0 flags were not saved in saved games.
* OMOVE with blank x and y parameters sometimes messed the object's
position up later in the game.
* Lots of other stuff!
FUTURE ENHANCEMENTS:
====================
Well, this release somehow became a little bigger than I expected, so the
list of things to do is not that well thought-out at the moment. However,
among the many interesting things that can appear in the future are:
* an enhanced monitor.
* enhanced sound support.
* an editor able to cross-reference game files, catch more errors and
set a number of graal.main parameters automatically.
* encrypted IFF files.
*************************************************************************
* *
* *
* T-T-THAT'S ALL, FOLKS! *
* *
* *
*************************************************************************