Glk: a Portable Interface Standard for IF

Total Page:16

File Type:pdf, Size:1020Kb

Glk: a Portable Interface Standard for IF Glk: A Portable Interface Standard for IF API specification version 0.7.5 Maintained by IFTF: <[email protected]> Copyright 2020 by the Interactive Fiction Technology Foundation. This specification is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License: http://creativecommons.org/licenses/by-nc- sa/3.0 The API described by this document is an idea, not an expression of an idea, and is therefore not copyrightable. Anyone is free to write programs that use the Glk API or libraries that implement it. This document and further Glk information can be found at: https://github.com/iftechfoundation/ifarchive-if-specs 0. Introduction 0.1. What Glk Is 0.2. What About the Virtual Machine? 0.3. What Does Glk Not Do? 0.4. Conventions of This Document 0.5. Credits 1. Overall Structure 1.1. Your Program's Main Function 1.2. Exiting Your Program 1.3. The Interrupt Handler 1.4. The Tick Thing 1.5. Basic Types 1.6. Opaque Objects 1.6.1. Rocks 1.6.2. Iterating Through Opaque Objects 1.7. The Gestalt System 1.8. The Version Number 1.9. Other API Conventions 2. Character Encoding 2.1. Testing for Unicode Capabilities 2.2. Output 2.3. Line Input 2.4. Character Input 2.5. Upper and Lower Case 2.6. Unicode String Normalization 2.6.1. A Note on Unicode Case-Folding and Normalization 3. Windows 3.1. Window Arrangement 3.2. Window Opening, Closing, and Constraints 3.3. Changing Window Constraints 3.4. A Note on Display Style 3.5. The Types of Windows 3.5.1. Blank Windows 3.5.2. Pair Windows 3.5.3. Text Buffer Windows 3.5.4. Text Grid Windows 3.5.5. Graphics Windows 3.6. Echo Streams 3.7. Other Window Functions 4. Events 4.1. Character Input Events 4.2. Line Input Events 4.3. Mouse Input Events 4.4. Timer Events 4.5. Window Arrangement Events 4.6. Window Redrawing Events 4.7. Sound Notification Events 4.8. Hyperlink Events 4.9. Other Events 5. Streams 5.1. How To Print 5.2. How To Read 5.3. Closing Streams 5.4. Stream Positions 5.5. Styles 5.5.1. Suggesting the Appearance of Styles 5.5.2. Testing the Appearance of Styles 5.6. The Types of Streams 5.6.1. Window Streams 5.6.2. Memory Streams 5.6.3. File Streams 5.6.4. Resource Streams 5.7. Other Stream Functions 6. File References 6.1. The Types of File References 6.2. Other File Reference Functions 7. Graphics 7.1. Image Resources 7.2. Graphics in Graphics Windows 7.3. Graphics in Text Buffer Windows 7.4. Testing for Graphics Capabilities 8. Sound 8.1. Sound Resources 8.2. Creating and Destroying Sound Channels 8.3. Playing Sounds 8.4. Other Sound Channel Functions 8.5. Testing for Sound Capabilities 9. Hyperlinks 9.1. Creating Hyperlinks 9.2. Accepting Hyperlink Events 9.3. Testing for Hyperlink Capabilities 10. The System Clock 10.1. Time and Date Conversions 10.2. Testing for Clock Capabilities 11. Porting, Adapting, and Other Messy Bits 11.1. Startup Options 11.2. Going Outside the Glk API 11.2.1. Memory Management 11.2.2. String Manipulation 11.2.3. File Handling 11.2.4. Private Extensions to Glk 11.3. Glk and the Virtual Machine 11.3.1. Implementing a Higher Layer Over Glk 11.3.2. Glk as a VM's Native API 12. Appendices 12.1. The Dispatch Layer 12.1.1. How This Works 12.1.2. Interrogating the Interface 12.1.3. Dispatching 12.1.3.1. Basic Types 12.1.3.2. References 12.1.3.3. Structures 12.1.3.4. Arrays 12.1.3.5. Return Values 12.1.4. Getting Argument Prototypes 12.1.5. Functions the Library Must Provide 12.1.5.1. Opaque Object Registry 12.1.5.2. Retained Array Registry 12.1.6. Table of Selectors 12.2. The Blorb Layer 12.2.1. How This Works 12.2.2. What the Program Does 12.2.3. What the Library Does 12.2.4. What the Blorb Layer Does 12.2.5. Blorb Errors 0. Introduction 0.1. What Glk Is Glk defines a portable API (programming interface) for applications with text UIs (user interfaces.) It was primarily designed for interactive fiction, but it should be suitable for many interactive text utilities, particularly those based on a command line. Rather than go into a detailed explanation of what that means, let me give examples from the world of text adventures. TADS, Glulx, and Infocom's Z-machine have nearly identical interface capabilities; each allows a program to... · print an indefinite stream of text into an output buffer, with some style control · input a line of text · display a few lines of text in a small separate window · store information in a file, or read it in and so on. However, the implementation of these capabilities vary widely between platforms and operating systems. Furthermore, this variance is transparent to the program (the adventure game.) The game does not care whether output is displayed via a character terminal emulator or a GUI window; nor whether input uses Mac-style mouse editing or EMACS-style control key editing. On the third hand, the user is likely to care deeply about these interface decisions. This is why there are Mac-native interpreters on Macintoshes, stylus and touch-screen interpreters on mobile devices, and so on – and (ultimately) why there are Macintoshes and iPads and terminal window apps in the first place. On the fourth hand, TADS and Inform are not alone; there is historically a large number of text adventure systems. Most are obsolete or effectively dead; but it is inevitable that more will appear. Users want each living system ported to all the platforms in use. Users also prefer these ports to use the same interface, as much as possible. This all adds up to a pain in the ass. Glk tries to draw a line between the parts of the text adventure world which are identical on all IF systems, and different on different operating systems, from the parts which are unique to each IF system but identical in all OSs. The border between these two worlds is the Glk API. My hope is that a new IF system, or existing ones which are less-supported (Hugo, AGT, etc) can be written using Glk for all input and output function. The IF system would then be in truly portable C. On the other side of the line, there would be a Glk library for each operating system and interface (Macintosh, X-windows, curses-terminal, etc.) Porting the IF system to every platform would be trivial; compile the system, and link in the library. Glk can also serve as a nice interface for applications other than games – data manglers, quick hacks, or anything else which would normally lack niceties such as editable input, macros, scrolling, or whatever is native to your machine's interface idiom. 0.2. What About the Virtual Machine? You can think of Glk as an IF virtual machine, without the virtual machine part. The "machine" is just portable C code. An IF virtual machine has been designed specifically to go along with Glk. This VM, called Glulx, uses Glk as its interface; each Glk call corresponds to an input/output opcode of the VM. For more discussion of this approach, see section 11.3, "Glk and the Virtual Machine". Glulx is documented at http://eblong.com/zarf/glulx/. Of course, Glk can be used with other IF systems. The advantage of Glulx is that it provides the game author with direct and complete access to the Glk API. Other IF systems typically have an built-in abstract I/O API, which maps only partially onto Glk. For these systems, Glk tends to be a least-common-denominator interface: highly portable, but not necessarily featureful. (Even if Glk has a feature, it may not be available through the layers of abstraction.) 0.3. What Does Glk Not Do? Glk does not handle the things which should be handled by the program (or the IF system, or the virtual machine) which is linked to Glk. This means that Glk does not address · parsing · game object storage · computation · text compression 0.4. Conventions of This Document This document defines the Glk API. I have tried to specify exactly what everything does, what is legal, what is illegal, and why. Sections in square brackets [like this] are notes. They do not define anything; they clarify or explain what has already been defined. If there seems to be a conflict, ignore the note and follow the definition. [Notes with the label "WORK" are things which I have not yet fully resolved. Your comments requested and welcome.] This document is written for the point of view of the game programmer – the person who wants to use the Glk library to print text, input text, and so on. By saying what the Glk library does, of course, this document also defines the task of the Glk programmer – the person who wants to port the Glk library to a new platform or operating system. If the Glk library guarantees something, the game programmer can rely on it, and the Glk programmer is required to support it. Contrariwise, if the library does not guarantee something, the Glk programmer may handle it however he likes, and the game programmer must not rely on it. If something is illegal, the game programmer must not do it, and the Glk programmer is not required to worry about it.
Recommended publications
  • Alan Adventure System V3.0
    The ALAN Adventure Language Reference Manual Version 3.0beta2 Alan Adventure System - Reference Manual This version of the manual was printed on September 26, 2011 - ii - Alan Adventure System - Reference Manual Table of Contents 1 INTRODUCTION.........................................................................11 1.1 Programmer’s Pitch........................................................................................................12 1.2 To the Reader.................................................................................................................12 2 CONCEPTS......................................................................................13 2.1 What Is An Adventure?................................................................................................13 2.2 Elements Of Adventures.................................................................................................15 2.3 Alan Fundamentals.......................................................................................................16 What Is A Language?....................................................................................................................................16 The Alan Idea..................................................................................................................................................18 What’s Happening?........................................................................................................................................18 The Map..........................................................................................................................................................19
    [Show full text]
  • Metadefender Core V4.12.2
    MetaDefender Core v4.12.2 © 2018 OPSWAT, Inc. All rights reserved. OPSWAT®, MetadefenderTM and the OPSWAT logo are trademarks of OPSWAT, Inc. All other trademarks, trade names, service marks, service names, and images mentioned and/or used herein belong to their respective owners. Table of Contents About This Guide 13 Key Features of Metadefender Core 14 1. Quick Start with Metadefender Core 15 1.1. Installation 15 Operating system invariant initial steps 15 Basic setup 16 1.1.1. Configuration wizard 16 1.2. License Activation 21 1.3. Scan Files with Metadefender Core 21 2. Installing or Upgrading Metadefender Core 22 2.1. Recommended System Requirements 22 System Requirements For Server 22 Browser Requirements for the Metadefender Core Management Console 24 2.2. Installing Metadefender 25 Installation 25 Installation notes 25 2.2.1. Installing Metadefender Core using command line 26 2.2.2. Installing Metadefender Core using the Install Wizard 27 2.3. Upgrading MetaDefender Core 27 Upgrading from MetaDefender Core 3.x 27 Upgrading from MetaDefender Core 4.x 28 2.4. Metadefender Core Licensing 28 2.4.1. Activating Metadefender Licenses 28 2.4.2. Checking Your Metadefender Core License 35 2.5. Performance and Load Estimation 36 What to know before reading the results: Some factors that affect performance 36 How test results are calculated 37 Test Reports 37 Performance Report - Multi-Scanning On Linux 37 Performance Report - Multi-Scanning On Windows 41 2.6. Special installation options 46 Use RAMDISK for the tempdirectory 46 3. Configuring Metadefender Core 50 3.1. Management Console 50 3.2.
    [Show full text]
  • Metadefender Core V4.13.1
    MetaDefender Core v4.13.1 © 2018 OPSWAT, Inc. All rights reserved. OPSWAT®, MetadefenderTM and the OPSWAT logo are trademarks of OPSWAT, Inc. All other trademarks, trade names, service marks, service names, and images mentioned and/or used herein belong to their respective owners. Table of Contents About This Guide 13 Key Features of Metadefender Core 14 1. Quick Start with Metadefender Core 15 1.1. Installation 15 Operating system invariant initial steps 15 Basic setup 16 1.1.1. Configuration wizard 16 1.2. License Activation 21 1.3. Scan Files with Metadefender Core 21 2. Installing or Upgrading Metadefender Core 22 2.1. Recommended System Requirements 22 System Requirements For Server 22 Browser Requirements for the Metadefender Core Management Console 24 2.2. Installing Metadefender 25 Installation 25 Installation notes 25 2.2.1. Installing Metadefender Core using command line 26 2.2.2. Installing Metadefender Core using the Install Wizard 27 2.3. Upgrading MetaDefender Core 27 Upgrading from MetaDefender Core 3.x 27 Upgrading from MetaDefender Core 4.x 28 2.4. Metadefender Core Licensing 28 2.4.1. Activating Metadefender Licenses 28 2.4.2. Checking Your Metadefender Core License 35 2.5. Performance and Load Estimation 36 What to know before reading the results: Some factors that affect performance 36 How test results are calculated 37 Test Reports 37 Performance Report - Multi-Scanning On Linux 37 Performance Report - Multi-Scanning On Windows 41 2.6. Special installation options 46 Use RAMDISK for the tempdirectory 46 3. Configuring Metadefender Core 50 3.1. Management Console 50 3.2.
    [Show full text]
  • The Z-Machine Standards Document: Contents
    The Z-Machine Standards Document: Contents The Z-Machine Standards Document Version 1.0 22nd June 1997 two misprints corrected, 9th August resources appendix updated and discovery added to header table, 4th September ● Preface ● Overview of Z-machine architecture Fundamentals ● 1. The memory map ● 2. Numbers and arithmetic ● 3. How text and characters are encoded ● 4. How instructions are encoded ● 5. How routines are encoded ● 6. The game state: storage and routine calls Input/Output ● 7. Output streams and file handling ● 8. The screen model ● 9. Sound effects ● 10. Input streams and devices Tables ● 11. The format of the header ● 12. The object table ● 13. The dictionary and lexical analysis Instruction Set ● 14. Complete table of opcodes (with Inform assembly syntax) file:///D|/doc/zspec10/index.html (1 of 2) [6/22/2000 4:34:11 PM] The Z-Machine Standards Document: Contents ● 15. Dictionary of opcodes An Unusual Font ● 16. Font 3 and character graphics Appendices ● A. Error messages and debugging ● B. Conventional contents of the header ● C. Resources available (with WWW links) ● D. A short history of the Z-machine ● E. Statistics ● F. Canonical story files file:///D|/doc/zspec10/index.html (2 of 2) [6/22/2000 4:34:11 PM] The Z-Machine Standards Document: Preface Preface The Z-machine was created on a coffee table in Pittsburgh in 1979. It is an imaginary computer whose programs are adventure games, and is well-adapted to its task, implementing complex games remarkably compactly. They were still perhaps 100K long, too large for the memory of the home computers of their day, and the Z-machine seems to have made the first usage of virtual memory on a microcomputer.
    [Show full text]
  • Z-Machine and Descendants
    Glk! A universal user interface for IF! Andrew Plotkin — BangBangCon ’17 Glk! A universal user interface! for interactive fiction! Relatively universal, anyhow. Universal-ish. # 1 Glk! A universal user interface for IF! Andrew Plotkin — BangBangCon ’17 Andrew Plotkin [email protected] http://zarfhome.com/ https://github.com/erkyrath @zarfeblong on Twitter Glk, Glulx, Hadean Lands, System’s Twilight, Spider and Web, Capture the Flag with Stuff, Shade, this t-shirt I’m wearing, Seltani, The Dreamhold, Branches and Twigs and Thorns, quite a lot of adventure game reviews, Praser 5, Boodler, A Change in the Weather, an imperfect diagram of the Soul Reaver timeline, Dual Transform, Draco Concordans, and you know how that game Mafia is also called Werewolf? Ok, funny story there — # 2 Glk! A universal user interface for IF! Andrew Plotkin — BangBangCon ’17 Zork 1 (Infocom) # 3 GrueFacts™: A grue can eat doughnuts indefinitely. Glk! A universal user interface for IF! Andrew Plotkin — BangBangCon ’17 Z-machine and descendants 1979: Z-machine design 1980: Z-machine version 3 (Zork 1) 1985: Z-machine version 4 (A Mind Forever Voyaging) 1987: ITF (first open-source Z-interpreter) 1988: Z-machine version 6 (Zork Zero) 1989: Infocom shuts down 1993: Inform (Curses) 1994: Inform 5 1996: Inform 6 1997: Glk spec 1999: Glulx spec 2006: Inform 7 2008: Parchment (first Javascript Z-interpreter) # 4 GrueFacts™: The first grue to swim around the world was named Amelia Nosewig. Glk! A universal user interface for IF! Andrew Plotkin — BangBangCon ’17 XZip (Curses, Graham Nelson) # 5 GrueFacts™: Grues live an average of 67 years, after which they retire to Iceland.
    [Show full text]
  • Metadefender Core V4.17.3
    MetaDefender Core v4.17.3 © 2020 OPSWAT, Inc. All rights reserved. OPSWAT®, MetadefenderTM and the OPSWAT logo are trademarks of OPSWAT, Inc. All other trademarks, trade names, service marks, service names, and images mentioned and/or used herein belong to their respective owners. Table of Contents About This Guide 13 Key Features of MetaDefender Core 14 1. Quick Start with MetaDefender Core 15 1.1. Installation 15 Operating system invariant initial steps 15 Basic setup 16 1.1.1. Configuration wizard 16 1.2. License Activation 21 1.3. Process Files with MetaDefender Core 21 2. Installing or Upgrading MetaDefender Core 22 2.1. Recommended System Configuration 22 Microsoft Windows Deployments 22 Unix Based Deployments 24 Data Retention 26 Custom Engines 27 Browser Requirements for the Metadefender Core Management Console 27 2.2. Installing MetaDefender 27 Installation 27 Installation notes 27 2.2.1. Installing Metadefender Core using command line 28 2.2.2. Installing Metadefender Core using the Install Wizard 31 2.3. Upgrading MetaDefender Core 31 Upgrading from MetaDefender Core 3.x 31 Upgrading from MetaDefender Core 4.x 31 2.4. MetaDefender Core Licensing 32 2.4.1. Activating Metadefender Licenses 32 2.4.2. Checking Your Metadefender Core License 37 2.5. Performance and Load Estimation 38 What to know before reading the results: Some factors that affect performance 38 How test results are calculated 39 Test Reports 39 Performance Report - Multi-Scanning On Linux 39 Performance Report - Multi-Scanning On Windows 43 2.6. Special installation options 46 Use RAMDISK for the tempdirectory 46 3.
    [Show full text]
  • IF XML Metadata Format
    **Draft** Interactive Fiction XML metadata format Version 1.0 (Draft) August 3, 2005 by Andrew Hunter Contents 1 Introduction 2 1.1 Who should use this format? ................................ 2 2 The format 3 2.1 The root element: ifindex .................................. 3 2.2 The story tag: story ..................................... 3 2.3 The story identification tag: identification ......................... 3 2.3.1 Example ...................................... 4 2.3.2 Z-Code identification tag: zcode .......................... 4 2.3.3 Glulx identification ................................. 4 2.3.4 MD5 identification ................................. 5 2.4 The metadata tags ...................................... 5 3 Optional modules 7 3.1 The feelies module ..................................... 7 3.2 The comments module ................................... 7 3.3 The resources module .................................... 7 3.4 The review module ..................................... 8 4 Parsing notes 9 5 Attaching metadata 10 5.1 To z-code games ...................................... 10 5.2 In filesystem metadata ................................... 10 5.3 To archive sites ....................................... 10 5.4 To review sites ....................................... 10 1 1 Introduction The original inspiration of this format is an improvement on the existing interactive fiction cataloguing system in Zoom. The original design for this used a text file with an arbitrary format, mainly designed for storing interpreter settings. It was also capable of storing some limited metadata along with stories, in particular a full title for the story, which was used in the interpreter’s title bar, and also to provide a simple menu of stories. This format is intended to provide a more advanced indexing system for stories. It deals specifically with metadata aspects of stories, leaving interpreter configuration issues up to specific interpreters. This release (1.0) will be implemented in the 1.0.2 release of Zoom.
    [Show full text]
  • 2017 B.Voc. Sdsa
    BACHELOR OF VOCATION (SOFTWARE DEVELOPMENT AND SYSTEM ADMINISTRATION) SYLLABUS - 2017 ST.JOSEPH’S COLLEGE (AUTONOMOUS) Special Heritage Status Awarded by UGC Accredited at “A” Grade (3rd Cycle) by NAAC College with Potential for Excellence by UGC TIRUCHIRAPPALLI – 620 002, INDIA 1 Page COURSE PATTERN B. VOC. PROGRAMME - SOFTWARE DEVELOPMENT AND SYSTEM ADMINISTRATION NSQF LEVEL 4: Junior Software Developer General Skill Sem Part Subjects Subject Code Type Education Credits Component Component GE Language-I 17USS110001 Theory 2 - 2 Language II: English GE 17USS120101 Theory 2 - 2 – I Core - GE C Programming 17USS130201 3 - 3 Theory Foundations of Allied- GE 17USS130401 3 - 3 I Computer Science Theory Essentials of GE 17USS141001 2 2 Humanity Junior Software Theory 8 8 SC Developer SSC/ Q 0508 - Practical 10 10 Total for Semester I 12 18 30 Language-I : Tamil I /Hindi –I /Sanskrit – I/French-I NSQF LEVEL 5: Web developer General Skill Sem GE/SC Subjects Subject Code Type Education Component Credits Component GE Language I 17USS210002 Theory 2 2 Language II : GE 17USS220102 Theory 2 2 English – II User Interface Core - GE 17USS230202 3 - 3 Design Theory Graphics Design Allied- II GE 17USS230402 3 - 3 Using Photoshop Theory Environmental GE 17USS241002 2 2 Science SC Web Developer Theory 8 8 SSC/ Q 0503 Practical 10 10 Total for Semester II 12 18 30 Language-I : Tamil II /Hindi –II /Sanskrit – II/French-II 2 NSQF LEVEL 6: Master Trainer for Software Developer General Skill Sem GE/SC Subjects Subject Code Type Education Credits Component Component
    [Show full text]
  • Interactive Fiction for GUI Prototyping
    Portland State University PDXScholar Computer Science Faculty Publications and Presentations Computer Science 6-2013 GUInform: Interactive Fiction for GUI Prototyping Tesca Fitzgerald Portland State University, [email protected] Follow this and additional works at: https://pdxscholar.library.pdx.edu/compsci_fac Part of the Graphics and Human Computer Interfaces Commons Let us know how access to this document benefits ou.y Citation Details Fitzgerald, Tesca, "GUInform: Interactive Fiction for GUI Prototyping" (2013). Computer Science Faculty Publications and Presentations. 209. https://pdxscholar.library.pdx.edu/compsci_fac/209 This Technical Report is brought to you for free and open access. It has been accepted for inclusion in Computer Science Faculty Publications and Presentations by an authorized administrator of PDXScholar. Please contact us if we can make this document more accessible: [email protected]. GUInform: Interactive Fiction for GUI Prototyping Tesca Fitzgerald Portland State University P.O. Box 751 Portland, OR 97207 [email protected] ABSTRACT process. There are many methods of rapidly prototyping a graphical user interface (GUI), the most prominent being paper pro- In this paper, I evaluate the uses, features, and drawbacks totyping and wireframe prototyping. In paper prototyping, of paper prototyping and wireframe prototyping. I discuss the developer creates a physical GUI prototype using simple the background of Interactive Fiction (IF) systems, followed materials such as paper, pencils, and tabbed cards. Paper by an introduction of a new method of interactive prototyp- prototyping, while easy to implement, leads to unrealistic ing using the Inform 7 IF description language for rapidly and awkward user interaction. Wireframe prototyping in- prototyping GUIs.
    [Show full text]
  • The Inform Designer's Manual
    Cited Works of Interactive Fiction The following bibliography includes only those works cited in the text of this book: it makes no claim to completeness or even balance. An index entry is followed by designer's name, publisher or organisation (if any) and date of first substantial version. The following denote formats: ZM for Z-Machine, L9 for Level 9's A-code, AGT for the Adventure Game Toolkit run-time, TADS for TADS run-time and SA for Scott Adams's format. Games in each of these formats can be played on most modern computers. Scott Adams, ``Quill''-written and Cambridge University games can all be mechanically translated to Inform and then recompiled as ZM. The symbol marks that the game can be downloaded from ftp.gmd.de, though for early games} sometimes only in source code format. Sa1 and Sa2 indicate that a playable demonstration can be found on Infocom's first or second sampler game, each of which is . Most Infocom games are widely available in remarkably inexpensive packages} marketed by Activision. The `Zork' trilogy has often been freely downloadable from Activision web sites to promote the ``Infocom'' brand, as has `Zork: The Undiscovered Underground'. `Abenteuer', 264. German translation of `Advent' by Toni Arnold (1998). ZM } `Acheton', 3, 113 ex8, 348, 353, 399. David Seal, Jonathan Thackray with Jonathan Partington, Cambridge University and later Acornsoft, Topologika (1978--9). `Advent', 2, 47, 48, 62, 75, 86, 95, 99, 102, 105, 113 ex8, 114, 121, 124, 126, 142, 146, 147, 151, 159, 159, 179, 220, 221, 243, 264, 312 ex125, 344, 370, 377, 385, 386, 390, 393, 394, 396, 398, 403, 404, 509 an125.
    [Show full text]
  • Alan Adventure System V3.0
    The ALAN Adventure Language Reference Manual Version 3.0beta5 Alan Adventure System - Reference Manual This version of the manual was printed on August 09, 2018 - ii - Alan Adventure System - Reference Manual Table of Contents 1 INTRODUCTION.............................................................13 1.1 Programmer’s Pitch........................................................................................................14 1.2 To the Reader.................................................................................................................14 2 CONCEPTS.......................................................................17 2.1 What Is An Adventure?................................................................................................17 2.2 Elements Of Adventures.................................................................................................19 2.3 Alan Fundamentals......................................................................................................20 What Is A Language?.................................................................................................................................20 The Alan Idea..............................................................................................................................................23 What’s Happening?.....................................................................................................................................23 The Map......................................................................................................................................................24
    [Show full text]
  • In This Issue
    May 201 5 Volume 1 Issue 3 In this issue Alice doesn't look 1 50 Conversation with Carolyn VanEseltine The many ways of playing IF on your mobile device EDITOR'S NOTES Welcome back, everyone! BY MATT GOH t has been more than two months since the last issue of IFography. Many people in the Interactive Fiction Faction, the private Google+ community that works on this magazine, I got pulled away by real life. Now that most of our projects are completed, the group once again has a chance to continue on the magazine! School has pretty much bogged me with boring biology and physics during the day, while "Counter Strike" took up most of my evenings. Good thing to state: I'm actually getting better in games! But I did have some time for IF. With plenty of competitions held in the past few months, many players and judges have been busy with the large amount of games released. I took some time to play all of the Parsercomp games and vote on them. I was impressed by games like "Chlorophyll" and "Delphina's House." More of what I thought can be found in the reviews section. I hope to focus on Spring Thing games next issue. These past two months witnessed the release of commercial games for free online. One of them is Peter Nepstad's "1893: A World's Fair Mystery," which typically takes 10 hours to finish. And in less purely positive news, Textfyre's closing prompted it to release its two games, "Jack Toresal and The Secret Letter" and "The Shadow in the Cathedral" for free.
    [Show full text]