Made with Netscape Composer, DRDOS, Win 3.1, and Win95 when necessary
Written by Joseph P Morris
Proofread by Alan P Keane
(C) 1999 Joseph P Morris
Any trademarks in this document are the property of their respective owners.
This is free software and as such there is no warranty whatsoever.
Use at your own risk..
Update history:
0.9.00 - 10/08/03 - Partial update of the documentation - Alexandre Pineau
add a warning about the fact that the documentation is not up-to-date! support for .rar files dropped, partial update of chapter 1.2 and of chapter 6 chapter 5.1 : add a link to additionnal informations on programming conversions chapter 3 : out of date, add a link to some informations about the new script langa chapter 7 : links updated
0.5.03 - 11/08/99 - Corrected a critical error in the documentation
0.5.02 - 23/07/99 - Documented some forgotten functionsadd_quantity and take_quantity had the last 2 parameters the WRONG WAY AROUND: this would cause a crash.
0.5.01 - 22/06/99 - Final checks for R 0.5Documented forgotten function object_set_behaviour Documented new conversation functions [goto] (5.3.2) and [set_behaviour] (5.4.1) Documented new features in flat.gam resource file (chapter 6)
0.5.0 - 05/6/99 - Release 0.50, totally new conversation engineDocumented forgotten functions transfer_to_pocket, force_from_pocket Documented forgotton functions choose_member and choose_leader Documented new function get_number
0.4.1 - 28/3/99 - Release 0.41, VRM system changed to SeeRInserted a new chapter 5: programming conversations (with the new script system) Updated 1.4.1 so it is not obsolete anymore Updated 3.2.3 to add new flags and keywords Documented new Section:Rooftiles in 3.2.9 Added new variables game_minute, game_hour, game_day, game_month, game_year Added undocumented functions transfer_object, get_first_object Added new functions replace_object,move_forward, move_backward, turn_l, turn_r Added new functions add_quantity, take_quantity, wait_for_animation, lightning Added new functions find_object_with_tag, find_container Added new functions get_pflag, set_pflag, get_user_flag, set_user_flag, get_yn Updated screenshots of editor. Added section 2.2.9 - setting an object's owner Added section 2.2.10 - editing an object's statistics Added section 2.2.11 - editing an object's behaviour
0.4.0 - 18/1/99 - Release 0.4, rewrite of core map systemMentioned the graphical script editor in section 3.1. Updated the description of VRMs and how they are compiled in section 4.1 Added new description of how you must use flags since 0.041 Added new VRM functions get_flag and set_flag, see above
0.3.1 - 5/9/98Removed sections 2.2.8 to 2.2.10, about obsolete features of the editor. Added new section 2.2.8, about editing objects inside containers Added new VRM functions redraw_map, line_of_sight, move_to_top and in_pocket Updated create_object and get_top_object, get_best_object etc. Added new vrm function move_object which you must use instead of modifying the X and Y coordinates Added new functions spill_contents and spill_contents_at Added new flags etc to section 3.2.3 and 4.2.4 Added NODRIFT command to Section: Sound in section 3.2.7 Added Section 3.2.7 and 3.2.8 to the index (oops) Added Part 5, about the .GAM file Described partially-solid objects in section 3.2.3
0.3.0 - 15/6/98Added section 2.1.4, about cut and paste Added section 2.1.5, about the tile randomiser Added section 2.1.6, about bulk replace Added two new .cel files to section 1.4.1 set_darkness changed to a single level instead of RGB levels
0.2.8 - 15/6/98Fixed some typos. Added 'light' and 'enemy' to section 4.2.4 Added new function 'set_darkness' to section 4.3.4
0.2.7 - 11/6/98Added new function 'delay' to section 4.3.2 Added new function 'start_song' to section 4.3.2 Updated entry for 'stop_song' in section 4.3.2
0.2.6 - 10/6/98Added new function 'rnd' to section 4.3.2 Added new function 'restart' to section 4.3.4
0.2.5 - 9/6/98Added the 'ifHurt' parameter to section 3.2.3 Fixed typo in the example of section 4.3.2 Added 'object->stats->oldhp' to section 4.2.4
0.2.4 - 21/5/98Sections 1.4.4 and 1.4.5 are re-written because the music is now script-controlled.not loaded incrementally. Added the overlay flag to section 3.2.2 Added the post_overlay flag to section 3.2.3 Added the wielded flag to section 3.2.3 Wrote about the ifDead parameter for objects in section 3.2.3 Added Section 3.2.7, about the new sound loaders Added Section 3.2.8 about the new music loaders. Added the new system variable 'victim' to section 4.2.4 Described new function set_object_sequence in section 4.3.1 Described new printxy function in section 4.3.2
0.2.3 - 20/5/98Wrote about the automatic object placement in section 2.2.8 and 3.2.3 How to put objects into containers. Section 2.2.10
Contents
Part 1 : Introduction
1.1 What is the IRE?Part 2 : The IRE map editor
1.2 What do I need to edit the IRE?
1.3 File formats1.3.1 - Graphics1.4 Where the files should be stored
1.3.2 - Sounds
1.3.3 - Music1.4.1 - RES1.5 How the program searches for files
1.4.2 - RES\BACKINGS
1.4.3 - RES\CODE
1.4.4 - RES\MUSIC
1.4.5 - RES\SOUND
1.4.6 - RES\SPRITES
2.1 BackgroundsPart 3 : The IRE script file2.1.1 getting familiar with the editor2.2 Sprites
2.1.2 placing tiles on the map
2.1.3 selecting tiles
2.1.4 cut and paste
2.1.5 Randomising tiles
2.1.6 Bulk Replacing2.2.1 The editor in sprites mode2.3 Rooftops
2.2.2 Creating sprites
2.2.3 Moving sprites
2.2.4 Changing sprites
2.2.5 Setting the direction
2.2.6 Deleting sprites
2.2.7 Tagging Objects
2.2.8 Editing Containers
2.2.9 Setting a character's individual name
2.2.10 Editing an object's individual statistics
2.2.11 Editing an object's individual behaviour2.3.1 The editor in rooftops mode
2.3.2 Editing rooftops
3.1 What is the script file and what does it do?Part 4 : The IRE VRM system
3.2 Script file sections3.2.1 Section: Sprites
3.2.2 Section: Sequences
3.2.3 Section: Characters
3.2.4 Section: Descriptions
3.2.5 Section: Code
3.2.6 Section: Tiles
3.2.7 Section: Sounds
3.2.8 Section: Music
3.2.9 Section: Rooftiles
4.1 What are VRM files?Part 5 : Programming Conversations4.1.1 The VRM concept4.2 The OBJECT
4.1.2 How VRMs are made
4.1.3 A VRM tutorial
4.1.4 Rules for writing VRMs
4.1.5 How the example works
4.1.6 Data Types4.2.1 Introducing the OBJECT4.3 Function Reference
4.2.2 Creating an OBJECT from scratch
4.2.3 Modifying OBJECTs
4.2.4 OBJECT Reference guide
4.2.5 The TILE4.3.1 Object functions4.4 System Variables
4.3.2 IO functions
4.3.3 Flow control functions
4.3.4 Miscellaneous functions
4.5 Keyboard Macros
5.1 OverviewPart 6 : Game description files
5.2 Page structure and simple commands5.2.1 Simple Linking5.4 Manipulating the game world
5.2.2 Interactive Linking
5.2.3 Images
5.2.4 Setting the text colour
5.3 Advanced conversations - Conditional branching5.3.1 Checking for an object
5.3.2 Important tips
5.3.3 Checking for a party member
5.3.4 Using your own flags
5.3.5 Personal flags5.4.1 Calling VRM functions
5.4.2 Creating and destroying objects
5.4.3 The theory of the conservation of money
6.1 Crucial linesPart 7 : Conclusion and Contact info
6.2 The text console
6.3 Loading screen
I spent the next few years in Ultima 6, hacking it, twisting it, folding
it into new shapes.
I wrote a set of tools which hack the program, and allow you create new
worlds, but there is a limit.
Ultima 6 has some pretty strange data structures which I never did figure
out completely.
In '94 I started an abortive attempt to make a U6 clone, which was codenamed U6C. I couldn't draw a player and it bombed.
After the failure of Avios to run satisfactorily on the P200 I am using, despite intense optimisation, I decided to stop working on it, and turned instead to making a 'perfect' ultima 6 type game. This is what I have so far.
The IRE is a Computer Role-Playing Game which takes most of its ideas from Ultima 6, and some from Ultima 7.
The main difference between the design of U6 and IRE, is that IRE is designed
from the ground up to allow someone to edit it. Ultima 6 was not designed
this way.
First, we shall look at all the resources that the game can use.
Map files
The map file is the world in which the player inhabits. At present the engine can only support one map per game, although this will probably change later.
Font
The font is the character set used in the game. The characters are fixed-space 8x8 letters, and are stored in the raw bit-packed format used by Arthur Barr's font editor.
Script file
The script file is central to IRE. It is a description file that
describes a game written using IRE.
It tells the program which sprites will be loaded, it binds the sprites
into animation sequences and defines the behaviour of all characters and objects
in the game.
The script file is described in detail in Chapter 3.
VRM files
Although the script coordinates everything, it is the VRM files which do
the actual work.
VRMs (or Virtual Runnable Modules) are written in C (using my library functions)
and get loaded into the game as it starts. Each game event is driven
by a corresponding VRM.
VRM programming is described in detail in Chapter 4.
Internal graphics
Certain parts of the IRE system have their own sprites, such as the mouse
pointer and the volume slider. These graphics are not controlled by
the script file (although they might be later), and the program will attempt
to load them itself. The internal graphics are 256-colour and stored
in the Animator .CEL format. You can also use PCX if you prefer.
If you need to convert between CEL and another format, try using PICTVIEW
by Jan Patera.
Sprites and tiles
Sprites and tiles are all defined in the script file, and are loaded in
as the script is parsed.
They are stored in .CEL or .PCX format, and may have either 256 colours
or 16.7 million.
Backing pictures
At present backing pictures are loaded in by the program, like the internal
graphics of the mouse pointer and the volume slider. They must be in
PCX format and either 640x400 in size, or 640x480.
They can be 8-bit or 24-bit PCX files.
Game package
The datafiles are loaded directly now by the engine so there is no need
to pack all the datafiles into one large resource file today.
Summary
|
|
|
|
| Map files | The IRE editor | |
| Font | Arthur's font editor (supplied) | |
| Script file | Any text editor | This is covered in part three |
| VRM files | SEERC is supplied to build them | This is covered in part four |
| Internal graphics | Autodesk Animator | You can use PICTVIEW by Jan Patera to convert graphics to CEL files |
| Sprites and Tiles | Any PCX editor | |
| Backing pictures | Any PCX editor | |
| Game package | - |
PCX files.
PCX files are straightforward, so any package that creates a .PCX should produce something readable by IRE.
Here are some known caveats:
The PCX files must be compressed using the runlength method. This is the standard, but if you do somehow manage to make an uncompressed PCX file, the program will likely choke on it.
The PCX files must be either 8-bit or 24-bit. 1,2,4 or 16-bit PCX files will be rejected and the program will stop with an error.
CEL files.
The .CEL files refer to Autodesk Animator .CEL files. This means Autodesk Animator, not Animator Pro. Animator Pro uses .FLI files and just calls them .CEL files.
If you try and load a .CEL file created by Animator Pro, IRE will go back to DOS with a panic message saying that the .CEL file you gave it "is not a .CEL file".
If you don't have the original Animator, use .PCX files instead of .CEL.
Alternatively, get RSE 2.00, a freeware program which is able to read and write .CEL files compatible with IRE.
Graphics sizes.
Stereo .WAV files are not supported however.
I don't know if .WAV files can be compressed, but it they can, that won't
work either.
The IRE's sound engine can support the following types of .MOD file:
| File name | Name | Channels | Comments |
| .MOD | Protracker module | 4 | Generic module format |
| .MTM | ? | 16 | More obscure format |
| .S3M | Screamtracker III | 32 | Popular module format |
| .STM | Screamtracker II | 4 | PC extension to the MOD format |
| .ULT | Ultratracker | 32 | Originated on the (late) GUS soundcard |
| .XM | Fastracker | 32 | Rival format to S3M Both FT1 and FT2 variants supported |
Before you race off, remember that there is a maximum of 32 channels available to the sound engine.
If you use all 32 for the music there will be none left for the sound effects.
The amount of channels reserved for the music and sound is set in the game's
config file, not the script file. By default it is 16+4, i.e.
20 channels in total.
Each IRE game will have a directory of its own, and it will look for the
files in various subdirectories
in the tree.
By default, IRE will look in the RES directory, so we'll refer to as the
RES directory in future.
(RES is shorthand for resources).
Note that it does not have to be RES, and you should call your directory
something else when you develop an IRE game.
(It's controlled by your .GAM file, which is described in Part 7)
If you've followed the previous section, you should have some idea of the resources that each IRE game will use.
Unless the file is requested by the system itself, it can go anywhere you like, as the script file will contain the full path of each file.
Internal Graphics and the script file itself, must go in particular places, which will be described in detail later. Where you put the other resources is up to you.
The files are generally organised in this way:
1.4.1 - RES
The RES directory must contain the following files:
| main.txt | The script file |
| arrow00.cel | The mouse pointer image |
| soundbar.cel | The volume slider backing image |
| slider1.cel | The slider that has been selected |
| slider2.cel | The slider that is not selected |
| font.dat | The typeface used in the game |
| eyesore.cel | Used by the editor for the 'Random Tile' |
| warning.cel | Shown if the Random Tile appears in the game |
| credits.dat | ANSI credits at end, like ENDOOM in Doom |
| help.txt | A conversation file that is run when F1 is pressed, see Part 5 |
1.4.2 - RES\BACKINGS
The RES\BACKINGS directory must contain the following file:
| panel.pcx | The background image of the game status area |
1.4.3 - RES\CODE
You need a place to store the VRM files used in the game, I called mine
RES\CODE.
Again, the VRMs are defined in the script file, so you can put them anywhere
you like,
RES\VRM might be another choice.
You could keep them on another drive, or even just in the RES\ directory,
although that would be untidy.
1.4.4 - RES\MUSIC
You need a place to store the music files. I keep them in RES\MUSIC.
As of kernel version 0.025, the music is defined in the script file, so
you can put them anywhere you like,
RES\MODS might be another choice.
You could keep them on another drive, or even just in the RES\ directory, although that would be untidy.
1.4.5 - RES\SOUND
You need a place to store the sound effects. I keep them in RES\SOUND.
As of kernel version 0.025, the music is defined in the script file, so
you can put them anywhere you like,
RES\WAVS might be another choice.
1.4.6 - RES\SPRITES
You need a place to store the sprites used in the game, I called mine RES\SPRITES.
Again, the sprites and other game images are defined in the script file,
so you can put them anywhere you like, maybe RES\OBJECTS.
When it tries to load a file, it will look for it in the following order:
NOTE: The map editor will ONLY load maps from the IRE directory,
and not from the RES or RAR sources. All other files, the graphics
and such can be loaded from other sources.
A Background
Objects and characters
Rooftops
First, look the main window. This is the map, as it will appear
when the game is being played.
You can pan around the map using the cursor keys, or the four arrow buttons
to the right of the window.
Also, note the two black panels on the far right-hand side of the screen.
They control the screen display, and allow you to switch off the other layers of the level if you find they get in the way while you are editing.
"SPRITES ON" means that the movable objects in the game, such as the player, other characters and similar things will be displayed. If you click once in the black area, it will read "SPRITES OFF" instead, and any sprites visible on the map will disappear while you are editing the backgrounds.
Similarly, "ROOFTOPS ON" means that the highest-level objects in the game,
normally the roofs of buildings, will be displayed. If you click in
the black area, it will change to "ROOFTOPS OFF". Rooftops are not
displayed by default, as you are mainly going to edit the insides of buildings
and that
is generally impossible with the roof in the way.
Lis no sale.
I spent the next few years in Ultima 6, hacking it, twisting it, folding
it into new shapes.
I wrote a set of tools which hack the program, and allow you create new
worlds, but there is a limit.
Ultima 6 has some pretty strange data structures which I never did figure
out completely.
In '94 I started an abortive attempt to make a U6 clone, which was codenamed U6C. I couldn't draw a player and it bombed.
After the failure of Avios to run satisfactorily on the P200 I am using, despite intense optimisation, I decided to stop working on it, and turned instead to making a 'perfect' ultima 6 type game. This is what I have so far.
The IRE is a Computer Role-Playing Game which takes most of its ideas from Ultima 6, and some from Ultima 7.
The main difference between the design of U6 and IRE, is that IRE is designed
from the ground up to allow someone to edit it. Ultima 6 was not designed
this way.
First, we shall look at all the resources that the game can use.
Map files
The map file is the world in which the player inhabits. At present the engine can only support one map per game, although this will probably change later.
Font
The font is the character set used in the game. The characters are fixed-space 8x8 letters, and are stored in the raw bit-packed format used by Arthur Barr's font editor.
Script file
The script file is central to IRE. It is a description file that
describes a game written using IRE.
It tells the program which sprites will be loaded, it binds the sprites
into animation sequences and defines the behaviour of all characters and objects
in the game.
The script file is described in detail in Chapter 3.
VRM files
Although the script coordinates everything, it is the VRM files which do
the actual work.
VRMs (or Virtual Runnable Modules) are written in C (using my library functions)
and get loaded into the game as it starts. Each game event is driven
by a corresponding VRM.
VRM programming is described in detail in Chapter 4.
Internal graphics
Certain parts of the IRE system have their own sprites, such as the mouse
pointer and the volume slider. These graphics are not controlled by
the script file (although they might be later), and the program will attempt
to load them itself. The internal graphics are 256-colour and stored
in the Animator .CEL format. You can also use PCX if you prefer.
If you need to convert between CEL and another format, try using PICTVIEW
by Jan Patera.
Sprites and tiles
Sprites and tiles are all defined in the script file, and are loaded in
as the script is parsed.
They are stored in .CEL or .PCX format, and may have either 256 colours
or 16.7 million.
Backing pictures
At present backing pictures are loaded in by the program, like the internal
graphics of the mouse pointer and the volume slider. They must be in
PCX format and either 640x400 in size, or 640x480.
They can be 8-bit or 24-bit PCX files.
Game package
The datafiles are loaded directly now by the engine so there is no need
to pack all the datafiles into one large resource file today.
Summary
|
|
|
|
| Map files | The IRE editor | |
| Font | Arthur's font editor (supplied) | |
| Script file | Any text editor | This is covered in part three |
| VRM files | SEERC is supplied to build them | This is covered in part four |
| Internal graphics | Autodesk Animator | You can use PICTVIEW by Jan Patera to convert graphics to CEL files |
| Sprites and Tiles | Any PCX editor | |
| Backing pictures | Any PCX editor | |
| Game package | - |
PCX files.
PCX files are straightforward, so any package that creates a .PCX should produce something readable by IRE.
Here are some known caveats:
The PCX files must be compressed using the runlength method. This is the standard, but if you do somehow manage to make an uncompressed PCX file, the program will likely choke on it.
The PCX files must be either 8-bit or 24-bit. 1,2,4 or 16-bit PCX files will be rejected and the program will stop with an error.
CEL files.
The .CEL files refer to Autodesk Animator .CEL files. This means Autodesk Animator, not Animator Pro. Animator Pro uses .FLI files and just calls them .CEL files.
If you try and load a .CEL file created by Animator Pro, IRE will go back to DOS with a panic message saying that the .CEL file you gave it "is not a .CEL file".
If you don't have the original Animator, use .PCX files instead of .CEL.
Alternatively, get RSE 2.00, a freeware program which is able to read and write .CEL files compatible with IRE.
Graphics sizes.
Stereo .WAV files are not supported however.
I don't know if .WAV files can be compressed, but it they can, that won't
work either.
The IRE's sound engine can support the following types of .MOD file:
| File name | Name | Channels | Comments |
| .MOD | Protracker module | 4 | Generic module format |
| .MTM | ? | 16 | More obscure format |
| .S3M | Screamtracker III | 32 | Popular module format |
| .STM | Screamtracker II | 4 | PC extension to the MOD format |
| .ULT | Ultratracker | 32 | Originated on the (late) GUS soundcard |
| .XM | Fastracker | 32 | Rival format to S3M Both FT1 and FT2 variants supported |
Before you race off, remember that there is a maximum of 32 channels available to the sound engine.
If you use all 32 for the music there will be none left for the sound effects.
The amount of channels reserved for the music and sound is set in the game's
config file, not the script file. By default it is 16+4, i.e.
20 channels in total.
Each IRE game will have a directory of its own, and it will look for the
files in various subdirectories
in the tree.
By default, IRE will look in the RES directory, so we'll refer to as the
RES directory in future.
(RES is shorthand for resources).
Note that it does not have to be RES, and you should call your directory
something else when you develop an IRE game.
(It's controlled by your .GAM file, which is described in Part 7)
If you've followed the previous section, you should have some idea of the resources that each IRE game will use.
Unless the file is requested by the system itself, it can go anywhere you like, as the script file will contain the full path of each file.
Internal Graphics and the script file itself, must go in particular places, which will be described in detail later. Where you put the other resources is up to you.
The files are generally organised in this way:
1.4.1 - RES
The RES directory must contain the following files:
| main.txt | The script file |
| arrow00.cel | The mouse pointer image |
| soundbar.cel | The volume slider backing image |
| slider1.cel | The slider that has been selected |
| slider2.cel | The slider that is not selected |
| font.dat | The typeface used in the game |
| eyesore.cel | Used by the editor for the 'Random Tile' |
| warning.cel | Shown if the Random Tile appears in the game |
| credits.dat | ANSI credits at end, like ENDOOM in Doom |
| help.txt | A conversation file that is run when F1 is pressed, see Part 5 |
1.4.2 - RES\BACKINGS
The RES\BACKINGS directory must contain the following file:
| panel.pcx | The background image of the game status area |
1.4.3 - RES\CODE
You need a place to store the VRM files used in the game, I called mine
RES\CODE.
Again, the VRMs are defined in the script file, so you can put them anywhere
you like,
RES\VRM might be another choice.
You could keep them on another drive, or even just in the RES\ directory,
although that would be untidy.
1.4.4 - RES\MUSIC
You need a place to store the music files. I keep them in RES\MUSIC.
As of kernel version 0.025, the music is defined in the script file, so
you can put them anywhere you like,
RES\MODS might be another choice.
You could keep them on another drive, or even just in the RES\ directory, although that would be untidy.
1.4.5 - RES\SOUND
You need a place to store the sound effects. I keep them in RES\SOUND.
As of kernel version 0.025, the music is defined in the script file, so
you can put them anywhere you like,
RES\WAVS might be another choice.
1.4.6 - RES\SPRITES
You need a place to store the sprites used in the game, I called mine RES\SPRITES.
Again, the sprites and other game images are defined in the script file,
so you can put them anywhere you like, maybe RES\OBJECTS.
When it tries to load a file, it will look for it in the following order:
NOTE: The map editor will ONLY load maps from the IRE directory,
and not from the RES or RAR sources. All other files, the graphics
and such can be loaded from other sources.
A Background
Objects and characters
Rooftops
First, look the main window. This is the map, as it will appear
when the game is being played.
You can pan around the map using the cursor keys, or the four arrow buttons
to the right of the window.
Also, note the two black panels on the far right-hand side of the screen.
They control the screen display, and allow you to switch off the other layers of the level if you find they get in the way while you are editing.
"SPRITES ON" means that the movable objects in the game, such as the player, other characters and similar things will be displayed. If you click once in the black area, it will read "SPRITES OFF" instead, and any sprites visible on the map will disappear while you are editing the backgrounds.
Similarly, "ROOFTOPS ON" means that the highest-level objects in the game,
normally the roofs of buildings, will be displayed. If you click in
the black area, it will change to "ROOFTOPS OFF". Rooftops are not
displayed by default, as you are mainly going to edit the insides of buildings
and that
is generally impossible with the roof in the way.
Lis no sale.
I spent the next few years in Ultima 6, hacking it, twisting it, folding
it into new shapes.
I wrote a set of tools which hack the program, and allow you create new
worlds, but there is a limit.
Ultima 6 has some pretty strange data structures which I never did figure
out completely.
In '94 I started an abortive attempt to make a U6 clone, which was codenamed U6C. I couldn't draw a player and it bombed.
After the failure of Avios to run satisfactorily on the P200 I am using, despite intense optimisation, I decided to stop working on it, and turned instead to making a 'perfect' ultima 6 type game. This is what I have so far.
The IRE is a Computer Role-Playing Game which takes most of its ideas from Ultima 6, and some from Ultima 7.
The main difference between the design of U6 and IRE, is that IRE is designed
from the ground up to allow someone to edit it. Ultima 6 was not designed
this way.
First, we shall look at all the resources that the game can use.
Map files
The map file is the world in which the player inhabits. At present the engine can only support one map per game, although this will probably change later.
Font
The font is the character set used in the game. The characters are fixed-space 8x8 letters, and are stored in the raw bit-packed format used by Arthur Barr's font editor.
Script file
The script file is central to IRE. It is a description file that
describes a game written using IRE.
It tells the program which sprites will be loaded, it binds the sprites
into animation sequences and defines the behaviour of all characters and objects
in the game.
The script file is described in detail in Chapter 3.
VRM files
Although the script coordinates everything, it is the VRM files which do
the actual work.
VRMs (or Virtual Runnable Modules) are written in C (using my library functions)
and get loaded into the game as it starts. Each game event is driven
by a corresponding VRM.
VRM programming is described in detail in Chapter 4.
Internal graphics
Certain parts of the IRE system have their own sprites, such as the mouse
pointer and the volume slider. These graphics are not controlled by
the script file (although they might be later), and the program will attempt
to load them itself. The internal graphics are 256-colour and stored
in the Animator .CEL format. You can also use PCX if you prefer.
If you need to convert between CEL and another format, try using PICTVIEW
by Jan Patera.
Sprites and tiles
Sprites and tiles are all defined in the script file, and are loaded in
as the script is parsed.
They are stored in .CEL or .PCX format, and may have either 256 colours
or 16.7 million.
Backing pictures
At present backing pictures are loaded in by the program, like the internal
graphics of the mouse pointer and the volume slider. They must be in
PCX format and either 640x400 in size, or 640x480.
They can be 8-bit or 24-bit PCX files.
Game package
The datafiles are loaded directly now by the engine so there is no need
to pack all the datafiles into one large resource file today.
Summary
|
|
|
|
| Map files | The IRE editor | |
| Font | Arthur's font editor (supplied) | |
| Script file | Any text editor | This is covered in part three |
| VRM files | SEERC is supplied to build them | This is covered in part four |
| Internal graphics | Autodesk Animator | You can use PICTVIEW by Jan Patera to convert graphics to CEL files |
| Sprites and Tiles | Any PCX editor | |
| Backing pictures | Any PCX editor | |
| Game package | - |
PCX files.
PCX files are straightforward, so any package that creates a .PCX should produce something readable by IRE.
Here are some known caveats:
The PCX files must be compressed using the runlength method. This is the standard, but if you do somehow manage to make an uncompressed PCX file, the program will likely choke on it.
The PCX files must be either 8-bit or 24-bit. 1,2,4 or 16-bit PCX files will be rejected and the program will stop with an error.
CEL files.
The .CEL files refer to Autodesk Animator .CEL files. This means Autodesk Animator, not Animator Pro. Animator Pro uses .FLI files and just calls them .CEL files.
If you try and load a .CEL file created by Animator Pro, IRE will go back to DOS with a panic message saying that the .CEL file you gave it "is not a .CEL file".
If you don't have the original Animator, use .PCX files instead of .CEL.
Alternatively, get RSE 2.00, a freeware program which is able to read and write .CEL files compatible with IRE.
Graphics sizes.
Stereo .WAV files are not supported however.
I don't know if .WAV files can be compressed, but it they can, that won't
work either.
The IRE's sound engine can support the following types of .MOD file:
| File name | Name | Channels | Comments |
| .MOD | Protracker module | 4 | Generic module format |
| .MTM | ? | 16 | More obscure format |
| .S3M | Screamtracker III | 32 | Popular module format |
| .STM | Screamtracker II | 4 | PC extension to the MOD format |
| .ULT | Ultratracker | 32 | Originated on the (late) GUS soundcard |
| .XM | Fastracker | 32 | Rival format to S3M Both FT1 and FT2 variants supported |
Before you race off, remember that there is a maximum of 32 channels available to the sound engine.
If you use all 32 for the music there will be none left for the sound effects.
The amount of channels reserved for the music and sound is set in the game's
config file, not the script file. By default it is 16+4, i.e.
20 channels in total.
Each IRE game will have a directory of its own, and it will look for the
files in various subdirectories
in the tree.
By default, IRE will look in the RES directory, so we'll refer to as the
RES directory in future.
(RES is shorthand for resources).
Note that it does not have to be RES, and you should call your directory
something else when you develop an IRE game.
(It's controlled by your .GAM file, which is described in Part 7)
If you've followed the previous section, you should have some idea of the resources that each IRE game will use.
Unless the file is requested by the system itself, it can go anywhere you like, as the script file will contain the full path of each file.
Internal Graphics and the script file itself, must go in particular places, which will be described in detail later. Where you put the other resources is up to you.
The files are generally organised in this way:
1.4.1 - RES
The RES directory must contain the following files:
| main.txt | The script file |
| arrow00.cel | The mouse pointer image |
| soundbar.cel | The volume slider backing image |
| slider1.cel | The slider that has been selected |
| slider2.cel | The slider that is not selected |
| font.dat | The typeface used in the game |
| eyesore.cel | Used by the editor for the 'Random Tile' |
| warning.cel | Shown if the Random Tile appears in the game |
| credits.dat | ANSI credits at end, like ENDOOM in Doom |
| help.txt | A conversation file that is run when F1 is pressed, see Part 5 |
1.4.2 - RES\BACKINGS
The RES\BACKINGS directory must contain the following file:
| panel.pcx | The background image of the game status area |
1.4.3 - RES\CODE
You need a place to store the VRM files used in the game, I called mine
RES\CODE.
Again, the VRMs are defined in the script file, so you can put them anywhere
you like,
RES\VRM might be another choice.
You could keep them on another drive, or even just in the RES\ directory,
although that would be untidy.
1.4.4 - RES\MUSIC
You need a place to store the music files. I keep them in RES\MUSIC.
As of kernel version 0.025, the music is defined in the script file, so
you can put them anywhere you like,
RES\MODS might be another choice.
You could keep them on another drive, or even just in the RES\ directory, although that would be untidy.
1.4.5 - RES\SOUND
You need a place to store the sound effects. I keep them in RES\SOUND.
As of kernel version 0.025, the music is defined in the script file, so
you can put them anywhere you like,
RES\WAVS might be another choice.
1.4.6 - RES\SPRITES
You need a place to store the sprites used in the game, I called mine RES\SPRITES.
Again, the sprites and other game images are defined in the script file,
so you can put them anywhere you like, maybe RES\OBJECTS.
When it tries to load a file, it will look for it in the following order:
NOTE: The map editor will ONLY load maps from the IRE directory,
and not from the RES or RAR sources. All other files, the graphics
and such can be loaded from other sources.
A Background
Objects and characters
Rooftops
First, look the main window. This is the map, as it will appear
when the game is being played.
You can pan around the map using the cursor keys, or the four arrow buttons
to the right of the window.
Also, note the two black panels on the far right-hand side of the screen.
They control the screen display, and allow you to switch off the other layers of the level if you find they get in the way while you are editing.
"SPRITES ON" means that the movable objects in the game, such as the player, other characters and similar things will be displayed. If you click once in the black area, it will read "SPRITES OFF" instead, and any sprites visible on the map will disappear while you are editing the backgrounds.
Similarly, "ROOFTOPS ON" means that the highest-level objects in the game,
normally the roofs of buildings, will be displayed. If you click in
the black area, it will change to "ROOFTOPS OFF". Rooftops are not
displayed by default, as you are mainly going to edit the insides of buildings
and that
is generally impossible with the roof in the way.
Lis no sale.
I spent the next few years in Ultima 6, hacking it, twisting it, folding
it into new shapes.
I wrote a set of tools which hack the program, and allow you create new
worlds, but there is a limit.
Ultima 6 has some pretty strange data structures which I never did figure
out completely.
In '94 I started an abortive attempt to make a U6 clone, which was codenamed U6C. I couldn't draw a player and it bombed.
After the failure of Avios to run satisfactorily on the P200 I am using, despite intense optimisation, I decided to stop working on it, and turned instead to making a 'perfect' ultima 6 type game. This is what I have so far.
The IRE is a Computer Role-Playing Game which takes most of its ideas from Ultima 6, and some from Ultima 7.
The main difference between the design of U6 and IRE, is that IRE is designed
from the ground up to allow someone to edit it. Ultima 6 was not designed
this way.
First, we shall look at all the resources that the game can use.
Map files
The map file is the world in which the player inhabits. At present the engine can only support one map per game, although this will probably change later.
Font
The font is the character set used in the game. The characters are fixed-space 8x8 letters, and are stored in the raw bit-packed format used by Arthur Barr's font editor.
Script file
The script file is central to IRE. It is a description file that
describes a game written using IRE.
It tells the program which sprites will be loaded, it binds the sprites
into animation sequences and defines the behaviour of all characters and objects
in the game.
The script file is described in detail in Chapter 3.
VRM files
Although the script coordinates everything, it is the VRM files which do
the actual work.
VRMs (or Virtual Runnable Modules) are written in C (using my library functions)
and get loaded into the game as it starts. Each game event is driven
by a corresponding VRM.
VRM programming is described in detail in Chapter 4.
Internal graphics
Certain parts of the IRE system have their own sprites, such as the mouse
pointer and the volume slider. These graphics are not controlled by
the script file (although they might be later), and the program will attempt
to load them itself. The internal graphics are 256-colour and stored
in the Animator .CEL format. You can also use PCX if you prefer.
If you need to convert between CEL and another format, try using PICTVIEW
by Jan Patera.
Sprites and tiles
Sprites and tiles are all defined in the script file, and are loaded in
as the script is parsed.
They are stored in .CEL or .PCX format, and may have either 256 colours
or 16.7 million.
Backing pictures
At present backing pictures are loaded in by the program, like the internal
graphics of the mouse pointer and the volume slider. They must be in
PCX format and either 640x400 in size, or 640x480.
They can be 8-bit or 24-bit PCX files.
Game package
The datafiles are loaded directly now by the engine so there is no need
to pack all the datafiles into one large resource file today.
Summary
|
|
|
|
| Map files | The IRE editor | |
| Font | Arthur's font editor (supplied) | |
| Script file | Any text editor | This is covered in part three |
| VRM files | SEERC is supplied to build them | This is covered in part four |
| Internal graphics | Autodesk Animator | You can use PICTVIEW by Jan Patera to convert graphics to CEL files |
| Sprites and Tiles | Any PCX editor | |
| Backing pictures | Any PCX editor | |
| Game package | - |
PCX files.
PCX files are straightforward, so any package that creates a .PCX should produce something readable by IRE.
Here are some known caveats:
The PCX files must be compressed using the runlength method. This is the standard, but if you do somehow manage to make an uncompressed PCX file, the program will likely choke on it.
The PCX files must be either 8-bit or 24-bit. 1,2,4 or 16-bit PCX files will be rejected and the program will stop with an error.
CEL files.
The .CEL files refer to Autodesk Animator .CEL files. This means Autodesk Animator, not Animator Pro. Animator Pro uses .FLI files and just calls them .CEL files.
If you try and load a .CEL file created by Animator Pro, IRE will go back to DOS with a panic message saying that the .CEL file you gave it "is not a .CEL file".
If you don't have the original Animator, use .PCX files instead of .CEL.
Alternatively, get RSE 2.00, a freeware program which is able to read and write .CEL files compatible with IRE.
Graphics sizes.
Stereo .WAV files are not supported however.
I don't know if .WAV files can be compressed, but it they can, that won't
work either.
The IRE's sound engine can support the following types of .MOD file:
| File name | Name | Channels | Comments |
| .MOD | Protracker module | 4 | Generic module format |
| .MTM | ? | 16 | More obscure format |
| .S3M | Screamtracker III | 32 | Popular module format |
| .STM | Screamtracker II | 4 | PC extension to the MOD format |
| .ULT | Ultratracker | 32 | Originated on the (late) GUS soundcard |
| .XM | Fastracker | 32 | Rival format to S3M Both FT1 and FT2 variants supported |
Before you race off, remember that there is a maximum of 32 channels available to the sound engine.
If you use all 32 for the music there will be none left for the sound effects.
The amount of channels reserved for the music and sound is set in the game's
config file, not the script file. By default it is 16+4, i.e.
20 channels in total.
Each IRE game will have a directory of its own, and it will look for the
files in various subdirectories
in the tree.
By default, IRE will look in the RES directory, so we'll refer to as the
RES directory in future.
(RES is shorthand for resources).
Note that it does not have to be RES, and you should call your directory
something else when you develop an IRE game.
(It's controlled by your .GAM file, which is described in Part 7)
If you've followed the previous section, you should have some idea of the resources that each IRE game will use.
Unless the file is requested by the system itself, it can go anywhere you like, as the script file will contain the full path of each file.
Internal Graphics and the script file itself, must go in particular places, which will be described in detail later. Where you put the other resources is up to you.
The files are generally organised in this way:
1.4.1 - RES
The RES directory must contain the following files:
| main.txt | The script file |
| arrow00.cel | The mouse pointer image |
| soundbar.cel | The volume slider backing image |
| slider1.cel | The slider that has been selected |
| slider2.cel | The slider that is not selected |
| font.dat | The typeface used in the game |
| eyesore.cel | Used by the editor for the 'Random Tile' |
| warning.cel | Shown if the Random Tile appears in the game |
| credits.dat | ANSI credits at end, like ENDOOM in Doom |
| help.txt | A conversation file that is run when F1 is pressed, see Part 5 |
1.4.2 - RES\BACKINGS
The RES\BACKINGS directory must contain the following file:
| panel.pcx | The background image of the game status area |
1.4.3 - RES\CODE
You need a place to store the VRM files used in the game, I called mine
RES\CODE.
Again, the VRMs are defined in the script file, so you can put them anywhere
you like,
RES\VRM might be another choice.
You could keep them on another drive, or even just in the RES\ directory,
although that would be untidy.
1.4.4 - RES\MUSIC
You need a place to store the music files. I keep them in RES\MUSIC.
As of kernel version 0.025, the music is defined in the script file, so
you can put them anywhere you like,
RES\MODS might be another choice.
You could keep them on another drive, or even just in the RES\ directory, although that would be untidy.
1.4.5 - RES\SOUND
You need a place to store the sound effects. I keep them in RES\SOUND.
As of kernel version 0.025, the music is defined in the script file, so
you can put them anywhere you like,
RES\WAVS might be another choice.
1.4.6 - RES\SPRITES
You need a place to store the sprites used in the game, I called mine RES\SPRITES.
Again, the sprites and other game images are defined in the script file,
so you can put them anywhere you like, maybe RES\OBJECTS.
When it tries to load a file, it will look for it in the following order:
NOTE: The map editor will ONLY load maps from the IRE directory,
and not from the RES or RAR sources. All other files, the graphics
and such can be loaded from other sources.
A Background
Objects and characters
Rooftops
First, look the main window. This is the map, as it will appear
when the game is being played.
You can pan around the map using the cursor keys, or the four arrow buttons
to the right of the window.
Also, note the two black panels on the far right-hand side of the screen.
They control the screen display, and allow you to switch off the other layers of the level if you find they get in the way while you are editing.
"SPRITES ON" means that the movable objects in the game, such as the player, other characters and similar things will be displayed. If you click once in the black area, it will read "SPRITES OFF" instead, and any sprites visible on the map will disappear while you are editing the backgrounds.
Similarly, "ROOFTOPS ON" means that the highest-level objects in the game,
normally the roofs of buildings, will be displayed. If you click in
the black area, it will change to "ROOFTOPS OFF". Rooftops are not
displayed by default, as you are mainly going to edit the insides of buildings
and that
is generally impossible with the roof in the way.
Lis no sale.
I spent the next few years in Ultima 6, hacking it, twisting it, folding
it into new shapes.
I wrote a set of tools which hack the program, and allow you create new
worlds, but there is a limit.
Ultima 6 has some pretty strange data structures which I never did figure
out completely.
In '94 I started an abortive attempt to make a U6 clone, which was codenamed U6C. I couldn't draw a player and it bombed.
After the failure of Avios to run satisfactorily on the P200 I am using, despite intense optimisation, I decided to stop working on it, and turned instead to making a 'perfect' ultima 6 type game. This is what I have so far.
The IRE is a Computer Role-Playing Game which takes most of its ideas from Ultima 6, and some from Ultima 7.
The main difference between the design of U6 and IRE, is that IRE is designed
from the ground up to allow someone to edit it. Ultima 6 was not designed
this way.
First, we shall look at all the resources that the game can use.
Map files
The map file is the world in which the player inhabits. At present the engine can only support one map per game, although this will probably change later.
Font
The font is the character set used in the game. The characters are fixed-space 8x8 letters, and are stored in the raw bit-packed format used by Arthur Barr's font editor.
Script file
The script file is central to IRE. It is a description file that
describes a game written using IRE.
It tells the program which sprites will be loaded, it binds the sprites
into animation sequences and defines the behaviour of all characters and objects
in the game.
The script file is described in detail in Chapter 3.
VRM files
Although the script coordinates everything, it is the VRM files which do
the actual work.
VRMs (or Virtual Runnable Modules) are written in C (using my library functions)
and get loaded into the game as it starts. Each game event is driven
by a corresponding VRM.
VRM programming is described in detail in Chapter 4.
Internal graphics
Certain parts of the IRE system have their own sprites, such as the mouse
pointer and the volume slider. These graphics are not controlled by
the script file (although they might be later), and the program will attempt
to load them itself. The internal graphics are 256-colour and stored
in the Animator .CEL format. You can also use PCX if you prefer.
If you need to convert between CEL and another format, try using PICTVIEW
by Jan Patera.
Sprites and tiles
Sprites and tiles are all defined in the script file, and are loaded in
as the script is parsed.
They are stored in .CEL or .PCX format, and may have either 256 colours
or 16.7 million.
Backing pictures
At present backing pictures are loaded in by the program, like the internal
graphics of the mouse pointer and the volume slider. They must be in
PCX format and either 640x400 in size, or 640x480.
They can be 8-bit or 24-bit PCX files.
Game package
The datafiles are loaded directly now by the engine so there is no need
to pack all the datafiles into one large resource file today.
Summary
|
|
|
|
| Map files | The IRE editor | |
| Font | Arthur's font editor (supplied) | |
| Script file | Any text editor | This is covered in part three |
| VRM files | SEERC is supplied to build them | This is covered in part four |
| Internal graphics | Autodesk Animator | You can use PICTVIEW by Jan Patera to convert graphics to CEL files |
| Sprites and Tiles | Any PCX editor | |
| Backing pictures | Any PCX editor | |
| Game package | - |
PCX files.
PCX files are straightforward, so any package that creates a .PCX should produce something readable by IRE.
Here are some known caveats:
The PCX files must be compressed using the runlength method. This is the standard, but if you do somehow manage to make an uncompressed PCX file, the program will likely choke on it.
The PCX files must be either 8-bit or 24-bit. 1,2,4 or 16-bit PCX files will be rejected and the program will stop with an error.
CEL files.
The .CEL files refer to Autodesk Animator .CEL files. This means Autodesk Animator, not Animator Pro. Animator Pro uses .FLI files and just calls them .CEL files.
If you try and load a .CEL file created by Animator Pro, IRE will go back to DOS with a panic message saying that the .CEL file you gave it "is not a .CEL file".
If you don't have the original Animator, use .PCX files instead of .CEL.
Alternatively, get RSE 2.00, a freeware program which is able to read and write .CEL files compatible with IRE.
Graphics sizes.
Stereo .WAV files are not supported however.
I don't know if .WAV files can be compressed, but it they can, that won't
work either.
The IRE's sound engine can support the following types of .MOD file:
| File name | Name | Channels | Comments |
| .MOD | Protracker module | 4 | Generic module format |
| .MTM | ? | 16 | More obscure format |
| .S3M | Screamtracker III | 32 | Popular module format |
| .STM | Screamtracker II | 4 | PC extension to the MOD format |
| .ULT | Ultratracker | 32 | Originated on the (late) GUS soundcard |
| .XM | Fastracker | 32 | Rival format to S3M Both FT1 and FT2 variants supported |
Before you race off, remember that there is a maximum of 32 channels available to the sound engine.
If you use all 32 for the music there will be none left for the sound effects.
The amount of channels reserved for the music and sound is set in the game's
config file, not the script file. By default it is 16+4, i.e.
20 channels in total.
Each IRE game will have a directory of its own, and it will look for the
files in various subdirectories
in the tree.
By default, IRE will look in the RES directory, so we'll refer to as the
RES directory in future.
(RES is shorthand for resources).
Note that it does not have to be RES, and you should call your directory
something else when you develop an IRE game.
(It's controlled by your .GAM file, which is described in Part 7)
If you've followed the previous section, you should have some idea of the resources that each IRE game will use.
Unless the file is requested by the system itself, it can go anywhere you like, as the script file will contain the full path of each file.
Internal Graphics and the script file itself, must go in particular places, which will be described in detail later. Where you put the other resources is up to you.
The files are generally organised in this way:
1.4.1 - RES
The RES directory must contain the following files:
| main.txt | The script file |
| arrow00.cel | The mouse pointer image |
| soundbar.cel | The volume slider backing image |
| slider1.cel | The slider that has been selected |
| slider2.cel | The slider that is not selected |
| font.dat | The typeface used in the game |
| eyesore.cel | Used by the editor for the 'Random Tile' |
| warning.cel | Shown if the Random Tile appears in the game |
| credits.dat | ANSI credits at end, like ENDOOM in Doom |
| help.txt | A conversation file that is run when F1 is pressed, see Part 5 |
1.4.2 - RES\BACKINGS
The RES\BACKINGS directory must contain the following file:
| panel.pcx | The background image of the game status area |
1.4.3 - RES\CODE
You need a place to store the VRM files used in the game, I called mine
RES\CODE.
Again, the VRMs are defined in the script file, so you can put them anywhere
you like,
RES\VRM might be another choice.
You could keep them on another drive, or even just in the RES\ directory,
although that would be untidy.
1.4.4 - RES\MUSIC
You need a place to store the music files. I keep them in RES\MUSIC.
As of kernel version 0.025, the music is defined in the script file, so
you can put them anywhere you like,
RES\MODS might be another choice.
You could keep them on another drive, or even just in the RES\ directory, although that would be untidy.
1.4.5 - RES\SOUND
You need a place to store the sound effects. I keep them in RES\SOUND.
As of kernel version 0.025, the music is defined in the script file, so
you can put them anywhere you like,
RES\WAVS might be another choice.
1.4.6 - RES\SPRITES
You need a place to store the sprites used in the game, I called mine RES\SPRITES.
Again, the sprites and other game images are defined in the script file,
so you can put them anywhere you like, maybe RES\OBJECTS.
When it tries to load a file, it will look for it in the following order:
NOTE: The map editor will ONLY load maps from the IRE directory,
and not from the RES or RAR sources. All other files, the graphics
and such can be loaded from other sources.
A Background
Objects and characters
Rooftops
First, look the main window. This is the map, as it will appear
when the game is being played.
You can pan around the map using the cursor keys, or the four arrow buttons
to the right of the window.
Also, note the two black panels on the far right-hand side of the screen.
They control the screen display, and allow you to switch off the other layers of the level if you find they get in the way while you are editing.
"SPRITES ON" means that the movable objects in the game, such as the player, other characters and similar things will be displayed. If you click once in the black area, it will read "SPRITES OFF" instead, and any sprites visible on the map will disappear while you are editing the backgrounds.
Similarly, "ROOFTOPS ON" means that the highest-level objects in the game,
normally the roofs of buildings, will be displayed. If you click in
the black area, it will change to "ROOFTOPS OFF". Rooftops are not
displayed by default, as you are mainly going to edit the insides of buildings
and that
is generally impossible with the roof in the way.
Lis no sale.
I spent the next few years in Ultima 6, hacking it, twisting it, folding
it into new shapes.
I wrote a set of tools which hack the program, and allow you create new
worlds, but there is a limit.
Ultima 6 has some pretty strange data structures which I never did figure
out completely.
In '94 I started an abortive attempt to make a U6 clone, which was codenamed U6C. I couldn't draw a player and it bombed.
After the failure of Avios to run satisfactorily on the P200 I am using, despite intense optimisation, I decided to stop working on it, and turned instead to making a 'perfect' ultima 6 type game. This is what I have so far.
The IRE is a Computer Role-Playing Game which takes most of its ideas from Ultima 6, and some from Ultima 7.
The main difference between the design of U6 and IRE, is that IRE is designed
from the ground up to allow someone to edit it. Ultima 6 was not designed
this way.
First, we shall look at all the resources that the game can use.
Map files
The map file is the world in which the player inhabits. At present the engine can only support one map per game, although this will probably change later.
Font
The font is the character set used in the game. The characters are fixed-space 8x8 letters, and are stored in the raw bit-packed format used by Arthur Barr's font editor.
Script file
The script file is central to IRE. It is a description file that
describes a game written using IRE.
It tells the program which sprites will be loaded, it binds the sprites
into animation sequences and defines the behaviour of all characters and objects
in the game.
The script file is described in detail in Chapter 3.
VRM files
Although the script coordinates everything, it is the VRM files which do
the actual work.
VRMs (or Virtual Runnable Modules) are written in C (using my library functions)
and get loaded into the game as it starts. Each game event is driven
by a corresponding VRM.
VRM programming is described in detail in Chapter 4.
Internal graphics
Certain parts of the IRE system have their own sprites, such as the mouse
pointer and the volume slider. These graphics are not controlled by
the script file (although they might be later), and the program will attempt
to load them itself. The internal graphics are 256-colour and stored
in the Animator .CEL format. You can also use PCX if you prefer.
If you need to convert between CEL and another format, try using PICTVIEW
by Jan Patera.
Sprites and tiles
Sprites and tiles are all defined in the script file, and are loaded in
as the script is parsed.
They are stored in .CEL or .PCX format, and may have either 256 colours
or 16.7 million.
Backing pictures
At present backing pictures are loaded in by the program, like the internal
graphics of the mouse pointer and the volume slider. They must be in
PCX format and either 640x400 in size, or 640x480.
They can be 8-bit or 24-bit PCX files.
Game package
The datafiles are loaded directly now by the engine so there is no need
to pack all the datafiles into one large resource file today.
Summary
|
|
|
|
| Map files | The IRE editor | |
| Font | Arthur's font editor (supplied) | |
| Script file | Any text editor | This is covered in part three |
| VRM files | SEERC is supplied to build them | This is covered in part four |
| Internal graphics | Autodesk Animator | You can use PICTVIEW by Jan Patera to convert graphics to CEL files |
| Sprites and Tiles | Any PCX editor | |
| Backing pictures | Any PCX editor | |
| Game package | - |
PCX files.
PCX files are straightforward, so any package that creates a .PCX should produce something readable by IRE.
Here are some known caveats:
The PCX files must be compressed using the runlength method. This is the standard, but if you do somehow manage to make an uncompressed PCX file, the program will likely choke on it.
The PCX files must be either 8-bit or 24-bit. 1,2,4 or 16-bit PCX files will be rejected and the program will stop with an error.
CEL files.
The .CEL files refer to Autodesk Animator .CEL files. This means Autodesk Animator, not Animator Pro. Animator Pro uses .FLI files and just calls them .CEL files.
If you try and load a .CEL file created by Animator Pro, IRE will go back to DOS with a panic message saying that the .CEL file you gave it "is not a .CEL file".
If you don't have the original Animator, use .PCX files instead of .CEL.
Alternatively, get RSE 2.00, a freeware program which is able to read and write .CEL files compatible with IRE.
Graphics sizes.
Stereo .WAV files are not supported however.
I don't know if .WAV files can be compressed, but it they can, that won't
work either.
The IRE's sound engine can support the following types of .MOD file:
| File name | Name | Channels | Comments |
| .MOD | Protracker module | 4 | Generic module format |
| .MTM | ? | 16 | More obscure format |
| .S3M | Screamtracker III | 32 | Popular module format |
| .STM | Screamtracker II | 4 | PC extension to the MOD format |
| .ULT | Ultratracker | 32 | Originated on the (late) GUS soundcard |
| .XM | Fastracker | 32 | Rival format to S3M Both FT1 and FT2 variants supported |
Before you race off, remember that there is a maximum of 32 channels available to the sound engine.
If you use all 32 for the music there will be none left for the sound effects.
The amount of channels reserved for the music and sound is set in the game's
config file, not the script file. By default it is 16+4, i.e.
20 channels in total.
Each IRE game will have a directory of its own, and it will look for the
files in various subdirectories
in the tree.
By default, IRE will look in the RES directory, so we'll refer to as the
RES directory in future.
(RES is shorthand for resources).
Note that it does not have to be RES, and you should call your directory
something else when you develop an IRE game.
(It's controlled by your .GAM file, which is described in Part 7)
If you've followed the previous section, you should have some idea of the resources that each IRE game will use.
Unless the file is requested by the system itself, it can go anywhere you like, as the script file will contain the full path of each file.
Internal Graphics and the script file itself, must go in particular places, which will be described in detail later. Where you put the other resources is up to you.
The files are generally organised in this way:
1.4.1 - RES
The RES directory must contain the following files:
| main.txt | The script file |
| arrow00.cel | The mouse pointer image |
| soundbar.cel | The volume slider backing image |
| slider1.cel | The slider that has been selected |
| slider2.cel | The slider that is not selected |
| font.dat | The typeface used in the game |
| eyesore.cel | Used by the editor for the 'Random Tile' |
| warning.cel | Shown if the Random Tile appears in the game |
| credits.dat | ANSI credits at end, like ENDOOM in Doom |
| help.txt | A conversation file that is run when F1 is pressed, see Part 5 |
1.4.2 - RES\BACKINGS
The RES\BACKINGS directory must contain the following file:
| panel.pcx | The background image of the game status area |
1.4.3 - RES\CODE
You need a place to store the VRM files used in the game, I called mine
RES\CODE.
Again, the VRMs are defined in the script file, so you can put them anywhere
you like,
RES\VRM might be another choice.
You could keep them on another drive, or even just in the RES\ directory,
although that would be untidy.
1.4.4 - RES\MUSIC
You need a place to store the music files. I keep them in RES\MUSIC.
As of kernel version 0.025, the music is defined in the script file, so
you can put them anywhere you like,
RES\MODS might be another choice.
You could keep them on another drive, or even just in the RES\ directory, although that would be untidy.
1.4.5 - RES\SOUND
You need a place to store the sound effects. I keep them in RES\SOUND.
As of kernel version 0.025, the music is defined in the script file, so
you can put them anywhere you like,
RES\WAVS might be another choice.
1.4.6 - RES\SPRITES
You need a place to store the sprites used in the game, I called mine RES\SPRITES.
Again, the sprites and other game images are defined in the script file,
so you can put them anywhere you like, maybe RES\OBJECTS.
When it tries to load a file, it will look for it in the following order:
NOTE: The map editor will ONLY load maps from the IRE directory,
and not from the RES or RAR sources. All other files, the graphics
and such can be loaded from other sources.
A Background
Objects and characters
Rooftops
First, look the main window. This is the map, as it will appear
when the game is being played.
You can pan around the map using the cursor keys, or the four arrow buttons
to the right of the window.
Also, note the two black panels on the far right-hand side of the screen.
They control the screen display, and allow you to switch off the other layers of the level if you find they get in the way while you are editing.
"SPRITES ON" means that the movable objects in the game, such as the player, other characters and similar things will be displayed. If you click once in the black area, it will read "SPRITES OFF" instead, and any sprites visible on the map will disappear while you are editing the backgrounds.
Similarly, "ROOFTOPS ON" means that the highest-level objects in the game,
normally the roofs of buildings, will be displayed. If you click in
the black area, it will change to "ROOFTOPS OFF". Rooftops are not
displayed by default, as you are mainly going to edit the insides of buildings
and that
is generally impossible with the roof in the way.
Lis no sale.
I spent the next few years in Ultima 6, hacking it, twisting it, folding
it into new shapes.
I wrote a set of tools which hack the program, and allow you create new
worlds, but there is a limit.
Ultima 6 has some pretty strange data structures which I never did figure
out completely.
In '94 I started an abortive attempt to make a U6 clone, which was codenamed U6C. I couldn't draw a player and it bombed.
After the failure of Avios to run satisfactorily on the P200 I am using, despite intense optimisation, I decided to stop working on it, and turned instead to making a 'perfect' ultima 6 type game. This is what I have so far.
The IRE is a Computer Role-Playing Game which takes most of its ideas from Ultima 6, and some from Ultima 7.
The main difference between the design of U6 and IRE, is that IRE is designed
from the ground up to allow someone to edit it. Ultima 6 was not designed
this way.
First, we shall look at all the resources that the game can use.
Map files
The map file is the world in which the player inhabits. At present the engine can only support one map per game, although this will probably change later.
Font
The font is the character set used in the game. The characters are fixed-space 8x8 letters, and are stored in the raw bit-packed format used by Arthur Barr's font editor.
Script file
The script file is central to IRE. It is a description file that
describes a game written using IRE.
It tells the program which sprites will be loaded, it binds the sprites
into animation sequences and defines the behaviour of all characters and objects
in the game.
The script file is described in detail in Chapter 3.
VRM files
Although the script coordinates everything, it is the VRM files which do
the actual work.
VRMs (or Virtual Runnable Modules) are written in C (using my library functions)
and get loaded into the game as it starts. Each game event is driven
by a corresponding VRM.
VRM programming is described in detail in Chapter 4.
Internal graphics
Certain parts of the IRE system have their own sprites, such as the mouse
pointer and the volume slider. These graphics are not controlled by
the script file (although they might be later), and the program will attempt
to load them itself. The internal graphics are 256-colour and stored
in the Animator .CEL format. You can also use PCX if you prefer.
If you need to convert between CEL and another format, try using PICTVIEW
by Jan Patera.
Sprites and tiles
Sprites and tiles are all defined in the script file, and are loaded in
as the script is parsed.
They are stored in .CEL or .PCX format, and may have either 256 colours
or 16.7 million.
Backing pictures
At present backing pictures are loaded in by the program, like the internal
graphics of the mouse pointer and the volume slider. They must be in
PCX format and either 640x400 in size, or 640x480.
They can be 8-bit or 24-bit PCX files.
Game package
The datafiles are loaded directly now by the engine so there is no need
to pack all the datafiles into one large resource file today.
Summary
|
|
|
|
| Map files | The IRE editor | |
| Font | Arthur's font editor (supplied) | |
| Script file | Any text editor | This is covered in part three |
| VRM files | SEERC is supplied to build them | This is covered in part four |
| Internal graphics | Autodesk Animator | You can use PICTVIEW by Jan Patera to convert graphics to CEL files |
| Sprites and Tiles | Any PCX editor | |
| Backing pictures | Any PCX editor | |
| Game package | - |
PCX files.
PCX files are straightforward, so any package that creates a .PCX should produce something readable by IRE.
Here are some known caveats:
The PCX files must be compressed using the runlength method. This is the standard, but if you do somehow manage to make an uncompressed PCX file, the program will likely choke on it.
The PCX files must be either 8-bit or 24-bit. 1,2,4 or 16-bit PCX files will be rejected and the program will stop with an error.
CEL files.
The .CEL files refer to Autodesk Animator .CEL files. This means Autodesk Animator, not Animator Pro. Animator Pro uses .FLI files and just calls them .CEL files.
If you try and load a .CEL file created by Animator Pro, IRE will go back to DOS with a panic message saying that the .CEL file you gave it "is not a .CEL file".
If you don't have the original Animator, use .PCX files instead of .CEL.
Alternatively, get RSE 2.00, a freeware program which is able to read and write .CEL files compatible with IRE.
Graphics sizes.
Stereo .WAV files are not supported however.
I don't know if .WAV files can be compressed, but it they can, that won't
work either.
The IRE's sound engine can support the following types of .MOD file:
| File name | Name | Channels | Comments |
| .MOD | Protracker module | 4 | Generic module format |
| .MTM | ? | 16 | More obscure format |
| .S3M | Screamtracker III | 32 | Popular module format |
| .STM | Screamtracker II | 4 | PC extension to the MOD format |
| .ULT | Ultratracker | 32 | Originated on the (late) GUS soundcard |
| .XM | Fastracker | 32 | Rival format to S3M Both FT1 and FT2 variants supported |
Before you race off, remember that there is a maximum of 32 channels available to the sound engine.
If you use all 32 for the music there will be none left for the sound effects.
The amount of channels reserved for the music and sound is set in the game's
config file, not the script file. By default it is 16+4, i.e.
20 channels in total.
Each IRE game will have a directory of its own, and it will look for the
files in various subdirectories
in the tree.
By default, IRE will look in the RES directory, so we'll refer to as the
RES directory in future.
(RES is shorthand for resources).
Note that it does not have to be RES, and you should call your directory
something else when you develop an IRE game.
(It's controlled by your .GAM file, which is described in Part 7)
If you've followed the previous section, you should have some idea of the resources that each IRE game will use.
Unless the file is requested by the system itself, it can go anywhere you like, as the script file will contain the full path of each file.
Internal Graphics and the script file itself, must go in particular places, which will be described in detail later. Where you put the other resources is up to you.
The files are generally organised in this way:
1.4.1 - RES
The RES directory must contain the following files:
| main.txt | The script file |
| arrow00.cel | The mouse pointer image |
| soundbar.cel | The volume slider backing image |
| slider1.cel | The slider that has been selected |
| slider2.cel | The slider that is not selected |
| font.dat | The typeface used in the game |
| eyesore.cel | Used by the editor for the 'Random Tile' |
| warning.cel | Shown if the Random Tile appears in the game |
| credits.dat | ANSI credits at end, like ENDOOM in Doom |
| help.txt | A conversation file that is run when F1 is pressed, see Part 5 |
1.4.2 - RES\BACKINGS
The RES\BACKINGS directory must contain the following file:
| panel.pcx | The background image of the game status area |
1.4.3 - RES\CODE
You need a place to store the VRM files used in the game, I called mine
RES\CODE.
Again, the VRMs are defined in the script file, so you can put them anywhere
you like,
RES\VRM might be another choice.
You could keep them on another drive, or even just in the RES\ directory,
although that would be untidy.
1.4.4 - RES\MUSIC
You need a place to store the music files. I keep them in RES\MUSIC.
As of kernel version 0.025, the music is defined in the script file, so
you can put them anywhere you like,
RES\MODS might be another choice.
You could keep them on another drive, or even just in the RES\ directory, although that would be untidy.
1.4.5 - RES\SOUND
You need a place to store the sound effects. I keep them in RES\SOUND.
As of kernel version 0.025, the music is defined in the script file, so
you can put them anywhere you like,
RES\WAVS might be another choice.
1.4.6 - RES\SPRITES
You need a place to store the sprites used in the game, I called mine RES\SPRITES.
Again, the sprites and other game images are defined in the script file,
so you can put them anywhere you like, maybe RES\OBJECTS.
When it tries to load a file, it will look for it in the following order:
NOTE: The map editor will ONLY load maps from the IRE directory,
and not from the RES or RAR sources. All other files, the graphics
and such can be loaded from other sources.
A Background
Objects and characters
Rooftops
First, look the main window. This is the map, as it will appear
when the game is being played.
You can pan around the map using the cursor keys, or the four arrow buttons
to the right of the window.
Also, note the two black panels on the far right-hand side of the screen.
They control the screen display, and allow you to switch off the other layers of the level if you find they get in the way while you are editing.
"SPRITES ON" means that the movable objects in the game, such as the player, other characters and similar things will be displayed. If you click once in the black area, it will read "SPRITES OFF" instead, and any sprites visible on the map will disappear while you are editing the backgrounds.
Similarly, "ROOFTOPS ON" means that the highest-level objects in the game,
normally the roofs of buildings, will be displayed. If you click in
the black area, it will change to "ROOFTOPS OFF". Rooftops are not
displayed by default, as you are mainly going to edit the insides of buildings
and that
is generally impossible with the roof in the way.
Lis no sale.
I spent the next few years in Ultima 6, hacking it, twisting it, folding
it into new shapes.
I wrote a set of tools which hack the program, and allow you create new
worlds, but there is a limit.
Ultima 6 has some pretty strange data structures which I never did figure
out completely.
In '94 I started an abortive attempt to make a U6 clone, which was codenamed U6C. I couldn't draw a player and it bombed.
After the failure of Avios to run satisfactorily on the P200 I am using, despite intense optimisation, I decided to stop working on it, and turned instead to making a 'perfect' ultima 6 type game. This is what I have so far.
The IRE is a Computer Role-Playing Game which takes most of its ideas from Ultima 6, and some from Ultima 7.
The main difference between the design of U6 and IRE, is that IRE is designed
from the ground up to allow someone to edit it. Ultima 6 was not designed
this way.
First, we shall look at all the resources that the game can use.
Map files
The map file is the world in which the player inhabits. At present the engine can only support one map per game, although this will probably change later.
Font
The font is the character set used in the game. The characters are fixed-space 8x8 letters, and are stored in the raw bit-packed format used by Arthur Barr's font editor.
Script file
The script file is central to IRE. It is a description file that
describes a game written using IRE.
It tells the program which sprites will be loaded, it binds the sprites
into animation sequences and defines the behaviour of all characters and objects
in the game.
The script file is described in detail in Chapter 3.
VRM files
Although the script coordinates everything, it is the VRM files which do
the actual work.
VRMs (or Virtual Runnable Modules) are written in C (using my library functions)
and get loaded into the game as it starts. Each game event is driven
by a corresponding VRM.
VRM programming is described in detail in Chapter 4.
Internal graphics
Certain parts of the IRE system have their own sprites, such as the mouse
pointer and the volume slider. These graphics are not controlled by
the script file (although they might be later), and the program will attempt
to load them itself. The internal graphics are 256-colour and stored
in the Animator .CEL format. You can also use PCX if you prefer.
If you need to convert between CEL and another format, try using PICTVIEW
by Jan Patera.
Sprites and tiles
Sprites and tiles are all defined in the script file, and are loaded in
as the script is parsed.
They are stored in .CEL or .PCX format, and may have either 256 colours
or 16.7 million.
Backing pictures
At present backing pictures are loaded in by the program, like the internal
graphics of the mouse pointer and the volume slider. They must be in
PCX format and either 640x400 in size, or 640x480.
They can be 8-bit or 24-bit PCX files.
Game package
The datafiles are loaded directly now by the engine so there is no need
to pack all the datafiles into one large resource file today.
Summary
|
|
|
|
| Map files | The IRE editor | |
| Font | Arthur's font editor (supplied) | |
| Script file | Any text editor | This is covered in part three |
| VRM files | SEERC is supplied to build them | This is covered in part four |
| Internal graphics | Autodesk Animator | You can use PICTVIEW by Jan Patera to convert graphics to CEL files |
| Sprites and Tiles | Any PCX editor | |
| Backing pictures | Any PCX editor | |
| Game package | - |
PCX files.
PCX files are straightforward, so any package that creates a .PCX should produce something readable by IRE.
Here are some known caveats:
The PCX files must be compressed using the runlength method. This is the standard, but if you do somehow manage to make an uncompressed PCX file, the program will likely choke on it.
The PCX files must be either 8-bit or 24-bit. 1,2,4 or 16-bit PCX files will be rejected and the program will stop with an error.
CEL files.
The .CEL files refer to Autodesk Animator .CEL files. This means Autodesk Animator, not Animator Pro. Animator Pro uses .FLI files and just calls them .CEL files.
If you try and load a .CEL file created by Animator Pro, IRE will go back to DOS with a panic message saying that the .CEL file you gave it "is not a .CEL file".
If you don't have the original Animator, use .PCX files instead of .CEL.
Alternatively, get RSE 2.00, a freeware program which is able to read and write .CEL files compatible with IRE.
Graphics sizes.
Stereo .WAV files are not supported however.
I don't know if .WAV files can be compressed, but it they can, that won't
work either.
The IRE's sound engine can support the following types of .MOD file:
| File name | Name | Channels | Comments |
| .MOD | Protracker module | 4 | Generic module format |
| .MTM | ? | 16 | More obscure format |
| .S3M | Screamtracker III | 32 | Popular module format |
| .STM | Screamtracker II | 4 | PC extension to the MOD format |
| .ULT | Ultratracker | 32 | Originated on the (late) GUS soundcard |
| .XM | Fastracker | 32 | Rival format to S3M Both FT1 and FT2 variants supported |
Before you race off, remember that there is a maximum of 32 channels available to the sound engine.
If you use all 32 for the music there will be none left for the sound effects.
The amount of channels reserved for the music and sound is set in the game's
config file, not the script file. By default it is 16+4, i.e.
20 channels in total.
Each IRE game will have a directory of its own, and it will look for the
files in various subdirectories
in the tree.
By default, IRE will look in the RES directory, so we'll refer to as the
RES directory in future.
(RES is shorthand for resources).
Note that it does not have to be RES, and you should call your directory
something else when you develop an IRE game.
(It's controlled by your .GAM file, which is described in Part 7)
If you've followed the previous section, you should have some idea of the resources that each IRE game will use.
Unless the file is requested by the system itself, it can go anywhere you like, as the script file will contain the full path of each file.
Internal Graphics and the script file itself, must go in particular places, which will be described in detail later. Where you put the other resources is up to you.
The files are generally organised in this way:
1.4.1 - RES
The RES directory must contain the following files:
| main.txt | The script file |
| arrow00.cel | The mouse pointer image |
| soundbar.cel | The volume slider backing image |
| slider1.cel | The slider that has been selected |
| slider2.cel | The slider that is not selected |
| font.dat | The typeface used in the game |
| eyesore.cel | Used by the editor for the 'Random Tile' |
| warning.cel | Shown if the Random Tile appears in the game |
| credits.dat | ANSI credits at end, like ENDOOM in Doom |
| help.txt | A conversation file that is run when F1 is pressed, see Part 5 |
1.4.2 - RES\BACKINGS
The RES\BACKINGS directory must contain the following file:
| panel.pcx | The background image of the game status area |
1.4.3 - RES\CODE
You need a place to store the VRM files used in the game, I called mine
RES\CODE.
Again, the VRMs are defined in the script file, so you can put them anywhere
you like,
RES\VRM might be another choice.
You could keep them on another drive, or even just in the RES\ directory,
although that would be untidy.
1.4.4 - RES\MUSIC
You need a place to store the music files. I keep them in RES\MUSIC.
As of kernel version 0.025, the music is defined in the script file, so
you can put them anywhere you like,
RES\MODS might be another choice.
You could keep them on another drive, or even just in the RES\ directory, although that would be untidy.
1.4.5 - RES\SOUND
You need a place to store the sound effects. I keep them in RES\SOUND.
As of kernel version 0.025, the music is defined in the script file, so
you can put them anywhere you like,
RES\WAVS might be another choice.
1.4.6 - RES\SPRITES
You need a place to store the sprites used in the game, I called mine RES\SPRITES.
Again, the sprites and other game images are defined in the script file,
so you can put them anywhere you like, maybe RES\OBJECTS.
When it tries to load a file, it will look for it in the following order:
NOTE: The map editor will ONLY load maps from the IRE directory,
and not from the RES or RAR sources. All other files, the graphics
and such can be loaded from other sources.
A Background
Objects and characters
Rooftops
First, look the main window. This is the map, as it will appear
when the game is being played.
You can pan around the map using the cursor keys, or the four arrow buttons
to the right of the window.
Also, note the two black panels on the far right-hand side of the screen.
They control the screen display, and allow you to switch off the other layers of the level if you find they get in the way while you are editing.
"SPRITES ON" means that the movable objects in the game, such as the player, other characters and similar things will be displayed. If you click once in the black area, it will read "SPRITES OFF" instead, and any sprites visible on the map will disappear while you are editing the backgrounds.
Similarly, "ROOFTOPS ON" means that the highest-level objects in the game,
normally the roofs of buildings, will be displayed. If you click in
the black area, it will change to "ROOFTOPS OFF". Rooftops are not
displayed by default, as you are mainly going to edit the insides of buildings
and that
is generally impossible with the roof in the way.
Lis no sale.
I spent the next few years in Ultima 6, hacking it, twisting it, folding
it into new shapes.
I wrote a set of tools which hack the program, and allow you create new
worlds, but there is a limit.
Ultima 6 has some pretty strange data structures which I never did figure
out completely.
In '94 I started an abortive attempt to make a U6 clone, which was codenamed U6C. I couldn't draw a player and it bombed.
After the failure of Avios to run satisfactorily on the P200 I am using, despite intense optimisation, I decided to stop working on it, and turned instead to making a 'perfect' ultima 6 type game. This is what I have so far.
The IRE is a Computer Role-Playing Game which takes most of its ideas from Ultima 6, and some from Ultima 7.
The main difference between the design of U6 and IRE, is that IRE is designed
from the ground up to allow someone to edit it. Ultima 6 was not designed
this way.
First, we shall look at all the resources that the game can use.
Map files
The map file is the world in which the player inhabits. At present the engine can only support one map per game, although this will probably change later.
Font
The font is the character set used in the game. The characters are fixed-space 8x8 letters, and are stored in the raw bit-packed format used by Arthur Barr's font editor.
Script file
The script file is central to IRE. It is a description file that
describes a game written using IRE.
It tells the program which sprites will be loaded, it binds the sprites
into animation sequences and defines the behaviour of all characters and objects
in the game.
The script file is described in detail in Chapter 3.
VRM files
Although the script coordinates everything, it is the VRM files which do
the actual work.
VRMs (or Virtual Runnable Modules) are written in C (using my library functions)
and get loaded into the game as it starts. Each game event is driven
by a corresponding VRM.
VRM programming is described in detail in Chapter 4.
Internal graphics
Certain parts of the IRE system have their own sprites, such as the mouse
pointer and the volume slider. These graphics are not controlled by
the script file (although they might be later), and the program will attempt
to load them itself. The internal graphics are 256-colour and stored
in the Animator .CEL format. You can also use PCX if you prefer.
If you need to convert between CEL and another format, try using PICTVIEW
by Jan Patera.
Sprites and tiles
Sprites and tiles are all defined in the script file, and are loaded in
as the script is parsed.
They are stored in .CEL or .PCX format, and may have either 256 colours
or 16.7 million.
Backing pictures
At present backing pictures are loaded in by the program, like the internal
graphics of the mouse pointer and the volume slider. They must be in
PCX format and either 640x400 in size, or 640x480.
They can be 8-bit or 24-bit PCX files.
Game package
The datafiles are loaded directly now by the engine so there is no need
to pack all the datafiles into one large resource file today.
Summary
|
|
|
|
| Map files | The IRE editor | |
| Font | Arthur's font editor (supplied) | |
| Script file | Any text editor | This is covered in part three |
| VRM files | SEERC is supplied to build them | This is covered in part four |
| Internal graphics | Autodesk Animator | You can use PICTVIEW by Jan Patera to convert graphics to CEL files |
| Sprites and Tiles | Any PCX editor | |
| Backing pictures | Any PCX editor | |
| Game package | - |
PCX files.
PCX files are straightforward, so any package that creates a .PCX should produce something readable by IRE.
Here are some known caveats:
The PCX files must be compressed using the runlength method. This is the standard, but if you do somehow manage to make an uncompressed PCX file, the program will likely choke on it.
The PCX files must be either 8-bit or 24-bit. 1,2,4 or 16-bit PCX files will be rejected and the program will stop with an error.
CEL files.
The .CEL files refer to Autodesk Animator .CEL files. This means Autodesk Animator, not Animator Pro. Animator Pro uses .FLI files and just calls them .CEL files.
If you try and load a .CEL file created by Animator Pro, IRE will go back to DOS with a panic message saying that the .CEL file you gave it "is not a .CEL file".
If you don't have the original Animator, use .PCX files instead of .CEL.
Alternatively, get RSE 2.00, a freeware program which is able to read and write .CEL files compatible with IRE.
Graphics sizes.
Stereo .WAV files are not supported however.
I don't know if .WAV files can be compressed, but it they can, that won't
work either.
The IRE's sound engine can support the following types of .MOD file:
| File name | Name | Channels | Comments |
| .MOD | Protracker module | 4 | Generic module format |
| .MTM | ? | 16 | More obscure format |
| .S3M | Screamtracker III | 32 | Popular module format |
| .STM | Screamtracker II | 4 | PC extension to the MOD format |
| .ULT | Ultratracker | 32 | Originated on the (late) GUS soundcard |
| .XM | Fastracker | 32 | Rival format to S3M Both FT1 and FT2 variants supported |
Before you race off, remember that there is a maximum of 32 channels available to the sound engine.
If you use all 32 for the music there will be none left for the sound effects.
The amount of channels reserved for the music and sound is set in the game's
config file, not the script file. By default it is 16+4, i.e.
20 channels in total.
Each IRE game will have a directory of its own, and it will look for the
files in various subdirectories
in the tree.
By default, IRE will look in the RES directory, so we'll refer to as the
RES directory in future.
(RES is shorthand for resources).
Note that it does not have to be RES, and you should call your directory
something else when you develop an IRE game.
(It's controlled by your .GAM file, which is described in Part 7)
If you've followed the previous section, you should have some idea of the resources that each IRE game will use.
Unless the file is requested by the system itself, it can go anywhere you like, as the script file will contain the full path of each file.
Internal Graphics and the script file itself, must go in particular places, which will be described in detail later. Where you put the other resources is up to you.
The files are generally organised in this way:
1.4.1 - RES
The RES directory must contain the following files:
| main.txt | The script file |
| arrow00.cel | The mouse pointer image |
| soundbar.cel | The volume slider backing image |
| slider1.cel | The slider that has been selected |
| slider2.cel | The slider that is not selected |
| font.dat | The typeface used in the game |
| eyesore.cel | Used by the editor for the 'Random Tile' |
| warning.cel | Shown if the Random Tile appears in the game |
| credits.dat | ANSI credits at end, like ENDOOM in Doom |
| help.txt | A conversation file that is run when F1 is pressed, see Part 5 |
1.4.2 - RES\BACKINGS
The RES\BACKINGS directory must contain the following file:
| panel.pcx | The background image of the game status area |
1.4.3 - RES\CODE
You need a place to store the VRM files used in the game, I called mine
RES\CODE.
Again, the VRMs are defined in the script file, so you can put them anywhere
you like,
RES\VRM might be another choice.
You could keep them on another drive, or even just in the RES\ directory,
although that would be untidy.
1.4.4 - RES\MUSIC
You need a place to store the music files. I keep them in RES\MUSIC.
As of kernel version 0.025, the music is defined in the script file, so
you can put them anywhere you like,
RES\MODS might be another choice.
You could keep them on another drive, or even just in the RES\ directory, although that would be untidy.
1.4.5 - RES\SOUND
You need a place to store the sound effects. I keep them in RES\SOUND.
As of kernel version 0.025, the music is defined in the script file, so
you can put them anywhere you like,
RES\WAVS might be another choice.
1.4.6 - RES\SPRITES
You need a place to store the sprites used in the game, I called mine RES\SPRITES.
Again, the sprites and other game images are defined in the script file,
so you can put them anywhere you like, maybe RES\OBJECTS.
When it tries to load a file, it will look for it in the following order:
NOTE: The map editor will ONLY load maps from the IRE directory,
and not from the RES or RAR sources. All other files, the graphics
and such can be loaded from other sources.
A Background
Objects and characters
Rooftops
First, look the main window. This is the map, as it will appear
when the game is being played.
You can pan around the map using the cursor keys, or the four arrow buttons
to the right of the window.
Also, note the two black panels on the far right-hand side of the screen.
They control the screen display, and allow you to switch off the other layers of the level if you find they get in the way while you are editing.
"SPRITES ON" means that the movable objects in the game, such as the player, other characters and similar things will be displayed. If you click once in the black area, it will read "SPRITES OFF" instead, and any sprites visible on the map will disappear while you are editing the backgrounds.
Similarly, "ROOFTOPS ON" means that the highest-level objects in the game,
normally the roofs of buildings, will be displayed. If you click in
the black area, it will change to "ROOFTOPS OFF". Rooftops are not
displayed by default, as you are mainly going to edit the insides of buildings
and that
is generally impossible with the roof in the way.
Lis no sale.
I spent the next few years in Ultima 6, hacking it, twisting it, folding
it into new shapes.
I wrote a set of tools which hack the program, and allow you create new
worlds, but there is a limit.
Ultima 6 has some pretty strange data structures which I never did figure
out completely.
In '94 I started an abortive attempt to make a U6 clone, which was codenamed U6C. I couldn't draw a player and it bombed.
After the failure of Avios to run satisfactorily on the P200 I am using, despite intense optimisation, I decided to stop working on it, and turned instead to making a 'perfect' ultima 6 type game. This is what I have so far.
The IRE is a Computer Role-Playing Game which takes most of its ideas from Ultima 6, and some from Ultima 7.
The main difference between the design of U6 and IRE, is that IRE is designed
from the ground up to allow someone to edit it. Ultima 6 was not designed
this way.
First, we shall look at all the resources that the game can use.
Map files
The map file is the world in which the player inhabits. At present the engine can only support one map per game, although this will probably change later.
Font
The font is the character set used in the game. The characters are fixed-space 8x8 letters, and are stored in the raw bit-packed format used by Arthur Barr's font editor.
Script file
The script file is central to IRE. It is a description file that
describes a game written using IRE.
It tells the program which sprites will be loaded, it binds the sprites
into animation sequences and defines the behaviour of all characters and objects
in the game.
The script file is described in detail in Chapter 3.
VRM files
Although the script coordinates everything, it is the VRM files which do
the actual work.
VRMs (or Virtual Runnable Modules) are written in C (using my library functions)
and get loaded into the game as it starts. Each game event is driven
by a corresponding VRM.
VRM programming is described in detail in Chapter 4.
Internal graphics
Certain parts of the IRE system have their own sprites, such as the mouse
pointer and the volume slider. These graphics are not controlled by
the script file (although they might be later), and the program will attempt
to load them itself. The internal graphics are 256-colour and stored
in the Animator .CEL format. You can also use PCX if you prefer.
If you need to convert between CEL and another format, try using PICTVIEW
by Jan Patera.
Sprites and tiles
Sprites and tiles are all defined in the script file, and are loaded in
as the script is parsed.
They are stored in .CEL or .PCX format, and may have either 256 colours
or 16.7 million.
Backing pictures
At present backing pictures are loaded in by the program, like the internal
graphics of the mouse pointer and the volume slider. They must be in
PCX format and either 640x400 in size, or 640x480.
They can be 8-bit or 24-bit PCX files.
Game package
The datafiles are loaded directly now by the engine so there is no need
to pack all the datafiles into one large resource file today.
Summary
|
|
|
|
| Map files | The IRE editor | |
| Font | Arthur's font editor (supplied) | |
| Script file | Any text editor | This is covered in part three |
| VRM files | SEERC is supplied to build them | This is covered in part four |
| Internal graphics | Autodesk Animator | You can use PICTVIEW by Jan Patera to convert graphics to CEL files |
| Sprites and Tiles | Any PCX editor | |
| Backing pictures | Any PCX editor | |
| Game package | - |
PCX files.
PCX files are straightforward, so any package that creates a .PCX should produce something readable by IRE.
Here are some known caveats:
The PCX files must be compressed using the runlength method. This is the standard, but if you do somehow manage to make an uncompressed PCX file, the program will likely choke on it.
The PCX files must be either 8-bit or 24-bit. 1,2,4 or 16-bit PCX files will be rejected and the program will stop with an error.
CEL files.
The .CEL files refer to Autodesk Animator .CEL files. This means Autodesk Animator, not Animator Pro. Animator Pro uses .FLI files and just calls them .CEL files.
If you try and load a .CEL file created by Animator Pro, IRE will go back to DOS with a panic message saying that the .CEL file you gave it "is not a .CEL file".
If you don't have the original Animator, use .PCX files instead of .CEL.
Alternatively, get RSE 2.00, a freeware program which is able to read and write .CEL files compatible with IRE.
Graphics sizes.
Stereo .WAV files are not supported however.
I don't know if .WAV files can be compressed, but it they can, that won't
work either.
The IRE's sound engine can support the following types of .MOD file:
| File name | Name | Channels | Comments |
| .MOD | Protracker module | 4 | Generic module format |
| .MTM | ? | 16 | More obscure format |
| .S3M | Screamtracker III | 32 | Popular module format |
| .STM | Screamtracker II | 4 | PC extension to the MOD format |
| .ULT | Ultratracker | 32 | Originated on the (late) GUS soundcard |
| .XM | Fastracker | 32 | Rival format to S3M Both FT1 and FT2 variants supported |
Before you race off, remember that there is a maximum of 32 channels available to the sound engine.
If you use all 32 for the music there will be none left for the sound effects.
The amount of channels reserved for the music and sound is set in the game's
config file, not the script file. By default it is 16+4, i.e.
20 channels in total.
Each IRE game will have a directory of its own, and it will look for the
files in various subdirectories
in the tree.
By default, IRE will look in the RES directory, so we'll refer to as the
RES directory in future.
(RES is shorthand for resources).
Note that it does not have to be RES, and you should call your directory
something else when you develop an IRE game.
(It's controlled by your .GAM file, which is described in Part 7)
If you've followed the previous section, you should have some idea of the resources that each IRE game will use.
Unless the file is requested by the system itself, it can go anywhere you like, as the script file will contain the full path of each file.
Internal Graphics and the script file itself, must go in particular places, which will be described in detail later. Where you put the other resources is up to you.
The files are generally organised in this way:
1.4.1 - RES
The RES directory must contain the following files:
| main.txt | The script file |
| arrow00.cel | The mouse pointer image |
| soundbar.cel | The volume slider backing image |
| slider1.cel | The slider that has been selected |
| slider2.cel | The slider that is not selected |
| font.dat | The typeface used in the game |
| eyesore.cel | Used by the editor for the 'Random Tile' |
| warning.cel | Shown if the Random Tile appears in the game |
| credits.dat | ANSI credits at end, like ENDOOM in Doom |
| help.txt | A conversation file that is run when F1 is pressed, see Part 5 |
1.4.2 - RES\BACKINGS
The RES\BACKINGS directory must contain the following file:
| panel.pcx | The background image of the game status area |
1.4.3 - RES\CODE
You need a place to store the VRM files used in the game, I called mine
RES\CODE.
Again, the VRMs are defined in the script file, so you can put them anywhere
you like,
RES\VRM might be another choice.
You could keep them on another drive, or even just in the RES\ directory,
although that would be untidy.
1.4.4 - RES\MUSIC
You need a place to store the music files. I keep them in RES\MUSIC.
As of kernel version 0.025, the music is defined in the script file, so
you can put t