7 | |CENTER| *C was a captain, all covered with lace;*
8 | |CENTER| *D was a drunkard, and had a red face.*
12 .. image:: /images/picC.png
15 |C|\onventional -- static -- fiction can be written using nothing more than
16 pencil and paper, or typewriter, or word-processor; however, the
17 requirements for producing IF are a little more extensive, and the creative
18 process slightly more complex.
20 * For static fiction, you first write the text, and then you check it by
21 reading what you've written.
23 * For IF, you still have to write all of the text, but you also have to
24 establish what text gets displayed when. Once you have written the
25 necessary Inform instructions, you use a :term:`compiler` program to
26 convert them into a playable format. The resulting information is played
27 by an :term:`interpreter` program, which permits you to interact with
28 your developing world.
30 With static fiction What You Write Is What You Read, but with IF the format
31 in which you initially write the game doesn't bear much resemblance to the
32 text which the interpreter ultimately displays. For example, the "William
33 Tell" game, in the form that we wrote it, starts like this:
35 .. code-block:: inform
37 !============================================================================
38 Constant Story "William Tell";
40 "^A simple Inform example
41 ^by Roger Firth and Sonja Kesserich.^";
46 !============================================================================
54 You will never need to look at it in the form produced by the compiler::
56 050000012C6C2C2D1EF6010A0C4416900010303230313031004253FEA90C0000
57 0000000000000000000000000000168F000000000000010200000000362E3231
60 but, as you'll notice from the full transcript in :doc:`/appendices/c`, the
61 player will see the following::
63 The place: Altdorf, in the Swiss canton of Uri. The year is 1307, at
64 which time Switzerland is under rule by the Emperor Albert of
65 Habsburg. His local governor -- the vogt -- is the bullying Hermann
66 Gessler, who has placed his hat atop a wooden pole in the centre of
67 the town square; everybody who passes through the square must bow to
68 this hated symbol of imperial might...
70 Clearly, there's more to writing IF than just laying down the words in the
71 right order. Fortunately, we can make one immediate simplification: the
72 translated form produced by the Inform compiler -- those cryptic numbers
73 and letters held in what's known as the :term:`story file` -- is designed
74 to be read by the interpreter program. The story file is an example of a
75 "binary" file, containing data intended for use only by a computer program.
76 Forget all that unreadable gibberish.
78 So that leaves just the first form -- the one starting "``Constant Story``"
79 -- which represents the tale written as a piece of IF. That's the
80 :term:`source file` (so called because it contains the game in its
81 original, source, form) which you create on your computer. The source file
82 is a "text" (or "ASCII") file containing words and phrases which can be
83 read -- admittedly after a little tuition, which is what this guide is all
86 .. Generated by autoindex
89 pair: NotePad; text editor
91 How do you create that source file? Using a third software program: an
92 :term:`editor`. However, unlike the compiler and interpreter, this program
93 isn't dedicated to the Inform system -- or even to IF. An editor is an
94 entirely general tool for creating and modifying text files; you've
95 probably already got a basic one on your computer (an IBM PC running
96 Windows comes with NotePad, while an Apple Macintosh has SimpleText or
97 TextEdit), or you can download a better one from the Internet. An editor
98 is like a word-processing program such as MS Word, only much less complex;
99 no fancy formatting features, no bold or italics or font control, no
100 embedded graphics; it simply enables you to type lines of text, which is
101 exactly what's needed to create an IF game.
103 If you look at the game source above, or in :doc:`/appendices/c`, you'll
104 notice ``Include "Parser";`` and ``Include "VerbLib";`` a few lines down
105 from the top of the file. These are instructions to the Inform compiler to
106 "include" -- that is, to merge in the contents -- of files called
107 ``Parser.h`` and ``VerbLib.h``. These are not files which you have to
108 create; they're standard :term:`library files`, part of the Inform system.
109 All that you have to do is remember to Include them in every game that you
110 write. Until you've a fair understanding of how Inform works, you've no
111 need to worry about what they contain (though you can look if you want to:
112 they're readable text files, just like the ones this guide will teach you
115 So, we've now introduced all of the bits and pieces which you need in order to
116 write an Inform adventure game:
118 * a text :term:`editor` program which can create and modify the
119 :term:`source file` containing the descriptions and definitions of your
120 game. Although it's not recommended, you can even use a word-processing
121 program to do this, but you have to remember to save your game in Text
124 * some Inform :term:`library files` which you Include in your own game
125 source file in order to provide the :term:`model world` -- a basic game
126 environment and lots of useful standard definitions;
128 * the Inform :term:`compiler` program, which reads your source file (and
129 the library files) and translates your descriptions and definitions into
130 another format -- the :term:`story file` -- intended only for...
132 * an Inform :term:`interpreter` program, which is what players of your game
133 use. A player doesn't require the source file, library files or compiler
134 program, just the interpreter and the game in compiled format (which,
135 because it's a binary file not meaningful to human eyes, neatly
136 discourages players from cheating).
138 .. Generated by autoindex
142 All of those, apart from the editor, can be downloaded for free from the IF
143 Archive. One approach is to fetch them individually, following the
144 guidance on Graham's page: visit http://www.inform-fiction.org/ and look
145 for the "Software" section. However, if you're using a PC or a Mac, you'll
146 find it easier to download a complete package containing everything that
147 you need to get started.
151 Inform on an IBM PC (running Microsoft Windows)
152 ===============================================
154 Although the Windows operating system is upgraded on a fairly regular
155 basis, its basic capabilities and ways of working have remained
156 more-or-less consistent for many years. The information here applies to
157 PCs running Windows 95 onwards.
159 .. rubric:: Installing and testing Inform
163 1. Download http://www.firthworks.com/roger/downloads/inform_pc_env.zip to
164 a temporary location on your PC.
166 2. Use a tool like WinZip to unzip the downloaded file, giving you a new
167 ``Inform`` folder. Move this folder (and its contents) to a suitable
168 location on your PC -- a good place would be ``C:\My Documents\Inform``,
169 but you could also use ``C:\Documents and Settings\yourname\My
170 Documents\Inform``, ``C:\Inform`` or ``C:\Program Files\Inform``. You
171 should now have this set of folders:
173 .. image:: /images/inform_pc_env.*
176 In order to make the download small and fast, these folders include just
177 enough to get you started as an Inform designer -- the compiler and
178 interpreter programs, the library files, the ``Ruins.inf`` example file
179 from the |DM4|, and a template for your own first game. A few other
180 folders are included as placeholders where you could later download
181 additional components, if you wanted them. As soon as possible, you
182 should download the |DM4| into the ``Inform\Doc`` folder -- it's an
183 essential document to have, and has been omitted from this download only
184 because of its 3MB size.
186 3. To verify that the downloaded files work properly, use Windows Explorer
187 to display the contents of the ``Inform\Games\MyGame1`` folder: you will
188 see the two files ``MyGame1.bat`` and ``MyGame1.inf``:
190 .. image:: /images/filelist1.*
193 ``MyGame1.inf`` is a tiny skeleton game in Inform source format. By
194 convention, all Inform source files have an extension of .inf; Windows
195 has an inbuilt definition for ``.inf`` files, and so shows its Type as
196 "Setup Information", but this doesn't seem to matter. If you
197 double-click the file, it should open in NotePad so that you can see how
198 it's written, though it probably won't mean much -- yet.
200 4. ``MyGame1.bat`` is an MS-DOS batch file (an old kind of text-only
201 computer program, from the days before point-and-click interfaces) which
202 runs the Inform compiler. Double-click it; a DOS window opens as the
203 game compiles, and you'll see this::
205 C:\My Documents\Inform\Games\MyGame1>..\..\Lib\Base\Inform MyGame1
206 +include_path=.\,..\..\Lib\Base,..\..\Lib\Contrib | more
208 Inform 6.30 for Win32 (27th Feb 2004)
210 C:\My Documents\Inform\Games\MyGame1>pause "at end of compilation"
211 Press any key to continue . . .
213 Press the space bar, then close the DOS window.
217 On Windows NT, 2000 and XP, the DOS window closes of its own accord
218 when you press the space bar.
220 5. A story file ``MyGame1.z5`` has appeared in the folder; this is the
221 compiled game, which you can play using an interpreter:
223 .. image:: /images/filelist2.*
226 The extension of ``.z5`` signifies that the story file contains a
227 Z-machine game in Version 5 (today's standard) format.
229 6. Use Windows Explorer to display the contents of the ``Inform\Bin\Frotz``
230 folder, and double-click ``Frotz.exe``; the interpreter presents an
231 ``Open a Z-code Game`` dialog box.
233 7. Browse to display the ``Inform\Games\MyGame1`` folder, and select
234 ``MyGame1.z5``. Click ``Open``. The game starts running in the Windows
237 8. When you tire of "playing" the game -- which won't take long -- you can
238 type the QUIT command, you can select ``File > Exit``, or you can simply
239 close the Frotz window.
241 9. Using the same techniques, you can compile and play ``Ruins.inf``, which
242 is held in the ``Inform\Games\Download`` folder. RUINS is the game used
243 as an example throughout the |DM4|.
245 .. rubric:: Setting file associations
247 The business of first starting the interpreter, and then locating the story
248 file that you want to play, is clumsy and inconvenient. Fortunately, when
249 you first run the Frotz interpreter, it automatically creates an
250 association with story files whose extension is ``.z5``. From now on,
251 you'll be able to play a game simply by double-clicking its story file. If
252 some any reason this doesn't work, you can set up the association yourself:
254 1. Double-click ``MyGame1.z5``; Windows asks you to select the program
257 * type ``Z-code V5 Adventure`` as the "``Description for...``"
258 * click to select "``Always use this program...``"
261 2. Browse to display the ``Inform\Bin\Frotz`` folder, and select
262 ``Frotz.exe``. Click ``Open``.
264 .. rubric:: Changing the Windows icon
266 If the Windows icon that's displayed alongside ``MyGame1.z5`` doesn't look
267 right, you can change it.
269 1. In Windows Explorer, either select ``View > Options...`` and click
270 ``File Types``, or select ``Tools > Folder Options...`` and click ``File
273 * select the game file type in the list, which is in order either of
274 application (Frotz) or of extension (Z5)
277 2. In the ``Edit File Type`` dialog, click ``Change Icon``.
279 3. In the ``Change Icon`` dialog, ensure that the file name is
280 ``Inform\Bin\Frotz\Frotz.exe``, and select one of the displayed icons.
281 Click ``OK`` to close all the dialogs. The files in the folder should
284 .. image:: /images/filelist3.*
287 .. rubric:: Compiling using a batch file
289 You can view -- and of course change -- the contents of ``MyGame1.bat``,
290 the batch file which you double-click to run the compiler, using any text
291 editor. You'll see two lines, something like this (the first chunk is all
292 on one long line, with a space between the ``MyGame1`` and the
295 ..\..\Lib\Base\Inform MyGame1
296 +include_path=.\,..\..\Lib\Base,..\..\Lib\Contrib | more
297 pause "at end of compilation"
299 These long strings of text are command lines -- a powerful interface method
300 predating the icons and menus that most computer users know. You won't
301 need to master the command line interface in order to start using Inform,
302 but this section will tell you what these particular command lines are
303 doing. There are four parts to the first line:
305 1. ``Inform`` refers to the compiler program, and ``..\..\Lib\Base`` is the
306 name of the folder which contains it (addressed relative to *this*
307 folder, the one which holds the source file). Double-dots stand for "go
308 to the parent folder".
310 2. ``MyGame1`` is the name of the Inform source file; you don't need to
311 mention its extension of ``.inf`` if you don't want to.
313 3. ``+include_path=.\,..\..\Lib\Base,..\..\Lib\Contrib`` tells the compiler
314 where to look for files like ``Parser`` and ``VerbLib`` which you've
315 Included. Three locations are suggested: this folder, which holds the
316 source file (``.\``); the folder holding the standard library files
317 (``..\..\Lib\Base``); the folder holding useful bits and pieces
318 contributed by the Inform community (``..\..\Lib\Contrib``). The three
319 locations are searched in that order.
323 On the command line, you sometimes also see a compiler :term:`switch`
324 such as :option:`-S`, used for controlling detailed aspects of how
325 the compiler operates. Rather than do that here, we find it more
326 convenient to place any necessary switches at the very top of the
327 source file, as we'll explain in the next chapter.
329 4. ``| more`` causes the compiler to pause if it finds more mistakes than
330 it can tell you about on a single screen, rather than have them scroll
331 off the top of the MS-DOS window. Press the space bar to continue the
334 The second line -- ``pause "at end of compilation"`` -- just prevents the
335 window from closing before you can read its contents, as it otherwise would
336 on Windows NT, 2000 and XP.
338 You'll need to have a new batch file like this to match each new source
339 file which you create. The only item which will differ in the new file is
340 the name of the Inform source file -- ``MyGame1`` in this example. You
341 must change this to match the name of the new source file; everything else
342 can stay the same in each ``.bat`` file that you create.
344 .. rubric:: Getting a better editor
346 .. Generated by autoindex
348 pair: NotePad; text editor
350 Although NotePad is adequate when you're getting started, you'll find life
351 much easier if you obtain a more powerful editor program. We recommend
352 TextPad, available as shareware from http://www.textpad.com/; in addition,
353 there are some detailed instructions at
354 http://www.onyxring.com/informguide.aspx?article=14 on how to improve the
355 way that TextPad works with Inform. The biggest single improvement, the
356 one that will make game development dramatically simpler, is being able to
357 compile your source file *from within* the editor. No need to save the
358 file, switch to another window and double-click the batch file (and indeed,
359 no further need for the batch file itself): just press a key while editing
360 the file -- and it compiles there and then. You can also run the
361 interpreter with similar ease. The convenience of doing this far outweighs
362 the small amount of time needed to obtain and configure TextPad.
365 single: Apple Macintosh
369 Inform on an Apple Macintosh (running OS X)
370 ===========================================
372 Whereas our instructions for using Inform on a PC apply to just about all
373 versions of Windows, on the Macintosh we need to be more precise. Our
374 guidance here is specifically for Mac OS X, rather than for its predecessor
375 OS 9, and it may be helpful if we first mention a few relevant differences.
377 Mac OS X is a robust system constructed around -- or on top of -- BSD
378 [#bsd]_ UNIX. There are several kinds of applications that will run on
381 * Aqua: specifically designed for the Graphical User Interface of Mac OS X,
382 and taking advantage of its underlying technologies. Broadly, there
383 are two types of Aqua application:
385 * Cocoa: built with programming tools designed for Mac OS X.
387 * Carbon: built with the programming tools designed for Mac OS 9 and
388 earlier versions, but "translated" to take advantage of OS X.
390 * Classic: designed to work on Mac OS 9 and earlier versions. They need to
391 run in the Classic environment of OS X; roughly speaking, Classic is an
392 emulation of the older Mac systems.
394 * X11: based on a windowing system designed for the UNIX/Linux world. They
395 need an X-Windows server to run, and their appearance and functionality
396 may seem a lot different to what the Aqua user expects.
398 * UNIX: most UNIX programs (including Linux) will run on your Mac OS X, but
399 they usually have to be accessed (or configured) from the UNIX core of
400 your Mac, through the Terminal utility.
402 These differences may be significant, since some of the tools designed to
403 develop and run IF on a Mac system (for example, ones you'll find in the
404 Archive) have been built by programmers working in different environments
405 with varying technologies. We have tried to select tools that will make
406 your life easy as a beginner, but in time you may want to investigate
407 alternative approaches.
409 .. rubric:: Installing and testing Inform
413 1. Download http://www.firthworks.com/roger/downloads/inform_macosx_env.sit
414 to a temporary location on your Mac.
416 2. Use a tool like StuffIt Expander to unpack the downloaded file (if your
417 system configuration is standard, a mere double-click will make it
418 self-extract at the current location, if it hasn't already expanded all
419 by itself). You'll now have a new ``Inform`` folder. Move this folder
420 (and its contents) to a suitable location in your Mac.
424 It is a good idea for now to place it in your home directory;
425 otherwise, a few pre-configured items may not work as explained.
426 Once you learn the basics of the configuration, you may move the
427 Inform folder to a different location and hack all the defaults like
428 the professionals do.
430 You should now have this set of folders:
432 .. image:: /images/inform_mac_env.*
435 In order to make the download small and fast, these folders include just
436 enough to get you started as an Inform designer -- the compiler and
437 interpreter programs, the library files, the ``Ruins.inf`` example from
438 the |DM4|, and a template for your own first game, which you may copy
439 and rename each time you begin a new Inform project. A few other
440 folders are included as placeholders where you could later download
441 additional components, if you wanted them. As soon as possible, you
442 should download the |DM4| into the ``Inform/Doc`` folder -- it's an
443 essential document to have, and has been omitted from this download only
444 because of its 3MB size.
446 3. To verify that the downloaded files work properly, use the Finder to
447 display the contents of the ``Inform/Games/MyGame1`` folder: you will see
448 the files ``MyGame1.command`` and ``MyGame1.inf``:
450 .. image:: /images/mac_filelist1.*
453 ``MyGame1.inf`` is a tiny skeleton game in Inform source format. By
454 convention, all Inform source files have an extension of ``.inf``.
455 However, Mac OS X may show its Kind as "FUJI BAS IMG document", and try
456 to open it with GraphicConverter. If you're not a regular user of FUJI
457 BAS IMG documents, you'll probably want to change this. Either:
459 * right-click on the file (or Ctrl-click)
461 * select ``Open with`` and choose ``Other...``
463 * in the ``Open with`` dialog, go to the ``Applications`` folder and
466 * click to select "``Always open with``"
472 * right-click on the file (or Ctrl-click)
474 * press Option, select ``Always open with`` and choose ``Other...``
476 * in the ``Open with`` dialog, go to the ``Applications`` folder and
481 Now, if you double-click the file, it should open in TextEdit so that
482 you can see how it's written, though it probably won't mean much -- yet.
486 The above process may affect only this specific file. To change
487 the program that opens by default *all* ``.inf`` files, try this:
489 * right-click on the file (or Ctrl-click)
491 * select ``Get Info``
493 * in the ``Open with`` tab, select TextEdit as the application
495 * click the ``Change All...`` button, and confirm the change when asked.
497 4. ``MyGame1.command`` is a Terminal Shell Script (a UNIX executable
498 command-line file, a kind of text-only computer program from the days
499 before point-and-click interfaces) which runs the Inform compiler.
500 Double-click it; a UNIX window opens as the game compiles, and you'll
501 see something like this (the working path will reflect your folder
504 Last login: Sat Jul 3 03:07:51 on ttyp1
506 /Users/Dave/Inform/Games/MyGame1/MyGame1.command; [Hal:~] Dave%
507 /Users/Dave/Inform/Games/MyGame1/MyGame1.command; exit
508 Inform 6.30 (27th Feb 2004)
514 Verify this output. It's what's in the PDF, but the command prompt
515 looks like it's in the wrong place.
517 5. A story file ``MyGame1.z5`` has appeared in the folder; this is the
518 compiled game, which you can play using an interpreter:
520 .. image:: /images/mac_filelist2.*
523 The extension of ``.z5`` signifies that the story file contains a
524 Z-machine game in Version 5 (today's standard) format.
526 6. Use the Finder to display the contents of the ``Inform/Bin/Zoom``
527 folder, and double-click ``Zoom``; the interpreter presents an ``Open``
530 7. Browse to display the ``Inform/Games/MyGame1`` folder, and select
531 ``MyGame1.z5``. Click ``Open``. The game starts running in the Zoom
534 8. When you tire of "playing" the game -- which won't take long -- you can
535 type the QUIT command, you can select ``Zoom > Quit Zoom``, or you can
536 simply close the Zoom window.
538 .. rubric:: Setting file associations
540 .. Generated by autoindex
544 The business of first starting the interpreter, and then locating the story
545 file that you want to play, is clumsy and inconvenient. Fortunately, when
546 the system first "sees" the Zoom interpreter (which is a nice Aqua
547 application) it automatically creates an association with story files whose
548 extension is ``.z5`` (and with other Infocom formats). From now on, you'll
549 be able to play a game simply by double-clicking its story file.
551 The files in the folder should now look like this:
553 .. image:: /images/mac_filelist3.*
556 .. rubric:: Compiling using a command-line file
558 If you have followed these instructions to configure your system, every
559 time that you need to compile your source code you just have to
560 double-click on the file ``MyGame1.command``. However, this file is good
561 only for this folder and for ``MyGame1.inf``.
563 If you want to start coding another game, you may copy the folder
564 ``MyGame1`` with all its contents and rename it as you please (for example,
565 ``MyGame2`` or something more appropriate). Inside the folder, you'll also
566 want to rename the relevant files:
568 ``MyGame1.inf`` might become ``MyGame2.inf``, or ``MobyDick.inf``,
571 ``MyGame1.command`` would change to match: ``MyGame2.command``, or
572 ``MobyDick.command``.
574 You can view -- and of course change -- the contents of
575 ``MyGame2.command``, the command file which you double-click to run the
576 compiler, using any text editor. You'll see two lines, something like this
577 (the second chunk is all on one long line, with a space between the
578 ``MyGame1`` and the ``+include_path``)::
580 cd ~/Inform/Games/MyGame1/
581 ../../Lib/Base/inform630_macosx MyGame1
582 +include_path=./,../../Lib/Base,../../Lib/Contrib
584 These long strings of text are command lines -- a powerful interface method
585 predating the icons and menus that most computer users know. You won't
586 need to master the command line interface in order to start using Inform,
587 but this section will introduce you to a few basic concepts to get your
588 bearings. The first line changes the working directory to
589 ``~/Inform/Games/MyGame1/``. The command ``cd`` (also known as ``chdir``,
590 short for "Change Directory to") lets you travel to the desired folder,
591 specified by the path, in this case: ``~/Inform/Games/MyGame1/``. The
592 ``~`` symbol stands for your home directory. That is, if your user name
593 were Dave, the above path is equal to::
595 /Users/Dave/Inform/Games/MyGame1/
597 You want to change that line so that it reads: ``cd
598 ~/Inform/Games/MyGame2/``
600 There are three parts to the second line:
602 1. ``inform630_macosx`` refers to the compiler program, and
603 ``../../Lib/Base`` is the name of the folder which contains it
604 (addressed relative to *this* folder, the one which holds the source
605 file). Double-dots stand for "go to the parent folder".
607 2. ``MyGame1`` is the name of the Inform source file; you don't need to
608 mention its extension of ``.inf`` if you don't want to. You'll want to
609 change this to match the name of your new file: ``MyGame2``.
611 3. ``+include_path=./,../../Lib/Base,../../Lib/Contrib`` tells the compiler
612 where to look for files like ``Parser`` and ``VerbLib`` which you've
613 Included in the source file (this may sound confusing now, but it will
614 make a lot of sense after you've delved a bit deeper into this Guide).
615 Three locations are suggested, separated by commas: this folder, which
616 holds the source file (``./``); the folder holding the standard library
617 files (``../../Lib/Base``); the folder holding useful bits and pieces
618 contributed by the Inform community (``../../Lib/Contrib``). The three
619 locations are searched in that order.
623 On the command line, you sometimes also see a compiler :term:`switch`
624 such as :option:`-S`, used for controlling detailed aspects of how
625 the compiler operates. Rather than do that here, we find it more
626 convenient to place any necessary switches at the very top of the
627 source file, as we'll explain in the next chapter.
629 Once you've finished editing those lines, ``Save`` the file (not
630 ``SaveAs``), overwriting the original, and make sure that your text editor
631 doesn't append an extension like ``.txt`` (TextEdit, the default editor
632 that comes with OS X, is polite enough to ask you about this).
634 You'll need to have a new command file like this to match each new source
635 file which you create. The only item which will differ in the new file is
636 the name of the Inform source file -- ``MyGameN``. You must change this to
637 match the name of the new source file; everything else can stay the same in
638 each ``.command`` file that you create.
640 .. rubric:: Making your own command-line file
642 There are two peculiarities by which your system understands that
643 ``MyGame1.command`` is a Terminal Shell Script. One is the extension
644 ``.command``, and the other is an attribute of the file which marks it as
645 "executable" (the "executable bits"). If it doesn't meet both conditions,
646 ``MyGame1.command`` won't run as it should. You have to be careful when
647 editing this file: if you were, for instance, to open it in a text editor
648 and save it to a different location with a different name, the executable
649 bits might get lost, and when you double-click it, you would see:
651 .. image:: /images/mac_exec_error.*
654 To make a command file from scratch (also, to fix this problem) you can
657 1. Open any text editor and write (using your own path)::
659 cd ~/Inform/Games/MyGameN/
660 ../../Lib/Base/inform630_macosx MyGameN
661 +include_path=./,../../Lib/Base,../../Lib/Contrib
663 where ``MyGameN`` stands for the name you have chosen for your Inform
666 2. Save the file in the folder ``MyGameN`` and call it ``MyGameN.command``.
667 Make sure that the text editor doesn't append a ``.txt`` extension; if
668 it does, rename the file manually.
670 3. Go to ``Applications > Utilities`` and double-click on ``Terminal``.
671 This opens the utility which provides you with a set of windows to
672 access the UNIX command line. Supposing the computer is named Hal, and
673 the user Dave, you should see something like this::
675 Last login: Wed Jun 30 18:05:55 on ttyp1
679 4. Every time that you open a Terminal window, you're at your home
680 directory (as noted by the tilde after the computer's name). You can
681 travel to your working folder by typing::
683 cd Inform/Games/MyGameN
685 You'll see how the path changes::
687 [Hal:~/Inform/Games/MyGameN] Dave%
689 Now you can make the command file executable with::
691 chmod 777 MyGameN.command
693 5. Alternatively, you can omit the cd command if you give the full path to
696 chmod 777 ~/Inform/Games/MyGameN/MyGameN.command
698 This sets the executable bits for the file ``MyGameN.command``.
700 6. Close the Terminal window.
702 Now, every time you need to compile your game, you can just double-click on
703 ``MyGameN.command`` from the Finder.
705 .. rubric:: Getting a better editor
707 Although TextEdit is adequate when you're getting started, you'll find life
708 much easier if you obtain a more powerful editor program. We'd really like
709 to recommend one -- there's an exciting list of possibilities at
710 http://osx.hyperjeff.net/Apps/apps.php?sub=5 -- but at the time of writing
711 none of them seems outstandingly suited to IF authorship. If you find one
712 that works really well, please let us know.
714 .. rubric:: More about the editor
716 As well as the ones that we recommend, other good text editors are listed
717 at http://www.firthworks.com/roger/editors/. One feature that's well worth
718 looking out for is "hotkey compilation" -- being able to run the compiler
719 from *within* the editor. Another is "syntax colouring", where the editor
720 understands enough of Inform's syntax rules to colour-code your source
721 file; for example: red for brackets, braces and parentheses ``[ ]`` ``{ }``
722 and ``( )``, blue for reserved words like ``Object`` and ``print``, green
723 for items in quotes like '...' and "...", and so on. Syntax colouring is
724 of great assistance in getting your source file correct and thus avoiding
725 silly compilation errors.
727 .. rubric:: More about the compiler
729 The Inform compiler is a powerful but undramatic software tool; it does an
730 awful lot of work, but it does it all at once, without stopping to ask you
731 any questions. Its input is a readable text source file; the output is a
732 story file, also sometimes known as a :term:`Z-code file` (because it
733 contains the game translated into code for the Z-machine, which we describe
734 in the next section).
736 If you're lucky, the compiler will translate your source file into Z-code;
737 perhaps surprisingly, it doesn't display any form of "success" message when
738 it succeeds. Often, however, it fails, because of mistakes which you've
739 made when writing the game. Inform defines a set of rules -- a capital
740 letter here, a comma there, these words only in a certain order, those
741 words spelled just so -- about which the compiler is extremely fussy. If
742 you accidentally break the rules, the compiler complains: it refuses to
743 write a Z-code file. *Do not worry about this*: the rules are easy to
744 learn, but just as easy to break, and all Inform designers inadvertently do
745 so on a regular basis. There's some additional information about dealing
746 with these mistakes, and about controlling how the compiler behaves, in
749 .. rubric:: More about the interpreter
751 .. Generated by autoindex
755 One of the big advantages of the way Inform works is that a compiled game
756 -- the Z-code story file -- is portable between different computers.
757 That's not just from one PC to another: exactly the same story file will
758 run on a PC, a Mac, an Amiga, UNIX workstations, IBM mainframes, PalmOS
759 hand-helds, and on dozens of other past, present and future computers. The
760 magic that makes this happen is the interpreter program, a software tool
761 which pretends to be a simple computer called a :term:`Z-machine`. The
762 Z-machine is an imaginary (or "virtual") computer, but its design has been
763 very carefully specified, so that an expert programmer can quite easily
764 build one. And that's exactly what has happened: a Macintosh guru has
765 built an Inform interpreter which runs on Apple Macs, a UNIX wizard has
766 built one for UNIX workstations, and so on. Sometimes, you even get a
767 choice; for popular machines like the PC and the Mac there are several
768 interpreters available. And the wonderful thing is: each of those
769 interpreters, on each of those computers, is able to play every Inform game
770 that's ever been written *and*, as a surprise bonus, all of the classic
771 1980s Infocom games like "Zork" and "The Hitchhiker's Guide to the Galaxy"
774 (Actually, that last sentence is a slight exaggeration; a few games are
775 very large, or have pictures included within them, and not all interpreters
776 can handle this. However, with that small pinch of salt, it's pretty
779 That's enough waffling: let's get started! It's time to begin designing
782 .. rubric:: Footnotes
785 "BSD" stands for Berkeley Software Distribution, the name of the UNIX
786 derivative distributed in the 1970s from the University of California,
787 Berkeley, and used collectively for the modern descendants of those