How to Use This Book

I appreciate that this book will have different readers and different types of reader, and not all will want to follow precisely the same way of using this book. I shall start, however, by describing how I envisage it being used by my ideal target reader (the so-called 'implied reader' of some literary theorists). In this case my notion of my implied reader is someone who is more or less new to writing Interactive Fiction (or new to doing so with something that looks like a programming language) and who may not have much of a programming background.

This book is intended as a tutorial. That means that the ideal reader will work through it carefully from beginning to end, reading through all the explanations and trying out all the sample code. By 'trying out' I mean typing it into Windows Workbench (or whatever text editor you're using), then compiling it, correcting any errors, and getting it to work as expected before moving on to the next bit of text. I do recommend copying the sample code you'll find later in this book by retyping it rather than by just copying and pasting electronically, since that way you'll learn more; with any luck you may think a bit about what you're typing, whereas you may perform electronic copy-and-paste as a mechanical operation more or less on autopilot, gaining little insight as a result.

Again, if you are the beginning user at whom this tutorial is primarily aimed, I would urge you not to rush through the material, and not to start experimenting until you have completed the material in each chapter (by copying the code presented there and getting it to work). Once you have completed it, by all means try experimenting with what you have just done (since this will certainly help you to learn), but be aware that if you're following a game that's being developed over several chapters, you may want to make sure you've got a 'clean' copy of the game so far to carry on building upon in later chapters. Alternatively, if you're itching to get on with your own project, then at the end of each chapter you could switch to your own project and try out what you've just learned from the tutorial in terms of your own game. For example, by the end of Chapter 3 you should have learned the basic skills needed to lay out a map for a work of IF and populate it with a few basic objects, so once you'd completed the first run-through of the simple Heidi game in Chapter 3 you might want to try laying out the first few rooms of your own game. There's absolutely no need to do this if you'd rather simply carry straight on into the next chapter of this book, but if you were eager to make a start on your own game, that would be a good way to do it in conjunction with working through this tutorial. Then, as you work through the material in each subsequent chapter, you can keep returning to your own game at the end of each chapter to add a few more features based on the material you've just covered. That would be an excellent way of reinforcing what you'd just learned while taking you just a bit closer to your goal. What I strongly advise you against, however, is trying to implement features in your own game that you haven't (or haven't yet) covered in this tutorial; that way lies muddle, confusion and frustration. Start with the simple stuff first, and don't try to do anything too sophisticated or complicated until you've mastered the basics, then you should find everything goes smoothly and you'll get to where you want to go much faster in the end.

Much of the material presented in this tutorial is presented more systematically and in more detail either in the TADS 3 System Manual or in the adv3Lite Library Manual. There is thus little point in reproducing all such material here in all its fullness. Doing so might also be a bit overwhelming for the target reader. In this book, therefore, I shall give just enough explanation to allow you to follow the tutorial, but then refer you to either the TADS 3 System Manual or in the adv3Lite Manual for the full story. In the case of the adv3Lite Manual I shall also provide a link to the relevant material. Although it would be neat if I could provide links to the material in the TADS 3 System Manual, since I don't know where on your system it will be relative to this tutorial, I can't actually do so; all I can do is to tell you which section to look at and leave you to look it up for yourself. In neither case, however, is there any need for you to follow the link or look up the additional material; the reference is simply there just in case you want to use it (because you feel the need of a fuller explanation, or simply because you're curious to see the fuller picture). If you's rather ignore the additional material in the TADS 3 System Manual and the adv3Lite Manual for now and concentrate on working through this tutorial from beginning to end, that's absolutely fine too. Different people have different preferences and either approach should work equally well. (At some point, however, you will need to read through the TADS 3 System Manual and the adv3Lite Manual to get the full picture; you don't have to learn their entire contents — I doubt many people could — but you'll be greatly helped if you've got a general idea what's there and know where to find it when you need it; but that can wait until you've finished this book).

Now, of course, you may not be the implied reader I'm primarily envisaging. It may be, for example, that you're coming to adv3Lite from TADS 2 or Inform 6 (or perhaps from adv3 or Inform 7) and you're reading this book to get a quick overview of what's different about adv3Lite, in which case you probably won't want to work all the way through typing in all the game code and trying it out, because you simply want to skim through the material to get a general feel for what working in adv3Lite is like. If you're that kind of reader, then of course that may be a perfectly valid approach for you. Even if you are the kind of novice reader this tutorial is aimed at, you may still feel you want to read through the entire book first to gain an overview before going back to the beginning and working through the material in each chapter, and of course that's fine too; this isn't a mystery novel and you aren't going to spoil anything by seeing how it ends! Or it may be that you see yourself as something of an intermediate IF author who wants some tutorial help but doesn't necessarily want to work through all the more elementary material in detail, in which case you might want to read quite rapidly through the first few chapters and only start following the tutorial closely by typing out and trying out the code when you get to Chapter 6 or 7 (say).

I have no idea what sort of reader you are. Only you can decide that, just as in practice, only you can decide how you will use this book. But if you are a relative newcomer to IF and you're just starting out with adv3Lite, I would urge you to follow the advice just given if you want to get the most out of this book.