From bdd3190f4d30392848a445ad0c95cf3a5a2a8ce8 Mon Sep 17 00:00:00 2001 From: Glenn Hutchings Date: Fri, 1 Apr 2016 22:25:59 +0100 Subject: [PATCH] Add chapter 2. --- chapters/02.rst | 750 ++++++++++++++++++++++++++++++++++++++ images/filelist1.png | Bin 0 -> 1610 bytes images/filelist2.png | Bin 0 -> 1927 bytes images/filelist3.png | Bin 0 -> 1974 bytes images/inform_mac_env.png | Bin 0 -> 18323 bytes images/inform_pc_env.png | Bin 0 -> 4247 bytes images/mac_exec_error.png | Bin 0 -> 6402 bytes images/mac_filelist1.png | Bin 0 -> 8455 bytes images/mac_filelist2.png | Bin 0 -> 9284 bytes images/mac_filelist3.png | Bin 0 -> 9888 bytes 10 files changed, 750 insertions(+) create mode 100644 chapters/02.rst create mode 100644 images/filelist1.png create mode 100644 images/filelist2.png create mode 100644 images/filelist3.png create mode 100644 images/inform_mac_env.png create mode 100644 images/inform_pc_env.png create mode 100644 images/mac_exec_error.png create mode 100644 images/mac_filelist1.png create mode 100644 images/mac_filelist2.png create mode 100644 images/mac_filelist3.png diff --git a/chapters/02.rst b/chapters/02.rst new file mode 100644 index 0000000..a7c0ef8 --- /dev/null +++ b/chapters/02.rst @@ -0,0 +1,750 @@ +======================= + 2: Tools of the trade +======================= + +.. epigraph:: + + | *C was a captain, all covered with lace;* + | *D was a drunkard, and had a red face.* + +Conventional -- static -- fiction can be written using nothing more than +pencil and paper, or typewriter, or word-processor; however, the +requirements for producing IF are a little more extensive, and the creative +process slightly more complex. + +* For static fiction, you first write the text, and then you check it by + reading what you've written. + +* For IF, you still have to write all of the text, but you also have to + establish what text gets displayed when. Once you have written the + necessary Inform instructions, you use a **compiler** program to convert + them into a playable format. The resulting information is played by an + **interpreter** program, which permits you to interact with your + developing world. + +With static fiction What You Write Is What You Read, but with IF the format +in which you initially write the game doesn't bear much resemblance to the +text which the interpreter ultimately displays. For example, the "William +Tell" game, in the form that we wrote it, starts like this: + +.. code-block:: inform + + !============================================================================ + Constant Story "William Tell"; + Constant Headline + "^A simple Inform example + ^by Roger Firth and Sonja Kesserich.^"; + + Include "Parser"; + Include "VerbLib"; + + !============================================================================ + ! Object classes + + Class Room + has light; + ... + +You will never need to look at it in the form produced by the compiler:: + + 050000012C6C2C2D1EF6010A0C4416900010303230313031004253FEA90C0000 + 0000000000000000000000000000168F000000000000010200000000362E3231 + ... + +but, as you'll notice from the full transcript in "William Tell" story on +page 219, the player will see the following:: + + The place: Altdorf, in the Swiss canton of Uri. The year is 1307, at + which time Switzerland is under rule by the Emperor Albert of + Habsburg. His local governor -- the vogt -- is the bullying Hermann + Gessler, who has placed his hat atop a wooden pole in the centre of + the town square; everybody who passes through the square must bow to + this hated symbol of imperial might... + +Clearly, there's more to writing IF than just laying down the words in the +right order. Fortunately, we can make one immediate simplification: the +translated form produced by the Inform compiler -- those cryptic numbers +and letters held in what's known as the **story file** -- is designed to be +read by the interpreter program. The story file is an example of a +"binary" file, containing data intended for use only by a computer program. +Forget all that unreadable gibberish. + +So that leaves just the first form -- the one starting "``Constant Story``" +-- which represents the tale written as a piece of IF. That's the **source +file** (so called because it contains the game in its original, source, +form) which you create on your computer. The source file is a "text" (or +"ASCII") file containing words and phrases which can be read -- admittedly +after a little tuition, which is what this guide is all about -- by humans. + +How do you create that source file? Using a third software program: an +**editor**. However, unlike the compiler and interpreter, this program +isn't dedicated to the Inform system -- or even to IF. An editor is an +entirely general tool for creating and modifying text files; you've +probably already got a basic one on your computer (an IBM PC running +Windows comes with NotePad, while an Apple Macintosh has SimpleText or +TextEdit), or you can download a better one from the Internet. An editor +is like a word-processing program such as MS Word, only much less complex; +no fancy formatting features, no bold or italics or font control, no +embedded graphics; it simply enables you to type lines of text, which is +exactly what's needed to create an IF game. + +If you look at the game source on the previous page, or in the "William +Tell" story on page 219, you'll notice ``Include "Parser";`` and ``Include +"VerbLib";`` a few lines down from the top of the file. These are +instructions to the Inform compiler to "include" -- that is, to merge in +the contents -- of files called ``Parser.h`` and ``VerbLib.h``. These are +not files which you have to create; they're standard **library files**, +part of the Inform system. All that you have to do is remember to Include +them in every game that you write. Until you've a fair understanding of +how Inform works, you've no need to worry about what they contain (though +you can look if you want to: they're readable text files, just like the +ones this guide will teach you to write). + +So, we've now introduced all of the bits and pieces which you need in order to +write an Inform adventure game: + +* a text **editor** program which can create and modify the **source file** + containing the descriptions and definitions of your game. Although it's + not recommended, you can even use a word-processing program to do this, + but you have to remember to save your game in Text File format; + +* some Inform **library files** which you Include in your own game source + file in order to provide the model world -- a basic game environment and + lots of useful standard definitions; + +* the Inform **compiler** program, which reads your source file (and the + library files) and translates your descriptions and definitions into + another format -- the **story file** -- intended only for... + +* an Inform **interpreter** program, which is what players of your game + use. A player doesn't require the source file, library files or compiler + program, just the interpreter and the game in compiled format (which, + because it's a binary file not meaningful to human eyes, neatly + discourages players from cheating). + +All of those, apart from the editor, can be downloaded for free from the IF +Archive. One approach is to fetch them individually, following the +guidance on Graham's page: visit http://www.inform-fiction.org/ and look +for the "Software" section. However, if you're using a PC or a Mac, you'll +find it easier to download a complete package containing everything that +you need to get started. + +Inform on an IBM PC (running Microsoft Windows) +=============================================== + +Although the Windows operating system is upgraded on a fairly regular +basis, its basic capabilities and ways of working have remained +more-or-less consistent for many years. The information here applies to +PCs running Windows 95 onwards. + +.. rubric:: Installing and testing Inform + +Follow these steps: + +1. Download http://www.firthworks.com/roger/downloads/inform_pc_env.zip to + a temporary location on your PC. + +2. Use a tool like WinZip to unzip the downloaded file, giving you a new + ``Inform`` folder. Move this folder (and its contents) to a suitable + location on your PC -- a good place would be ``C:\My Documents\Inform``, + but you could also use ``C:\Documents and Settings\yourname\My + Documents\Inform``, ``C:\Inform`` or ``C:\Program Files\Inform``. You + should now have this set of folders: + + .. image:: /images/inform_pc_env.* + :align: center + + In order to make the download small and fast, these folders include just + enough to get you started as an Inform designer -- the compiler and + interpreter programs, the library files, the ``Ruins.inf`` example file + from the *Inform Designer's Manual*, and a template for your own first + game. A few other folders are included as placeholders where you could + later download additional components, if you wanted them. As soon as + possible, you should download the *Inform Designer's Manual* into the + ``Inform\Doc`` folder -- it's an essential document to have, and has + been omitted from this download only because of its 3MB size. + +3. To verify that the downloaded files work properly, use Windows Explorer + to display the contents of the ``Inform\Games\MyGame1`` folder: you will + see the two files ``MyGame1.bat`` and ``MyGame1.inf``: + + .. image:: /images/filelist1.* + :align: center + + ``MyGame1.inf`` is a tiny skeleton game in Inform source format. By + convention, all Inform source files have an extension of .inf; Windows + has an inbuilt definition for ``.inf`` files, and so shows its Type as + "Setup Information", but this doesn't seem to matter. If you + double-click the file, it should open in NotePad so that you can see how + it's written, though it probably won't mean much -- yet. + +4. ``MyGame1.bat`` is an MS-DOS batch file (an old kind of text-only + computer program, from the days before point-and-click interfaces) which + runs the Inform compiler. Double-click it; a DOS window opens as the + game compiles, and you'll see this:: + + C:\My Documents\Inform\Games\MyGame1>..\..\Lib\Base\Inform MyGame1 + +include_path=.\,..\..\Lib\Base,..\..\Lib\Contrib | more + + Inform 6.30 for Win32 (27th Feb 2004) + + C:\My Documents\Inform\Games\MyGame1>pause "at end of compilation" + Press any key to continue . . . + + Press the space bar, then close the DOS window. + + .. note:: + + On Windows NT, 2000 and XP, the DOS window closes of its own accord + when you press the space bar. + +5. A story file ``MyGame1.z5`` has appeared in the folder; this is the + compiled game, which you can play using an interpreter: + + .. image:: /images/filelist2.* + :align: center + + The extension of ``.z5`` signifies that the story file contains a + Z-machine game in Version 5 (today's standard) format. + +6. Use Windows Explorer to display the contents of the ``Inform\Bin\Frotz`` + folder, and double-click ``Frotz.exe``; the interpreter presents an + ``Open a Z-code Game`` dialog box. + +7. Browse to display the ``Inform\Games\MyGame1`` folder, and select + ``MyGame1.z5``. Click ``Open``. The game starts running in the Windows + Frotz 2002 window. + +8. When you tire of "playing" the game -- which won't take long -- you can + type the QUIT command, you can select ``File > Exit``, or you can simply + close the Frotz window. + +9. Using the same techniques, you can compile and play ``Ruins.inf``, which + is held in the ``Inform\Games\Download`` folder. RUINS is the game used + as an example throughout the *Inform Designer's Manual*. + +.. rubric:: Setting file associations + +The business of first starting the interpreter, and then locating the story +file that you want to play, is clumsy and inconvenient. Fortunately, when +you first run the Frotz interpreter, it automatically creates an +association with story files whose extension is ``.z5``. From now on, +you'll be able to play a game simply by double-clicking its story file. If +some any reason this doesn't work, you can set up the association yourself: + +1. Double-click ``MyGame1.z5``; Windows asks you to select the program + which is to open it: + + * type ``Z-code V5 Adventure`` as the "``Description for...``" + * click to select "``Always use this program...``" + * click ``Other...`` + +2. Browse to display the ``Inform\Bin\Frotz`` folder, and select + ``Frotz.exe``. Click ``Open``. + +.. rubric:: Changing the Windows icon + +If the Windows icon that's displayed alongside ``MyGame1.z5`` doesn't look +right, you can change it. + +1. In Windows Explorer, either select ``View > Options...`` and click + ``File Types``, or select ``Tools > Folder Options...`` and click ``File + Types``: + + * select the game file type in the list, which is in order either of + application (Frotz) or of extension (Z5) + * click ``Edit...`` + +2. In the ``Edit File Type`` dialog, click ``Change Icon``. + +3. In the ``Change Icon`` dialog, ensure that the file name is + ``Inform\Bin\Frotz\Frotz.exe``, and select one of the displayed icons. + Click ``OK`` to close all the dialogs. The files in the folder should + now look like this: + + .. image:: /images/filelist3.* + :align: center + +.. rubric:: Compiling using a batch file + +You can view -- and of course change -- the contents of ``MyGame1.bat``, +the batch file which you double-click to run the compiler, using any text +editor. You'll see two lines, something like this (the first chunk is all +on one long line, with a space between the ``MyGame1`` and the +``+include_path``):: + + ..\..\Lib\Base\Inform MyGame1 + +include_path=.\,..\..\Lib\Base,..\..\Lib\Contrib | more + pause "at end of compilation" + +These long strings of text are command lines -- a powerful interface method +predating the icons and menus that most computer users know. You won't +need to master the command line interface in order to start using Inform, +but this section will tell you what these particular command lines are +doing. There are four parts to the first line: + +1. ``Inform`` refers to the compiler program, and ``..\..\Lib\Base`` is the + name of the folder which contains it (addressed relative to *this* + folder, the one which holds the source file). Double-dots stand for "go + to the parent folder". + +2. ``MyGame1`` is the name of the Inform source file; you don't need to + mention its extension of ``.inf`` if you don't want to. + +3. ``+include_path=.\,..\..\Lib\Base,..\..\Lib\Contrib`` tells the compiler + where to look for files like ``Parser`` and ``VerbLib`` which you've + Included. Three locations are suggested: this folder, which holds the + source file (``.\``); the folder holding the standard library files + (``..\..\Lib\Base``); the folder holding useful bits and pieces + contributed by the Inform community (``..\..\Lib\Contrib``). The three + locations are searched in that order. + + .. note:: + + On the command line, you sometimes also see a compiler **switch** + such as ``-S``, used for controlling detailed aspects of how the + compiler operates. Rather than do that here, we find it more + convenient to place any necessary switches at the very top of the + source file, as we'll explain in the next chapter. + +4. ``| more`` causes the compiler to pause if it finds more mistakes than + it can tell you about on a single screen, rather than have them scroll + off the top of the MS-DOS window. Press the space bar to continue the + compilation. + +The second line -- ``pause "at end of compilation"`` -- just prevents the +window from closing before you can read its contents, as it otherwise would +on Windows NT, 2000 and XP. + +You'll need to have a new batch file like this to match each new source +file which you create. The only item which will differ in the new file is +the name of the Inform source file -- ``MyGame1`` in this example. You +must change this to match the name of the new source file; everything else +can stay the same in each ``.bat`` file that you create. + +.. rubric:: Getting a better editor + +Although NotePad is adequate when you're getting started, you'll find life +much easier if you obtain a more powerful editor program. We recommend +TextPad, available as shareware from http://www.textpad.com/; in addition, +there are some detailed instructions at +http://www.onyxring.com/informguide.aspx?article=14 on how to improve the +way that TextPad works with Inform. The biggest single improvement, the +one that will make game development dramatically simpler, is being able to +compile your source file *from within* the editor. No need to save the +file, switch to another window and double-click the batch file (and indeed, +no further need for the batch file itself): just press a key while editing +the file -- and it compiles there and then. You can also run the +interpreter with similar ease. The convenience of doing this far outweighs +the small amount of time needed to obtain and configure TextPad. + +Inform on an Apple Macintosh (running OS X) +=========================================== + +Whereas our instructions for using Inform on a PC apply to just about all +versions of Windows, on the Macintosh we need to be more precise. Our +guidance here is specifically for Mac OS X, rather than for its predecessor +OS 9, and it may be helpful if we first mention a few relevant differences. + +Mac OS X is a robust system constructed around -- or on top of -- BSD +[#bsd]_ UNIX. There are several kinds of applications that will run on +your Mac OS X: + +* Aqua: specifically designed for the Graphical User Interface of Mac OS X, + and taking advantage of its underlying technologies. Broadly, there + are two types of Aqua application: + + * Cocoa: built with programming tools designed for Mac OS X. + + * Carbon: built with the programming tools designed for Mac OS 9 and + earlier versions, but "translated" to take advantage of OS X. + +* Classic: designed to work on Mac OS 9 and earlier versions. They need to + run in the Classic environment of OS X; roughly speaking, Classic is an + emulation of the older Mac systems. + +* X11: based on a windowing system designed for the UNIX/Linux world. They + need an X-Windows server to run, and their appearance and functionality + may seem a lot different to what the Aqua user expects. + +* UNIX: most UNIX programs (including Linux) will run on your Mac OS X, but + they usually have to be accessed (or configured) from the UNIX core of + your Mac, through the Terminal utility. + +These differences may be significant, since some of the tools designed to +develop and run IF on a Mac system (for example, ones you'll find in the +Archive) have been built by programmers working in different environments +with varying technologies. We have tried to select tools that will make +your life easy as a beginner, but in time you may want to investigate +alternative approaches. + +.. rubric:: Installing and testing Inform + +Follow these steps: + +1. Download http://www.firthworks.com/roger/downloads/inform_macosx_env.sit + to a temporary location on your Mac. + +2. Use a tool like StuffIt Expander to unpack the downloaded file (if your + system configuration is standard, a mere double-click will make it + self-extract at the current location, if it hasn't already expanded all + by itself). You'll now have a new ``Inform`` folder. Move this folder + (and its contents) to a suitable location in your Mac. + + .. note:: + + It is a good idea for now to place it in your home directory; + otherwise, a few pre-configured items may not work as explained. + Once you learn the basics of the configuration, you may move the + Inform folder to a different location and hack all the defaults like + the professionals do. + + You should now have this set of folders: + + .. image:: /images/inform_mac_env.* + :align: center + + In order to make the download small and fast, these folders include just + enough to get you started as an Inform designer -- the compiler and + interpreter programs, the library files, the ``Ruins.inf`` example from + the *Inform Designer's Manual*, and a template for your own first game, + which you may copy and rename each time you begin a new Inform project. + A few other folders are included as placeholders where you could later + download additional components, if you wanted them. As soon as + possible, you should download the *Inform Designer's Manual* into the + ``Inform/Doc`` folder -- it's an essential document to have, and has + been omitted from this download only because of its 3MB size. + +3. To verify that the downloaded files work properly, use the Finder to + display the contents of the ``Inform/Games/MyGame1`` folder: you will see + the files ``MyGame1.command`` and ``MyGame1.inf``: + + .. image:: /images/mac_filelist1.* + :align: center + + ``MyGame1.inf`` is a tiny skeleton game in Inform source format. By + convention, all Inform source files have an extension of ``.inf``. + However, Mac OS X may show its Kind as "FUJI BAS IMG document", and try + to open it with GraphicConverter. If you're not a regular user of FUJI + BAS IMG documents, you'll probably want to change this. Either: + + * right-click on the file (or Ctrl-click) + + * select ``Open with`` and choose ``Other...`` + + * in the ``Open with`` dialog, go to the ``Applications`` folder and + select TextEdit. + + * click to select "``Always open with``" + + * click ``Open``. + + or: + + * right-click on the file (or Ctrl-click) + + * press Option, select ``Always open with`` and choose ``Other...`` + + * in the ``Open with`` dialog, go to the ``Applications`` folder and + select TextEdit. + + * click ``Open``. + + Now, if you double-click the file, it should open in TextEdit so that + you can see how it's written, though it probably won't mean much -- yet. + + The above process may affect only this specific file. To change the + program that opens by default all ``.inf`` files, try this: + + * right-click on the file (or Ctrl-click) + + * select ``Get Info`` + + * in the ``Open with`` tab, select TextEdit as the application + + * click the ``Change All...`` button, and confirm the change when asked. + +4. ``MyGame1.command`` is a Terminal Shell Script (a UNIX executable + command-line file, a kind of text-only computer program from the days + before point-and-click interfaces) which runs the Inform compiler. + Double-click it; a UNIX window opens as the game compiles, and you'll + see something like this (the working path will reflect your folder + hierarchy):: + + Last login: Sat Jul 3 03:07:51 on ttyp1 + Welcome to Darwin! + /Users/Dave/Inform/Games/MyGame1/MyGame1.command; [Hal:~] Dave% + /Users/Dave/Inform/Games/MyGame1/MyGame1.command; exit + Inform 6.30 (27th Feb 2004) + logout + [Process completed] + + .. todo:: + + Verify this output. It's what's in the PDF, but the command prompt + looks like it's in the wrong place. + +5. A story file ``MyGame1.z5`` has appeared in the folder; this is the + compiled game, which you can play using an interpreter: + + .. image:: /images/mac_filelist2.* + :align: center + + The extension of ``.z5`` signifies that the story file contains a + Z-machine game in Version 5 (today's standard) format. + +6. Use the Finder to display the contents of the ``Inform/Bin/Zoom`` + folder, and double-click ``Zoom``; the interpreter presents an ``Open`` + dialog box. + +7. Browse to display the ``Inform/Games/MyGame1`` folder, and select + ``MyGame1.z5``. Click ``Open``. The game starts running in the Zoom + window. + +8. When you tire of "playing" the game -- which won't take long -- you can + type the QUIT command, you can select ``Zoom > Quit Zoom``, or you can + simply close the Zoom window. + +.. rubric:: Setting file associations + +The business of first starting the interpreter, and then locating the story +file that you want to play, is clumsy and inconvenient. Fortunately, when +the system first "sees" the Zoom interpreter (which is a nice Aqua +application) it automatically creates an association with story files whose +extension is ``.z5`` (and with other Infocom formats). From now on, you'll +be able to play a game simply by double-clicking its story file. + +The files in the folder should now look like this: + +.. image:: /images/mac_filelist3.* + :align: center + +.. rubric:: Compiling using a command-line file + +If you have followed these instructions to configure your system, every +time that you need to compile your source code you just have to +double-click on the file ``MyGame1.command``. However, this file is good +only for this folder and for ``MyGame1.inf``. + +If you want to start coding another game, you may copy the folder +``MyGame1`` with all its contents and rename it as you please (for example, +``MyGame2`` or something more appropriate). Inside the folder, you'll also +want to rename the relevant files: + + ``MyGame1.inf`` might become ``MyGame2.inf``, or ``MobyDick.inf``, + or... + + ``MyGame1.command`` would change to match: ``MyGame2.command``, or + ``MobyDick.command``. + +You can view -- and of course change -- the contents of +``MyGame2.command``, the command file which you double-click to run the +compiler, using any text editor. You'll see two lines, something like this +(the second chunk is all on one long line, with a space between the +``MyGame1`` and the ``+include_path``):: + + cd ~/Inform/Games/MyGame1/ + ../../Lib/Base/inform630_macosx MyGame1 + +include_path=./,../../Lib/Base,../../Lib/Contrib + +These long strings of text are command lines -- a powerful interface method +predating the icons and menus that most computer users know. You won't +need to master the command line interface in order to start using Inform, +but this section will introduce you to a few basic concepts to get your +bearings. The first line changes the working directory to +``~/Inform/Games/MyGame1/``. The command ``cd`` (also known as ``chdir``, +short for "Change Directory to") lets you travel to the desired folder, +specified by the path, in this case: ``~/Inform/Games/MyGame1/``. The +``~`` symbol stands for your home directory. That is, if your user name +were Dave, the above path is equal to:: + + /Users/Dave/Inform/Games/MyGame1/ + +You want to change that line so that it reads: ``cd +~/Inform/Games/MyGame2/`` + +There are three parts to the second line: + +1. ``inform630_macosx`` refers to the compiler program, and + ``../../Lib/Base`` is the name of the folder which contains it + (addressed relative to *this* folder, the one which holds the source + file). Double-dots stand for "go to the parent folder". + +2. ``MyGame1`` is the name of the Inform source file; you don't need to + mention its extension of ``.inf`` if you don't want to. You'll want to + change this to match the name of your new file: ``MyGame2``. + +3. ``+include_path=./,../../Lib/Base,../../Lib/Contrib`` tells the compiler + where to look for files like ``Parser`` and ``VerbLib`` which you've + Included in the source file (this may sound confusing now, but it will + make a lot of sense after you've delved a bit deeper into this Guide). + Three locations are suggested, separated by commas: this folder, which + holds the source file (``./``); the folder holding the standard library + files (``../../Lib/Base``); the folder holding useful bits and pieces + contributed by the Inform community (``../../Lib/Contrib``). The three + locations are searched in that order. + + .. note:: + + On the command line, you sometimes also see a compiler switch such as + ``-S``, used for controlling detailed aspects of how the compiler + operates. Rather than do that here, we find it more convenient to + place any necessary switches at the very top of the source file, as + we'll explain in the next chapter. + +Once you've finished editing those lines, ``Save`` the file (not +``SaveAs``), overwriting the original, and make sure that your text editor +doesn't append an extension like ``.txt`` (TextEdit, the default editor +that comes with OS X, is polite enough to ask you about this). + +You'll need to have a new command file like this to match each new source +file which you create. The only item which will differ in the new file is +the name of the Inform source file -- ``MyGameN``. You must change this to +match the name of the new source file; everything else can stay the same in +each ``.command`` file that you create. + +.. rubric:: Making your own command-line file + +There are two peculiarities by which your system understands that +``MyGame1.command`` is a Terminal Shell Script. One is the extension +``.command``, and the other is an attribute of the file which marks it as +"executable" (the "executable bits"). If it doesn't meet both conditions, +``MyGame1.command`` won't run as it should. You have to be careful when +editing this file: if you were, for instance, to open it in a text editor +and save it to a different location with a different name, the executable +bits might get lost, and when you double-click it, you would see: + +.. image:: /images/mac_exec_error.* + :align: center + +To make a command file from scratch (also, to fix this problem) you can +follow these steps: + +1. Open any text editor and write (using your own path):: + + cd ~/Inform/Games/MyGameN/ + ../../Lib/Base/inform630_macosx MyGameN + +include_path=./,../../Lib/Base,../../Lib/Contrib + + where ``MyGameN`` stands for the name you have chosen for your Inform + project. + +2. Save the file in the folder ``MyGameN`` and call it ``MyGameN.command``. + Make sure that the text editor doesn't append a ``.txt`` extension; if + it does, rename the file manually. + +3. Go to ``Applications > Utilities`` and double-click on ``Terminal``. + This opens the utility which provides you with a set of windows to + access the UNIX command line. Supposing the computer is named Hal, and + the user Dave, you should see something like this:: + + Last login: Wed Jun 30 18:05:55 on ttyp1 + Welcome to Darwin! + [Hal:~] Dave% + +4. Every time that you open a Terminal window, you're at your home + directory (as noted by the tilde after the computer's name). You can + travel to your working folder by typing:: + + cd Inform/Games/MyGameN + + You'll see how the path changes:: + + [Hal:~/Inform/Games/MyGameN] Dave% + + Now you can make the command file executable with:: + + chmod 777 MyGameN.command + +5. Alternatively, you can omit the cd command if you give the full path to + ``chmod``:: + + chmod 777 ~/Inform/Games/MyGameN/MyGameN.command + + This sets the executable bits for the file ``MyGameN.command``. + +6. Close the Terminal window. + +Now, every time you need to compile your game, you can just double-click on +``MyGameN.command`` from the Finder. + +.. rubric:: Getting a better editor + +Although TextEdit is adequate when you're getting started, you'll find life +much easier if you obtain a more powerful editor program. We'd really like +to recommend one -- there's an exciting list of possibilities at +http://osx.hyperjeff.net/Apps/apps.php?sub=5 -- but at the time of writing +none of them seems outstandingly suited to IF authorship. If you find one +that works really well, please let us know. + +.. rubric:: More about the editor + +As well as the ones that we recommend, other good text editors are listed +at http://www.firthworks.com/roger/editors/. One feature that's well worth +looking out for is "hotkey compilation" -- being able to run the compiler +from *within* the editor. Another is "syntax colouring", where the editor +understands enough of Inform's syntax rules to colour-code your source +file; for example: red for brackets, braces and parentheses ``[ ]`` ``{ }`` +and ``( )``, blue for reserved words like ``Object`` and ``print``, green +for items in quotes like '...' and "...", and so on. Syntax colouring is +of great assistance in getting your source file correct and thus avoiding +silly compilation errors. + +.. rubric:: More about the compiler + +The Inform compiler is a powerful but undramatic software tool; it does an +awful lot of work, but it does it all at once, without stopping to ask you +any questions. Its input is a readable text source file; the output is a +story file, also sometimes known as a **Z-code file** (because it contains +the game translated into code for the Z-machine, which we describe in the +next section). + +If you're lucky, the compiler will translate your source file into Z-code; +perhaps surprisingly, it doesn't display any form of "success" message when +it succeeds. Often, however, it fails, because of mistakes which you've +made when writing the game. Inform defines a set of rules -- a capital +letter here, a comma there, these words only in a certain order, those +words spelled just so -- about which the compiler is extremely fussy. If +you accidentally break the rules, the compiler complains: it refuses to +write a Z-code file. *Do not worry about this*: the rules are easy to +learn, but just as easy to break, and all Inform designers inadvertently do +so on a regular basis. There's some additional information about dealing +with these mistakes, and about controlling how the compiler behaves, in +"Compiling your game" on page 189. + +.. rubric:: More about the interpreter + +One of the big advantages of the way Inform works is that a compiled game +-- the Z-code story file -- is portable between different computers. +That's not just from one PC to another: exactly the same story file will +run on a PC, a Mac, an Amiga, UNIX workstations, IBM mainframes, PalmOS +hand-helds, and on dozens of other past, present and future computers. The +magic that makes this happen is the interpreter program, a software tool +which pretends to be a simple computer called a **Z-machine**. The +Z-machine is an imaginary (or "virtual") computer, but its design has been +very carefully specified, so that an expert programmer can quite easily +build one. And that's exactly what has happened: a Macintosh guru has +built an Inform interpreter which runs on Apple Macs, a UNIX wizard has +built one for UNIX workstations, and so on. Sometimes, you even get a +choice; for popular machines like the PC and the Mac there are several +interpreters available. And the wonderful thing is: each of those +interpreters, on each of those computers, is able to play every Inform game +that's ever been written *and*, as a surprise bonus, all of the classic +1980s Infocom games like "Zork" and "The Hitchhiker's Guide to the Galaxy" +as well! + +(Actually, that last sentence is a slight exaggeration; a few games are +very large, or have pictures included within them, and not all interpreters +can handle this. However, with that small pinch of salt, it's pretty +accurate.) + +That's enough waffling: let's get started! It's time to begin designing +our first game. + +.. rubric:: Footnotes + +.. [#bsd] + "BSD" stands for Berkeley Software Distribution, the name of the UNIX + derivative distributed in the 1970s from the University of California, + Berkeley, and used collectively for the modern descendants of those + distributions. diff --git a/images/filelist1.png b/images/filelist1.png new file mode 100644 index 0000000000000000000000000000000000000000..8a4afba413b7181408062188e5828aab46c27031 GIT binary patch literal 1610 zcmV-Q2DSN#P)Px#AY({UO#lFTCIA3{ga82g0001h=l}q9FaQARU;qF* zm;eA5aGbhPJOBUy9#BkFMZdqletv!c007_L-~a#rfPjF&z`y_ifPjDi|Nj8WSZeD4 z0004EOGiWkW(#~|00009a7bBm0000;0000;07l7cJ^%m(8c9S!RCwC$n@e)sHV{B* z-asxL0M+TZymXukXu2Sm4jok`-uV$G~6^5IZP*ut2vr9upoC>=#* zlqQ5FQ9Af2?Oka&50gs6#%d~!xs|6X$|_AaS@up-=)MJ-FN|=kd4*~r?Ada@{jL6N zi{`wDTj_vNu2vo_;p4NBr`Mj)=?MR1`GT)Kq0q00SQ!by}8nPP#C(9Mo5*j-*wipoz+h(3i)88fv^N*}wKJfv^N zha?>#Iv?6RBx>;Cw9=r5ni7)nVMLhG_JEgVYZf9LW~Hr zQR*_zd(lm8K`nI)2tG-pLLKgtNoJpi+5$oF;Y_6=QwKrE8i0BFkx?f3 z_WkGKvwI#&vl6QjM@Y8UFlf-G^rGb9X1b@>p2s-|^>c8Ipq`K(m9(@Emnxp{30LaG zK&VHbZh{aGcEFWO066J@)5kdOtDZMh*#XNZ^%8>-;eH2fwbzJy7YlD~)8)cc^#MDz z9dPjBYzN#xXkVc*QBy@&+W~7I0y@Hc2TWAi|1u#agj%`l;*eGI5g^kAyEb@^u($)( zKK%N^Q99cJt2tEr5GNh5E=E~&vc)2nT3b0gvO2C>2jP4+;Px#AY({UO#lFTCIA3{ga82g0001h=l}q9FaQARU;qF* zm;eA5aGbhPJOBUyCs0gOMZdqletv!c007_L-~a#rfPjF&z`y_ifPjDi|Nj900001h z00030YNLL=00001VoOIv0%i+*WB>pF32;bRa{vGUNB{r;NB~C3Yd!z~22M#tK~#9! z?VHVV+cpr#RlR{TegMvP+ew=q()IgYYxqmI%Au{$zyEY4_pi9-!ItekXBu-QIp0i#sNS(-H0?*L<|GrG!v= z?O6~eN0$(GJ7^@-N!R703ku9Xs}pu$dG-l^ArF`vX#v%P~b4W@EQF7?UA<=>y_GcROP<=wOIgAK1 zzC59PbUZjgsE39S@+g5oh-(m1LYSRP9U(@9*(#M0=d&oG&6rE21Ho6RooTqd0n$l! zKA|c1UXa=Ap=p6260>GXEPA}s)bX{(! zQ30zvy@V8x0PgK}lpPRiJ% zpp(JlgcS-{=kV)~A7a9x0&dn$0|m_U1H^D8U-BXu&99B2`Q+2NvU%VjfC|I*o?#1;cAgpzzYcZ{touWA>Ts< znQ4^0H6>MQ=Yes;N(G#(X;7WZPQDcOgzx#uj3Yav0zMz175V2QJDa^A1$^A*^U;{l zY&~5%oRbqi-d#GLQxk4+s_7G|hYtmOVV zx@S5?!mI*r;NzH51+0{lXR7{!$ZH`gDqxTW`9M7#e=_Gjj4R+qLSB@m+M<=vJ>@AW zU?ss13DrN}zQG4I`V6>noH8Ny2+=;1$v=CULs(M4mXLQQ>(b-Tw|Znej3{7LTI^4U zc39~t?QO23P+yuP7(Th zA~;mQ{nV=B)uQkWn3`r9w0DFf1#GT|)IQT#cXKZ^Qy2D_}>srNvvK zfVYH}5^mN$6aN40GvTC}KWVtWG{s2>&-8)?B(q&O_;&x>!Bo60*qQDs+{cqhHV-G~tS~S<=`Nx|H*( zbZj!FZnqMhYjIt=IMN~KycTX&CA4W=oi4{YBYmeKERXw@IcGPrI^nak7eM$QuXCU& zjb;_M0000bbVXQnWMOn=I%9HWVRU5xGB7bVEig1KFfmjzF*-6bIx;dVFflqXFhcK~ z*#H0lC3HntbYx+4WjbwdWNBu305UKzGA%GNEipM%F*!OkH##slD=;uRFfi*L%1HnK N002ovPDHLkV1nvCf>Qth literal 0 HcmV?d00001 diff --git a/images/filelist3.png b/images/filelist3.png new file mode 100644 index 0000000000000000000000000000000000000000..e1e537b31c5097f5f666252a42d01dabaa76b022 GIT binary patch literal 1974 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 z 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 literal 0 HcmV?d00001 diff --git a/images/inform_pc_env.png b/images/inform_pc_env.png new file mode 100644 index 0000000000000000000000000000000000000000..6fc620f92297968cc7851a483d703c630119d6d7 GIT binary patch literal 4247 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 O08EW6ZZ;V_jQtO!_g!fK literal 0 HcmV?d00001 diff --git a/images/mac_exec_error.png b/images/mac_exec_error.png new file mode 100644 index 0000000000000000000000000000000000000000..774b1835288c82182413e2e7e3c57e56a14d4eae GIT binary patch literal 6402 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 literal 0 HcmV?d00001 diff --git a/images/mac_filelist1.png b/images/mac_filelist1.png new file mode 100644 index 0000000000000000000000000000000000000000..c33fe6e73a591b36b730d990ad7434181917c2d6 GIT binary patch literal 8455 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 ofmnn8v?T0&_fR~@y7r6 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 DdndnQ literal 0 HcmV?d00001 diff --git a/images/mac_filelist3.png b/images/mac_filelist3.png new file mode 100644 index 0000000000000000000000000000000000000000..6ce536c96d7602ad6b0e1676e4aa365350569e25 GIT binary patch literal 9888 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 literal 0 HcmV?d00001 -- 2.31.1